Mirror von
https://github.com/PaperMC/Velocity.git
synchronisiert 2024-11-06 00:00:47 +01:00
Do not try to prevent people from running Velocity behind Velocity.
This commit absolutely does not change our support policy on this: this is a completely unsupported setup. In any event, there is an existing forwarding check in Velocity that covers this case quite well. I am making this change to make the login process less "chatty" for higher-latency links and 1.13+ servers.
Dieser Commit ist enthalten in:
Ursprung
d333eb30b8
Commit
010a10f50f
@ -66,7 +66,6 @@ public class LoginSessionHandler implements MinecraftSessionHandler {
|
|||||||
private final InitialInboundConnection inbound;
|
private final InitialInboundConnection inbound;
|
||||||
private @MonotonicNonNull ServerLogin login;
|
private @MonotonicNonNull ServerLogin login;
|
||||||
private byte[] verify = EMPTY_BYTE_ARRAY;
|
private byte[] verify = EMPTY_BYTE_ARRAY;
|
||||||
private int playerInfoId;
|
|
||||||
private @MonotonicNonNull ConnectedPlayer connectedPlayer;
|
private @MonotonicNonNull ConnectedPlayer connectedPlayer;
|
||||||
|
|
||||||
LoginSessionHandler(VelocityServer server, MinecraftConnection mcConnection,
|
LoginSessionHandler(VelocityServer server, MinecraftConnection mcConnection,
|
||||||
@ -79,29 +78,7 @@ public class LoginSessionHandler implements MinecraftSessionHandler {
|
|||||||
@Override
|
@Override
|
||||||
public boolean handle(ServerLogin packet) {
|
public boolean handle(ServerLogin packet) {
|
||||||
this.login = packet;
|
this.login = packet;
|
||||||
if (mcConnection.getProtocolVersion().compareTo(MINECRAFT_1_13) >= 0) {
|
beginPreLogin();
|
||||||
// To make sure the connecting client isn't Velocity, send a plugin message that Velocity will
|
|
||||||
// recognize and respond to.
|
|
||||||
playerInfoId = ThreadLocalRandom.current().nextInt();
|
|
||||||
mcConnection.write(new LoginPluginMessage(playerInfoId, VELOCITY_IP_FORWARDING_CHANNEL,
|
|
||||||
Unpooled.EMPTY_BUFFER));
|
|
||||||
} else {
|
|
||||||
beginPreLogin();
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean handle(LoginPluginResponse packet) {
|
|
||||||
if (packet.getId() == playerInfoId) {
|
|
||||||
if (packet.isSuccess()) {
|
|
||||||
// Uh oh, someone's trying to run Velocity behind Velocity. We don't want that happening.
|
|
||||||
inbound.disconnect(VelocityMessages.NO_PROXY_BEHIND_PROXY);
|
|
||||||
} else {
|
|
||||||
// Proceed with the regular login process.
|
|
||||||
beginPreLogin();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren