- Bump Gradle to 8.5 and adjust related configs. - Upgrade from JDK 17 to JDK 21. - Replace deprecated methods with modern equivalents (`withDisplayName` -> `withCustomName`). - Refactor and simplify event handling (e.g., PlayerLoginEvent -> AsyncPlayerConfigurationEvent). - Fix minor issues with player and inventory handling. - Improve Gradle startup scripts for better compatibility. - Transition plugin handling from deprecated to current class references. - General cleanup and code modernization.
56 lines
1.9 KiB
Java
56 lines
1.9 KiB
Java
package eu.mhsl.craftattack.worldmuseum.worlds;
|
|
|
|
import eu.mhsl.craftattack.worldmuseum.inventory.WorldSelector;
|
|
import eu.mhsl.craftattack.worldmuseum.util.MuseumPlayer;
|
|
import net.minestom.server.MinecraftServer;
|
|
import net.minestom.server.coordinate.Pos;
|
|
import net.minestom.server.entity.Player;
|
|
import net.minestom.server.event.inventory.InventoryCloseEvent;
|
|
import net.minestom.server.event.player.PlayerMoveEvent;
|
|
import net.minestom.server.instance.InstanceContainer;
|
|
import net.minestom.server.instance.block.Block;
|
|
import net.minestom.server.inventory.Inventory;
|
|
import net.minestom.server.world.DimensionType;
|
|
|
|
import java.util.UUID;
|
|
|
|
public class VoidWorld extends InstanceContainer implements PlayerMovable {
|
|
public VoidWorld() {
|
|
super(UUID.randomUUID(), DimensionType.OVERWORLD);
|
|
MinecraftServer.getInstanceManager().registerInstance(this);
|
|
setBlock(getSpawn().sub(0, 1, 0), Block.BARRIER);
|
|
|
|
eventNode().addListener(InventoryCloseEvent.class, inventoryCloseEvent -> {
|
|
if(inventoryCloseEvent.getPlayer().getInstance() != this) return;
|
|
inventoryCloseEvent.setNewInventory((Inventory) inventoryCloseEvent.getInventory());
|
|
});
|
|
|
|
eventNode().addListener(PlayerMoveEvent.class, playerMoveEvent -> playerMoveEvent.setCancelled(true));
|
|
}
|
|
|
|
public Pos getSpawn() {
|
|
return new Pos(0, 50, 0, 0, 0);
|
|
}
|
|
|
|
public void movePlayer(Player p) {
|
|
MuseumPlayer museumPlayer = (MuseumPlayer) p;
|
|
museumPlayer.startLoading();
|
|
|
|
if(p.getInstance() != this) {
|
|
p.setInstance(this).thenRun(() -> onTpComplete(museumPlayer));
|
|
} else {
|
|
onTpComplete(museumPlayer);
|
|
}
|
|
|
|
p.getInventory().clear();
|
|
p.setRespawnPoint(getSpawn());
|
|
p.setAllowFlying(false);
|
|
}
|
|
|
|
private void onTpComplete(MuseumPlayer p) {
|
|
p.teleport(getSpawn());
|
|
p.openInventory(new WorldSelector());
|
|
p.stopLoading();
|
|
}
|
|
}
|