From 66e04533980dd21d38561c1660b25bd0dc484cc1 Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Sat, 27 Apr 2024 12:13:09 +0200 Subject: [PATCH] Fix block protocols disconnect packet --- .../protocols/base/BaseProtocol1_7.java | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/common/src/main/java/com/viaversion/viaversion/protocols/base/BaseProtocol1_7.java b/common/src/main/java/com/viaversion/viaversion/protocols/base/BaseProtocol1_7.java index 1c9fb0742..8cafa461f 100644 --- a/common/src/main/java/com/viaversion/viaversion/protocols/base/BaseProtocol1_7.java +++ b/common/src/main/java/com/viaversion/viaversion/protocols/base/BaseProtocol1_7.java @@ -23,6 +23,7 @@ import com.google.gson.JsonObject; import com.google.gson.JsonParseException; import com.viaversion.viaversion.api.Via; import com.viaversion.viaversion.api.connection.ProtocolInfo; +import com.viaversion.viaversion.api.connection.UserConnection; import com.viaversion.viaversion.api.protocol.AbstractProtocol; import com.viaversion.viaversion.api.protocol.ProtocolPathEntry; import com.viaversion.viaversion.api.protocol.packet.PacketWrapper; @@ -158,20 +159,22 @@ public class BaseProtocol1_7 extends AbstractProtocol { - ProtocolVersion protocol = wrapper.user().getProtocolInfo().protocolVersion(); + final UserConnection user = wrapper.user(); + final ProtocolVersion protocol = user.getProtocolInfo().protocolVersion(); if (Via.getConfig().blockedProtocolVersions().contains(protocol)) { - if (!wrapper.user().getChannel().isOpen()) return; - if (!wrapper.user().shouldApplyBlockProtocol()) return; + if (!user.getChannel().isOpen() || !user.shouldApplyBlockProtocol()) { + return; + } - final String disconnectMessage = ChatColorUtil.translateAlternateColorCodes(Via.getConfig().getBlockedDisconnectMsg()); - - PacketWrapper disconnectPacket = PacketWrapper.create(ClientboundLoginPackets.LOGIN_DISCONNECT, wrapper.user()); // Disconnect Packet - wrapper.write(Type.COMPONENT, ComponentUtil.plainToJson(disconnectMessage)); wrapper.cancel(); // cancel current + final String disconnectMessage = ChatColorUtil.translateAlternateColorCodes(Via.getConfig().getBlockedDisconnectMsg()); + final PacketWrapper disconnectPacket = PacketWrapper.create(ClientboundLoginPackets.LOGIN_DISCONNECT, user); + disconnectPacket.write(Type.COMPONENT, ComponentUtil.plainToJson(disconnectMessage)); + // Send and close - ChannelFuture future = disconnectPacket.sendFuture(null); - future.addListener(f -> wrapper.user().getChannel().close()); + final ChannelFuture future = disconnectPacket.sendFuture(null); + future.addListener(f -> user.getChannel().close()); } });