From edb9c5d8f3e823b9c18b488d9d6c6406e730a768 Mon Sep 17 00:00:00 2001 From: Kas-tle <26531652+Kas-tle@users.noreply.github.com> Date: Tue, 24 Sep 2024 09:43:00 -0700 Subject: [PATCH] Update RakClientOfflineHandler.java --- .../client/RakClientOfflineHandler.java | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/transport-raknet/src/main/java/org/cloudburstmc/netty/handler/codec/raknet/client/RakClientOfflineHandler.java b/transport-raknet/src/main/java/org/cloudburstmc/netty/handler/codec/raknet/client/RakClientOfflineHandler.java index c86e97e..6317532 100644 --- a/transport-raknet/src/main/java/org/cloudburstmc/netty/handler/codec/raknet/client/RakClientOfflineHandler.java +++ b/transport-raknet/src/main/java/org/cloudburstmc/netty/handler/codec/raknet/client/RakClientOfflineHandler.java @@ -76,14 +76,21 @@ public void handlerRemoved(ChannelHandlerContext ctx) throws Exception { } private void onRetryAttempt(Channel channel) { - switch (this.state) { - case HANDSHAKE_1: + if (this.rakChannel.config().getOption(RakChannelOption.RAK_COMPATIBILITY_MODE)) { + if (this.state != RakOfflineState.HANDSHAKE_COMPLETED) { this.sendOpenConnectionRequest1(channel); this.connectionAttempts++; - break; - case HANDSHAKE_2: - this.sendOpenConnectionRequest2(channel); - break; + } + } else { + switch (this.state) { + case HANDSHAKE_1: + this.sendOpenConnectionRequest1(channel); + this.connectionAttempts++; + break; + case HANDSHAKE_2: + this.sendOpenConnectionRequest2(channel); + break; + } } } @@ -158,6 +165,8 @@ private void onOpenConnectionReply1(ChannelHandlerContext ctx, ByteBuf buffer) { if (security) { this.cookie = buffer.readInt(); this.security = true; + } else { + this.security = false; } int mtu = buffer.readShort();