fix: remove Hardcore mode, disable Elytra by default, add bug tracker

- Remove HardcoreMode (lose all rewards on fall)
- Disable Elytra mode in default config
- Add todo.md with 20 identified bugs
- Fix 3 remaining bugs: checkPlayerFall continue, removeTrailBlocks sync, scoredBlocks clear on fall
This commit is contained in:
loki5512344 2026-06-08 14:40:22 +02:00
parent bee00c0c81
commit 0079cbf54b
8 changed files with 87 additions and 405 deletions

View file

@ -17,7 +17,6 @@ import dev.loki.loparkour.mode.impl.CoopMode;
import dev.loki.loparkour.mode.impl.DefaultMode;
import dev.loki.loparkour.mode.impl.ElytraMode;
import dev.loki.loparkour.mode.impl.GravityShiftMode;
import dev.loki.loparkour.mode.impl.HardcoreMode;
import dev.loki.loparkour.mode.impl.RaceMode;
import dev.loki.loparkour.mode.impl.SpectatorMode;
import dev.loki.loparkour.mode.impl.SpeedrunMode;
@ -76,7 +75,6 @@ public final class PluginBootstrap {
Registry.register(new RaceMode());
Registry.register(new CoopMode());
Registry.register(new GravityShiftMode());
Registry.register(new HardcoreMode());
Modes.init();
}

View file

@ -12,7 +12,6 @@ public class Modes {
public static RaceMode RACE;
public static CoopMode COOP;
public static GravityShiftMode GRAVITY_SHIFT;
public static HardcoreMode HARDCORE;
public static void init() {
DEFAULT = (DefaultMode) Registry.getMode("default");
@ -22,6 +21,5 @@ public class Modes {
RACE = (RaceMode) Registry.getMode("race");
COOP = (CoopMode) Registry.getMode("coop");
GRAVITY_SHIFT = (GravityShiftMode) Registry.getMode("gravity-shift");
HARDCORE = (HardcoreMode) Registry.getMode("hardcore");
}
}

View file

@ -1,85 +0,0 @@
package dev.loki.loparkour.mode.impl;
import dev.loki.loparkour.mode.base.ModeMessages;
import dev.loki.loparkour.mode.base.Mode;
import dev.loki.loparkour.mode.base.Modes;
import dev.loki.loparkour.config.core.Config;
import dev.loki.loparkour.config.locale.Locales;
import dev.loki.loparkour.generator.core.coordinator.ParkourGenerator;
import dev.loki.loparkour.leaderboard.core.Leaderboard;
import dev.loki.loparkour.player.core.ParkourPlayer;
import dev.loki.loparkour.session.core.Session;
import dev.loki.loparkour.util.item.Item;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
/**
* Hardcore Mode — lose all collected rewards on fall.
*/
public class HardcoreMode implements Mode {
private final Leaderboard leaderboard = new Leaderboard(getName(), Leaderboard.Sort.SCORE);
@Override
@NotNull
public String getName() {
return "hardcore";
}
@Override
@Nullable
public Item getItem(String locale) {
return Locales.getItem(locale, "play.single.hardcore");
}
@Override
@NotNull
public Leaderboard getLeaderboard() {
return leaderboard;
}
@Override
public void create(Player player) {
if (!ModeMessages.checkJoiningEnabled(player)) {
return;
}
ParkourPlayer pp = ParkourPlayer.getPlayer(player);
if (pp != null && pp.session.generator instanceof HardcoreGenerator) {
return;
}
player.closeInventory();
Session.create(session -> new HardcoreGenerator(session), null, null, player);
}
// ── HardcoreGenerator ─────────────────────────────────────────────────────
private static class HardcoreGenerator extends ParkourGenerator {
private final boolean resetRewards;
public HardcoreGenerator(@NotNull Session session) {
super(session);
this.resetRewards = Config.CONFIG.isPath("modes.hardcore.reset-rewards")
? Config.CONFIG.getBoolean("modes.hardcore.reset-rewards") : true;
}
@Override
public void fall() {
if (resetRewards) {
for (ParkourPlayer pp : getPlayers()) {
pp.collectedRewards.clear();
}
}
super.fall();
}
@Override
public Mode getMode() {
return Modes.HARDCORE;
}
}
}

View file

@ -208,11 +208,8 @@ modes:
amplifier: 1
duration: 5
hardcore:
reset-rewards: true
elytra:
enabled: true
enabled: false
ring-distance-min: 20
ring-distance-max: 40
ring-size: 5

View file

@ -40,11 +40,6 @@ play:
name: "&#00D4FF&lGravity Shift"
lore: "&#404040Random potion effects||&#404040every few jumps"
hardcore:
material: "skeleton_skull"
name: "&#00D4FF&lHardcore"
lore: "&#404040Lose all rewards on fall||&#404040No second chances."
spectator:
name: "&#FFFFFFSpectator"

View file

@ -39,11 +39,6 @@ play:
name: "&#00D4FF&lГравитационный сдвиг"
lore: "&#404040Случайные эффекты зелий||&#404040каждые несколько прыжков"
hardcore:
material: "skeleton_skull"
name: "&#00D4FF&lХардкор"
lore: "&#404040Потеря всех наград при падении||&#404040Второго шанса не будет."
spectator:
name: "&#FFFFFFНаблюдатель"