package net.pivipi; import net.minestom.server.coordinate.Pos; import net.minestom.server.entity.GameMode; import net.minestom.server.entity.Player; import net.minestom.server.event.GlobalEventHandler; import net.minestom.server.event.player.AsyncPlayerConfigurationEvent; import net.minestom.server.event.player.PlayerSpawnEvent; import net.minestom.server.instance.Instance; import net.pivipi.ball.Ball; public class LoginHandler { private final Instance spawningInstance; public LoginHandler(Instance spawningInstance) { this.spawningInstance = spawningInstance; } public void setup(GlobalEventHandler globalEventHandler) { globalEventHandler.addListener( AsyncPlayerConfigurationEvent.class, event -> onLogin(event) ); globalEventHandler.addListener( PlayerSpawnEvent.class, event -> onSpawn(event) ); } private void onLogin(AsyncPlayerConfigurationEvent event) { Player player = event.getPlayer(); event.setSpawningInstance(spawningInstance); event.setHardcore(true); player.setRespawnPoint(new Pos(0, 5, 0)); } private void onSpawn(PlayerSpawnEvent event) { Player player = event.getPlayer(); player.setGameMode(GameMode.CREATIVE); Ball ball = new Ball(); ball.setInstance(event.getInstance()); ball.teleport(new Pos(0.5, 15, 0.5)); } }