Mirror von
https://github.com/PaperMC/Velocity.git
synchronisiert 2024-11-17 05:20:14 +01:00
More protocol sanity.
Dieser Commit ist enthalten in:
Ursprung
8bf3b99b10
Commit
95bd152fee
@ -93,11 +93,13 @@ public class ServerConnection implements MinecraftConnectionAssociation {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void startHandshake() {
|
private void startHandshake() {
|
||||||
|
PlayerInfoForwarding forwardingMode = VelocityServer.getServer().getConfiguration().getPlayerInfoForwardingMode();
|
||||||
|
|
||||||
// Initiate a handshake.
|
// Initiate a handshake.
|
||||||
Handshake handshake = new Handshake();
|
Handshake handshake = new Handshake();
|
||||||
handshake.setNextStatus(StateRegistry.LOGIN_ID);
|
handshake.setNextStatus(StateRegistry.LOGIN_ID);
|
||||||
handshake.setProtocolVersion(proxyPlayer.getConnection().getProtocolVersion());
|
handshake.setProtocolVersion(proxyPlayer.getConnection().getProtocolVersion());
|
||||||
if (VelocityServer.getServer().getConfiguration().getPlayerInfoForwardingMode() == PlayerInfoForwarding.LEGACY) {
|
if (forwardingMode == PlayerInfoForwarding.LEGACY) {
|
||||||
handshake.setServerAddress(createBungeeForwardingAddress());
|
handshake.setServerAddress(createBungeeForwardingAddress());
|
||||||
} else {
|
} else {
|
||||||
handshake.setServerAddress(serverInfo.getAddress().getHostString());
|
handshake.setServerAddress(serverInfo.getAddress().getHostString());
|
||||||
@ -110,8 +112,7 @@ public class ServerConnection implements MinecraftConnectionAssociation {
|
|||||||
minecraftConnection.setState(StateRegistry.LOGIN);
|
minecraftConnection.setState(StateRegistry.LOGIN);
|
||||||
|
|
||||||
// Send the server login packet for <=1.12.2 and for 1.13+ servers not using "modern" forwarding.
|
// Send the server login packet for <=1.12.2 and for 1.13+ servers not using "modern" forwarding.
|
||||||
if (protocolVersion <= ProtocolConstants.MINECRAFT_1_12_2 ||
|
if (protocolVersion <= ProtocolConstants.MINECRAFT_1_12_2 || forwardingMode != PlayerInfoForwarding.MODERN) {
|
||||||
VelocityServer.getServer().getConfiguration().getPlayerInfoForwardingMode() != PlayerInfoForwarding.MODERN) {
|
|
||||||
ServerLogin login = new ServerLogin();
|
ServerLogin login = new ServerLogin();
|
||||||
login.setUsername(proxyPlayer.getUsername());
|
login.setUsername(proxyPlayer.getUsername());
|
||||||
minecraftConnection.write(login);
|
minecraftConnection.write(login);
|
||||||
|
@ -40,6 +40,10 @@ public class MinecraftDecoder extends MessageToMessageDecoder<ByteBuf> {
|
|||||||
throw new CorruptedFrameException("Error decoding " + packet.getClass() + " Direction " + direction
|
throw new CorruptedFrameException("Error decoding " + packet.getClass() + " Direction " + direction
|
||||||
+ " Protocol " + protocolVersion + " State " + state + " ID " + Integer.toHexString(packetId), e);
|
+ " Protocol " + protocolVersion + " State " + state + " ID " + Integer.toHexString(packetId), e);
|
||||||
}
|
}
|
||||||
|
if (msg.isReadable()) {
|
||||||
|
throw new CorruptedFrameException("Did not read full packet for " + packet.getClass() + " Direction " + direction
|
||||||
|
+ " Protocol " + protocolVersion + " State " + state + " ID " + Integer.toHexString(packetId));
|
||||||
|
}
|
||||||
out.add(packet);
|
out.add(packet);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren