Handle configuration/transition-phase disconnects as connection errors to prevent bricking older client versions (#1753)

This commit is contained in:
R00tB33rMan
2026-04-09 10:50:01 -04:00
committed by GitHub
parent b1a1b8bda3
commit 6ce432e4ae
2 changed files with 5 additions and 7 deletions

View File

@@ -61,7 +61,6 @@ import com.velocitypowered.proxy.protocol.util.PluginMessageUtil;
import io.netty.buffer.ByteBufUtil;
import io.netty.buffer.Unpooled;
import io.netty.channel.Channel;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.util.concurrent.CompletableFuture;
import net.kyori.adventure.key.Key;
@@ -377,8 +376,8 @@ public class ConfigSessionHandler implements MinecraftSessionHandler {
@Override
public void disconnected() {
resultFuture.completeExceptionally(
new IOException("Unexpectedly disconnected from remote server"));
resultFuture.complete(ConnectionRequestResults.forDisconnect(
ConnectionMessages.INTERNAL_SERVER_CONNECTION_ERROR, serverConn.getServer()));
}
@Override
@@ -415,4 +414,4 @@ public class ConfigSessionHandler implements MinecraftSessionHandler {
public enum State {
START, NEGOTIATING, PLUGIN_MESSAGE_INTERRUPT, RESOURCE_PACK_INTERRUPT, COMPLETE
}
}
}

View File

@@ -38,7 +38,6 @@ import com.velocitypowered.proxy.protocol.packet.DisconnectPacket;
import com.velocitypowered.proxy.protocol.packet.JoinGamePacket;
import com.velocitypowered.proxy.protocol.packet.KeepAlivePacket;
import com.velocitypowered.proxy.protocol.packet.PluginMessagePacket;
import java.io.IOException;
import java.util.concurrent.CompletableFuture;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@@ -213,7 +212,7 @@ public class TransitionSessionHandler implements MinecraftSessionHandler {
@Override
public void disconnected() {
resultFuture
.completeExceptionally(new IOException("Unexpectedly disconnected from remote server"));
resultFuture.complete(ConnectionRequestResults.forDisconnect(
ConnectionMessages.INTERNAL_SERVER_CONNECTION_ERROR, serverConn.getServer()));
}
}