Refactor spawn handling into dedicated event listener

- Moved player spawn logic from join event to a new `PlayerSpawnEvent`.
- Improved separation of concerns by restructuring `VoidWorld` spawning logic.
- Added join logging for better debugging.
This commit is contained in:
2025-12-25 20:37:04 +01:00
parent 4f10ce5ba8
commit d3237f7b81

View File

@@ -76,7 +76,14 @@ public class Main {
final VoidWorld voidWorld = new VoidWorld(); final VoidWorld voidWorld = new VoidWorld();
event.setSpawningInstance(voidWorld); event.setSpawningInstance(voidWorld);
MinecraftServer.getSchedulerManager().scheduleNextTick(() -> { System.out.println("[Join] Player " + player.getUsername() +" joined the server.");
});
globalEventHandler.addListener(PlayerSpawnEvent.class, event -> {
if(!event.isFirstSpawn()) return;
MuseumPlayer player = (MuseumPlayer) event.getPlayer();
final VoidWorld voidWorld = new VoidWorld();
player.setPermissionLevel(4); player.setPermissionLevel(4);
player.setRespawnPoint(voidWorld.getSpawn()); player.setRespawnPoint(voidWorld.getSpawn());
player.setGameMode(GameMode.SPECTATOR); player.setGameMode(GameMode.SPECTATOR);
@@ -85,9 +92,6 @@ public class Main {
voidWorld.movePlayer(player); voidWorld.movePlayer(player);
}); });
System.out.println("[Join] Player " + player.getUsername() +" joined the server.");
});
try { try {
PORT = Integer.parseInt(args[0]); PORT = Integer.parseInt(args[0]);
} catch (Exception e) { } catch (Exception e) {