Resume from the last checkpoint, celebrate reaching the end with fireworks, continue endlessly afterwards and start the run right on spawn

This commit is contained in:
MineTec committed 2026-10-08 00:35:08 +02:00
1 parent 137e162ea4
commit 806d76e560
6 files changed
+171 -25

No files matched your search

@@ -23,7 +23,6 @@ import net.minestom.server.instance.InstanceContainer;
import net.minestom.server.instance.InstanceManager;
import net.minestom.server.instance.block.Block;
import net.minestom.server.item.ItemStack;
import net.minestom.server.timer.TaskSchedule;
import java.io.IOException;
import java.nio.file.Files;
@@ -37,6 +36,7 @@ public class EndlessJumper {
public static void main(String[] args) throws IOException {
MinecraftServer server = MinecraftServer.init(new Auth.Velocity(readForwardingSecret()));
Progress.load();
InstanceManager instanceManager = MinecraftServer.getInstanceManager();
GlobalEventHandler eventHandler = MinecraftServer.getGlobalEventHandler();
PlayerSkin skin = PlayerSkin.fromUsername("Notch");
@@ -52,18 +52,16 @@ public class EndlessJumper {
p.setSkin(skin);
event.setSpawningInstance(world);
// an den Spieler gebunden: läuft nicht mehr, wenn er vorher geht
p.scheduler().buildTask(() -> games.put(p, new JumpGenerator(START, p, world)))
.delay(TaskSchedule.seconds(3))
.schedule();
});
eventHandler.addListener(PlayerSpawnEvent.class, event -> {
if(!event.isFirstSpawn()) return;
event.getPlayer().setCanPickupItem(true);
ScoreTab.join(event.getPlayer());
Jokers.giveStart(event.getPlayer());
Player p = event.getPlayer();
p.setCanPickupItem(true);
ScoreTab.join(p);
Jokers.giveStart(p);
// sobald der Spieler in der Welt steht, geht es los
games.put(p, new JumpGenerator(START, Progress.checkpoint(p.getUuid()), p, p.getInstance()));
});
eventHandler.addListener(PlayerMoveEvent.class, event -> {