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 66d037078..0d4beb4d4 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 @@ -182,15 +182,18 @@ public class ConnectedPlayer implements MinecraftConnectionAssociation, Player { public void handleConnectionException(ServerInfo info, Component disconnectReason) { connectionInFlight = null; - if (connectedServer == null || connectedServer.getServerInfo().equals(info)) { - // The player isn't yet connected to a server or they are already connected to the server - // they're disconnected from. + if (connectedServer == null) { + // The player isn't yet connected to a server. Optional nextServer = getNextServerToTry(); if (nextServer.isPresent()) { createConnectionRequest(nextServer.get()).fireAndForget(); } else { connection.closeWith(Disconnect.create(disconnectReason)); } + } else if (connectedServer.getServerInfo().equals(info)) { + // Already connected to the server being disconnected from. + // TODO: ServerKickEvent + connection.closeWith(Disconnect.create(disconnectReason)); } else { connection.write(Chat.create(disconnectReason)); }