From 76192b1f970ae35e1b41755fa2a5c895999c9769 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Sun, 19 Nov 2023 13:06:34 +0100 Subject: [PATCH] Changed room join method for api driven rooms --- build.gradle | 6 ++++- .../java/eu/mhsl/minenet/minigames/Main.java | 5 +++-- .../handler/global/PlayerLoginHandler.java | 16 ++++++++++---- .../minigames/instance/transfer/Transfer.java | 22 +++++++++++++++++++ .../instance/virtualRoom/VirtualRoom.java | 15 ------------- 5 files changed, 42 insertions(+), 22 deletions(-) create mode 100644 src/main/java/eu/mhsl/minenet/minigames/instance/transfer/Transfer.java delete mode 100644 src/main/java/eu/mhsl/minenet/minigames/instance/virtualRoom/VirtualRoom.java diff --git a/build.gradle b/build.gradle index 9cfc22e..4b3bc5a 100644 --- a/build.gradle +++ b/build.gradle @@ -33,7 +33,11 @@ dependencies { testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.9.0' //https://jitpack.io/#Minestom/Minestom - implementation 'com.github.waxeria:Minestom:e0427a36f3' +// implementation 'com.github.waxeria:Minestom:e0427a36f3' + +// implementation 'dev.hollowcube:minestom-ce:5bcc72b911' + implementation 'dev.hollowcube:minestom-ce:e146a9393e' + implementation 'dev.hollowcube:minestom-ce-extensions:1.2.0' //Tools diff --git a/src/main/java/eu/mhsl/minenet/minigames/Main.java b/src/main/java/eu/mhsl/minenet/minigames/Main.java index 85198c3..aba0ea3 100644 --- a/src/main/java/eu/mhsl/minenet/minigames/Main.java +++ b/src/main/java/eu/mhsl/minenet/minigames/Main.java @@ -40,13 +40,14 @@ public class Main { ConfigurationNode serverConfig = globalConfig.node("server"); logger.info("Initialize Minecraft server..."); - MinecraftServer server = MinecraftServer.init(); - PvpExtension.init(); MinecraftServer.setBrandName("mhsl.eu - minenet - credits to minestom"); MinecraftServer.setCompressionThreshold(serverConfig.node("compression-threshold").getInt(0)); System.setProperty("minestom.chunk-view-distance", String.valueOf(serverConfig.node("view-distance").getInt())); + MinecraftServer server = MinecraftServer.init(); + PvpExtension.init(); + MinecraftServer.getConnectionManager().setUuidProvider(new ByPlayerNameUuidProvider()); Commands.values(); diff --git a/src/main/java/eu/mhsl/minenet/minigames/handler/global/PlayerLoginHandler.java b/src/main/java/eu/mhsl/minenet/minigames/handler/global/PlayerLoginHandler.java index 30d2bf9..9401aa8 100644 --- a/src/main/java/eu/mhsl/minenet/minigames/handler/global/PlayerLoginHandler.java +++ b/src/main/java/eu/mhsl/minenet/minigames/handler/global/PlayerLoginHandler.java @@ -2,7 +2,9 @@ package eu.mhsl.minenet.minigames.handler.global; import eu.mhsl.minenet.minigames.Main; import eu.mhsl.minenet.minigames.api.QueuedPlayerRooms; +import eu.mhsl.minenet.minigames.instance.MineNetInstance; import eu.mhsl.minenet.minigames.instance.room.Room; +import eu.mhsl.minenet.minigames.instance.transfer.Transfer; import eu.mhsl.minenet.minigames.message.Icon; import eu.mhsl.minenet.minigames.message.type.ChatMessage; import eu.mhsl.minenet.minigames.skin.SkinCache; @@ -12,6 +14,7 @@ import net.minestom.server.event.EventListener; import net.minestom.server.event.player.PlayerLoginEvent; import eu.mhsl.minenet.minigames.instance.hub.Hub; import net.minestom.server.permission.Permission; +import net.minestom.server.timer.TaskSchedule; import org.jetbrains.annotations.NotNull; import org.spongepowered.configurate.serialize.SerializationException; @@ -32,15 +35,20 @@ public class PlayerLoginHandler implements EventListener { UUID pushQueue = QueuedPlayerRooms.pullQueue(event.getPlayer().getUuid()); if(pushQueue != null) { Room target = Room.getRoom(pushQueue).orElseThrow(); - p.setRespawnPoint(target.getSpawn()); - event.setSpawningInstance(Hub.INSTANCE); - MinecraftServer.getSchedulerManager().scheduleNextTick(() -> Room.setRoom(p, target)); + Transfer transferInstance = new Transfer(); + p.setRespawnPoint(transferInstance.getSpawn()); + event.setSpawningInstance(transferInstance); + MinecraftServer.getSchedulerManager().scheduleTask( + () -> Room.setRoom(p, target), + TaskSchedule.seconds(1), + TaskSchedule.stop() + ); } else { p.setRespawnPoint(Hub.INSTANCE.getSpawn()); event.setSpawningInstance(Hub.INSTANCE); } - SkinCache.applySkin(p); +// SkinCache.applySkin(p); try { if(Objects.requireNonNull(Main.globalConfig.node("admins").getList(String.class)).stream().anyMatch(s -> s.equalsIgnoreCase(p.getUsername()))) { diff --git a/src/main/java/eu/mhsl/minenet/minigames/instance/transfer/Transfer.java b/src/main/java/eu/mhsl/minenet/minigames/instance/transfer/Transfer.java new file mode 100644 index 0000000..93cdb62 --- /dev/null +++ b/src/main/java/eu/mhsl/minenet/minigames/instance/transfer/Transfer.java @@ -0,0 +1,22 @@ +package eu.mhsl.minenet.minigames.instance.transfer; + +import eu.mhsl.minenet.minigames.instance.Dimension; +import eu.mhsl.minenet.minigames.instance.MineNetInstance; +import eu.mhsl.minenet.minigames.instance.Spawnable; +import eu.mhsl.minenet.minigames.util.CommonEventHandles; +import net.minestom.server.coordinate.Pos; +import net.minestom.server.event.player.PlayerMoveEvent; +import net.minestom.server.instance.block.Block; + +public class Transfer extends MineNetInstance implements Spawnable { + public Transfer() { + super(Dimension.THE_END.DIMENSION); + eventNode().addListener(PlayerMoveEvent.class, CommonEventHandles::cancel); + setBlock(0, 0, 0, Block.BARRIER); + } + + @Override + public Pos getSpawn() { + return new Pos(0.5, 1, 0.5); + } +} diff --git a/src/main/java/eu/mhsl/minenet/minigames/instance/virtualRoom/VirtualRoom.java b/src/main/java/eu/mhsl/minenet/minigames/instance/virtualRoom/VirtualRoom.java deleted file mode 100644 index b65e11a..0000000 --- a/src/main/java/eu/mhsl/minenet/minigames/instance/virtualRoom/VirtualRoom.java +++ /dev/null @@ -1,15 +0,0 @@ -package eu.mhsl.minenet.minigames.instance.virtualRoom; - -import eu.mhsl.minenet.minigames.instance.room.Room; -import net.minestom.server.coordinate.Pos; - -public class VirtualRoom extends Room { - public VirtualRoom() { - - } - - @Override - public Pos getSpawn() { - return null; - } -}