From ebc80709b1b2bbeef6cf9b378dbe117f93ea7398 Mon Sep 17 00:00:00 2001 From: Adrian Bergqvist Date: Wed, 5 Apr 2023 21:15:38 +0200 Subject: [PATCH] Unregister connection before it's ready --- build.gradle.kts | 2 +- src/main/java/org/adde0109/ambassador/Ambassador.java | 2 +- .../ambassador/velocity/VelocityEventHandler.java | 8 ++++++++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index b3fac45..b96bff3 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -5,7 +5,7 @@ plugins { } group = "org.adde0109" -version = "1.3.0-beta" +version = "1.3.1-beta" repositories { mavenCentral() diff --git a/src/main/java/org/adde0109/ambassador/Ambassador.java b/src/main/java/org/adde0109/ambassador/Ambassador.java index 50d7f9c..7399529 100644 --- a/src/main/java/org/adde0109/ambassador/Ambassador.java +++ b/src/main/java/org/adde0109/ambassador/Ambassador.java @@ -40,7 +40,7 @@ import static com.velocitypowered.api.network.ProtocolVersion.MINECRAFT_1_19; import static com.velocitypowered.api.network.ProtocolVersion.MINECRAFT_1_19_3; import static com.velocitypowered.proxy.protocol.packet.brigadier.ArgumentIdentifier.mapSet; -@Plugin(id = "ambassador", name = "Ambassador", version = "1.3.0-beta", authors = {"adde0109"}) +@Plugin(id = "ambassador", name = "Ambassador", version = "1.3.1-beta", authors = {"adde0109"}) public class Ambassador { public ProxyServer server; diff --git a/src/main/java/org/adde0109/ambassador/velocity/VelocityEventHandler.java b/src/main/java/org/adde0109/ambassador/velocity/VelocityEventHandler.java index c132001..9047199 100644 --- a/src/main/java/org/adde0109/ambassador/velocity/VelocityEventHandler.java +++ b/src/main/java/org/adde0109/ambassador/velocity/VelocityEventHandler.java @@ -7,6 +7,7 @@ import com.velocitypowered.api.event.connection.LoginEvent; import com.velocitypowered.api.event.connection.PostLoginEvent; import com.velocitypowered.api.event.player.*; import com.velocitypowered.api.proxy.server.RegisteredServer; +import com.velocitypowered.proxy.VelocityServer; import com.velocitypowered.proxy.connection.client.ConnectedPlayer; import com.velocitypowered.proxy.network.Connections; import com.velocitypowered.proxy.protocol.StateRegistry; @@ -42,6 +43,13 @@ public class VelocityEventHandler { continuation.resume(); } + @Subscribe(order = PostOrder.FIRST) + public void onPostLoginEvent(PostLoginEvent event, Continuation continuation) { + if (((ConnectedPlayer) event.getPlayer()).getPhase() instanceof VelocityForgeClientConnectionPhase) + ((VelocityServer) Ambassador.getInstance().server).unregisterConnection((ConnectedPlayer) event.getPlayer()); + continuation.resume(); + } + @Subscribe(order = PostOrder.LAST) public void onPlayerChooseInitialServerEvent(PlayerChooseInitialServerEvent event, Continuation continuation) { ConnectedPlayer player = (ConnectedPlayer) event.getPlayer();