From 3ec0d82d467041c70294582d4ec2cbccceea9492 Mon Sep 17 00:00:00 2001 From: Camotoy <20743703+Camotoy@users.noreply.github.com> Date: Fri, 9 Jun 2023 12:10:59 -0400 Subject: [PATCH] Kick pre-1.19.30 players for not sending a RequestNetworkSettingsPacket --- .../org/geysermc/geyser/network/UpstreamPacketHandler.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/core/src/main/java/org/geysermc/geyser/network/UpstreamPacketHandler.java b/core/src/main/java/org/geysermc/geyser/network/UpstreamPacketHandler.java index 51533dfd8..225f8207a 100644 --- a/core/src/main/java/org/geysermc/geyser/network/UpstreamPacketHandler.java +++ b/core/src/main/java/org/geysermc/geyser/network/UpstreamPacketHandler.java @@ -69,6 +69,7 @@ import java.util.OptionalInt; public class UpstreamPacketHandler extends LoggingPacketHandler { + private boolean networkSettingsRequested = false; private Deque packsToSent = new ArrayDeque<>(); public UpstreamPacketHandler(GeyserImpl geyser, GeyserSession session) { @@ -137,6 +138,7 @@ public class UpstreamPacketHandler extends LoggingPacketHandler { session.getUpstream().getSession().setCompression(algorithm); session.getUpstream().getSession().setCompressionLevel(this.geyser.getConfig().getBedrock().getCompressionLevel()); + networkSettingsRequested = true; return PacketSignal.HANDLED; } @@ -148,6 +150,11 @@ public class UpstreamPacketHandler extends LoggingPacketHandler { return PacketSignal.HANDLED; } + if (!networkSettingsRequested) { + session.disconnect(GeyserLocale.getLocaleStringLog("geyser.network.outdated.client", GameProtocol.getAllSupportedBedrockVersions())); + return PacketSignal.HANDLED; + } + // Set the block translation based off of version session.setBlockMappings(BlockRegistries.BLOCKS.forVersion(loginPacket.getProtocolVersion())); session.setItemMappings(Registries.ITEMS.forVersion(loginPacket.getProtocolVersion()));