migrated to Gradle and Minestom 2026.10.05-26.2

- Maven -> Gradle 9.6.1 (shadow 9.6.1, Java 25), shadow jar is build/libs/limbo.jar
- Minestom from Maven Central (net.minestom:minestom), speaks Minecraft 26.2 natively
- Velocity forwarding via Auth.Velocity; the secret is no longer hardcoded but read from
  forwarding.secret in the working directory or VELOCITY_FORWARDING_SECRET
- time rate via defaultClock().pause() (new clock API)
- slf4j-simple for logging (Minestom no longer ships a logger)
- removed target/ and Maven files from the repository
- uploadLimbo task copies the jar to the limbo server

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
MineTecandClaude Opus 5.5 committed 2026-10-07 23:47:40 +02:00
1 parent ead09520d9
commit 8e046c8603
22 files changed
+414 -138

No files matched your search

@@ -1,6 +1,7 @@
package eu.mhsl.minecraft.endlessjumper;
import eu.mhsl.minecraft.endlessjumper.generator.JumpGenerator;
import net.minestom.server.Auth;
import net.minestom.server.MinecraftServer;
import net.minestom.server.coordinate.Pos;
import net.minestom.server.entity.Player;
@@ -10,17 +11,19 @@ import net.minestom.server.event.player.AsyncPlayerConfigurationEvent;
import net.minestom.server.event.player.PlayerBlockBreakEvent;
import net.minestom.server.event.player.PlayerDisconnectEvent;
import net.minestom.server.event.player.PlayerMoveEvent;
import net.minestom.server.extras.velocity.VelocityProxy;
import net.minestom.server.instance.InstanceContainer;
import net.minestom.server.instance.InstanceManager;
import net.minestom.server.instance.block.Block;
import net.minestom.server.timer.TaskSchedule;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.HashMap;
public class EndlessJumper {
public static void main(String[] args) {
MinecraftServer server = MinecraftServer.init();
public static void main(String[] args) throws IOException {
MinecraftServer server = MinecraftServer.init(new Auth.Velocity(readForwardingSecret()));
InstanceManager instanceManager = MinecraftServer.getInstanceManager();
GlobalEventHandler eventHandler = MinecraftServer.getGlobalEventHandler();
PlayerSkin skin = PlayerSkin.fromUsername("Notch");
@@ -37,7 +40,7 @@ public class EndlessJumper {
Pos startingAt = new Pos(0,100,0);
world.setBlock(startingAt, Block.DIAMOND_BLOCK);
world.setTimeRate(0);
world.defaultClock().pause();
world.setTime(18000);
p.setSkin(skin);
@@ -81,8 +84,18 @@ public class EndlessJumper {
eventHandler.addListener(PlayerDisconnectEvent.class, event -> games.remove(event.getPlayer()));
VelocityProxy.enable("iph0YHK9jNWZ");
server.start("0.0.0.0", 25501);
}
// Wie bei Velocity: Secret aus forwarding.secret im Arbeitsverzeichnis, alternativ per Umgebungsvariable
private static String readForwardingSecret() throws IOException {
String fromEnv = System.getenv("VELOCITY_FORWARDING_SECRET");
if(fromEnv != null && !fromEnv.isBlank()) return fromEnv.trim();
Path file = Path.of("forwarding.secret");
if(!Files.exists(file))
throw new IllegalStateException("forwarding.secret fehlt im Arbeitsverzeichnis (oder VELOCITY_FORWARDING_SECRET setzen)");
return Files.readString(file).trim();
}
}