From 77a69d65e71305a90a28a71944f86ecb93794383 Mon Sep 17 00:00:00 2001 From: Abdullah Arafat <62858251+kmaba@users.noreply.github.com> Date: Sat, 1 Feb 2025 22:51:30 +0800 Subject: [PATCH] Handle gameserver stops and return the user to their lobby --- .../io/github/kmaba/vLobbyConnect/VelocityPlugin.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/main/java/io/github/kmaba/vLobbyConnect/VelocityPlugin.java b/src/main/java/io/github/kmaba/vLobbyConnect/VelocityPlugin.java index 6e2044a..a1fe96f 100644 --- a/src/main/java/io/github/kmaba/vLobbyConnect/VelocityPlugin.java +++ b/src/main/java/io/github/kmaba/vLobbyConnect/VelocityPlugin.java @@ -5,6 +5,7 @@ import com.velocitypowered.api.event.PostOrder; import com.velocitypowered.api.event.player.PlayerChooseInitialServerEvent; import com.velocitypowered.api.event.proxy.ProxyInitializeEvent; +import com.velocitypowered.api.event.proxy.ProxyShutdownEvent; import com.velocitypowered.api.plugin.Plugin; import com.velocitypowered.api.proxy.Player; import com.velocitypowered.api.proxy.server.RegisteredServer; @@ -87,6 +88,9 @@ public void onProxyInitialize(ProxyInitializeEvent event) { // Register commands server.getCommandManager().register("hub", new HubCommand(server, logger)); server.getCommandManager().register("lobby", new LobbyCommand(server, logger)); + + // Register event listener for gameserver stops + server.getEventManager().register(this, this); } @Subscribe(order = PostOrder.FIRST) @@ -128,4 +132,11 @@ public void onPlayerDisconnect(Player player) { connectionAttempts.remove(uuid); logger.info("Player {} disconnected.", player.getUsername()); } + + @Subscribe + public void onGameServerStop(ProxyShutdownEvent event) { + for (Player player : server.getAllPlayers()) { + player.disconnect(Component.text("The gameserver has stopped. You have been kicked.")); + } + } }