diff --git a/proxy/src/main/java/com/velocitypowered/proxy/connection/client/ConnectedPlayer.java b/proxy/src/main/java/com/velocitypowered/proxy/connection/client/ConnectedPlayer.java index b96841786..47a258f5a 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/connection/client/ConnectedPlayer.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/connection/client/ConnectedPlayer.java @@ -430,17 +430,20 @@ public class ConnectedPlayer implements MinecraftConnectionAssociation, Player { } KickedFromServerEvent originalEvent = new KickedFromServerEvent(this, rs, kickReason, !kickedFromCurrent, result); - handleKickEvent(originalEvent, friendlyReason); + handleKickEvent(originalEvent, friendlyReason, kickedFromCurrent); } } - private void handleKickEvent(KickedFromServerEvent originalEvent, Component friendlyReason) { + private void handleKickEvent(KickedFromServerEvent originalEvent, Component friendlyReason, + boolean kickedFromCurrent) { server.getEventManager().fire(originalEvent) .thenAcceptAsync(event -> { // There can't be any connection in flight now. connectionInFlight = null; // Make sure we clear the current connected server as the connection is invalid. - connectedServer = null; + if (kickedFromCurrent) { + connectedServer = null; + } if (event.getResult() instanceof DisconnectPlayer) { DisconnectPlayer res = (DisconnectPlayer) event.getResult();