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:
parent
bee00c0c81
commit
0079cbf54b
8 changed files with 87 additions and 405 deletions
|
|
@ -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();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -40,11 +40,6 @@ play:
|
|||
name: "�D4FF&lGravity Shift"
|
||||
lore: "񢩈Random potion effects||񢩈every few jumps"
|
||||
|
||||
hardcore:
|
||||
material: "skeleton_skull"
|
||||
name: "�D4FF&lHardcore"
|
||||
lore: "񢩈Lose all rewards on fall||񢩈No second chances."
|
||||
|
||||
spectator:
|
||||
name: "&#FFFFFFSpectator"
|
||||
|
||||
|
|
|
|||
|
|
@ -39,11 +39,6 @@ play:
|
|||
name: "�D4FF&lГравитационный сдвиг"
|
||||
lore: "񢩈Случайные эффекты зелий||񢩈каждые несколько прыжков"
|
||||
|
||||
hardcore:
|
||||
material: "skeleton_skull"
|
||||
name: "�D4FF&lХардкор"
|
||||
lore: "񢩈Потеря всех наград при падении||񢩈Второго шанса не будет."
|
||||
|
||||
spectator:
|
||||
name: "&#FFFFFFНаблюдатель"
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue