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.ByteBufUtil;
import io.netty.buffer.Unpooled; import io.netty.buffer.Unpooled;
import io.netty.channel.Channel; import io.netty.channel.Channel;
import java.io.IOException;
import java.net.InetSocketAddress; import java.net.InetSocketAddress;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
import net.kyori.adventure.key.Key; import net.kyori.adventure.key.Key;
@@ -377,8 +376,8 @@ public class ConfigSessionHandler implements MinecraftSessionHandler {
@Override @Override
public void disconnected() { public void disconnected() {
resultFuture.completeExceptionally( resultFuture.complete(ConnectionRequestResults.forDisconnect(
new IOException("Unexpectedly disconnected from remote server")); ConnectionMessages.INTERNAL_SERVER_CONNECTION_ERROR, serverConn.getServer()));
} }
@Override @Override
@@ -415,4 +414,4 @@ public class ConfigSessionHandler implements MinecraftSessionHandler {
public enum State { public enum State {
START, NEGOTIATING, PLUGIN_MESSAGE_INTERRUPT, RESOURCE_PACK_INTERRUPT, COMPLETE 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.JoinGamePacket;
import com.velocitypowered.proxy.protocol.packet.KeepAlivePacket; import com.velocitypowered.proxy.protocol.packet.KeepAlivePacket;
import com.velocitypowered.proxy.protocol.packet.PluginMessagePacket; import com.velocitypowered.proxy.protocol.packet.PluginMessagePacket;
import java.io.IOException;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
@@ -213,7 +212,7 @@ public class TransitionSessionHandler implements MinecraftSessionHandler {
@Override @Override
public void disconnected() { public void disconnected() {
resultFuture resultFuture.complete(ConnectionRequestResults.forDisconnect(
.completeExceptionally(new IOException("Unexpectedly disconnected from remote server")); ConnectionMessages.INTERNAL_SERVER_CONNECTION_ERROR, serverConn.getServer()));
} }
} }