From 14229ef1fe138c09e50c4c5bda8a2f8baf604254 Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Sun, 3 Nov 2024 15:03:33 +0100 Subject: [PATCH] Fix LoginHelloS2CPacket being recorded on some servers --- .../java/com/replaymod/recording/packet/PacketListener.java | 5 +++++ src/main/java/com/replaymod/replay/FullReplaySender.java | 2 ++ 2 files changed, 7 insertions(+) diff --git a/src/main/java/com/replaymod/recording/packet/PacketListener.java b/src/main/java/com/replaymod/recording/packet/PacketListener.java index fbf7f84d..59a0d26a 100644 --- a/src/main/java/com/replaymod/recording/packet/PacketListener.java +++ b/src/main/java/com/replaymod/recording/packet/PacketListener.java @@ -31,6 +31,7 @@ import io.netty.channel.ChannelPromise; import io.netty.util.AttributeKey; import net.minecraft.client.MinecraftClient; import net.minecraft.network.ClientConnection; +import net.minecraft.network.packet.s2c.login.LoginHelloS2CPacket; import net.minecraft.network.packet.s2c.play.CustomPayloadS2CPacket; import net.minecraft.network.packet.s2c.play.DisconnectS2CPacket; import net.minecraft.entity.Entity; @@ -489,6 +490,10 @@ public class PacketListener extends ChannelInboundHandlerAdapter { @Override public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { + if (msg instanceof LoginHelloS2CPacket) { + super.channelRead(ctx, msg); + return; + } if (msg instanceof LoginCompressionS2CPacket) { super.channelRead(ctx, msg); return; diff --git a/src/main/java/com/replaymod/replay/FullReplaySender.java b/src/main/java/com/replaymod/replay/FullReplaySender.java index 287e2d45..919b5b37 100644 --- a/src/main/java/com/replaymod/replay/FullReplaySender.java +++ b/src/main/java/com/replaymod/replay/FullReplaySender.java @@ -29,6 +29,7 @@ import net.minecraft.client.world.ClientWorld; import net.minecraft.entity.Entity; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.network.Packet; +import net.minecraft.network.packet.s2c.login.LoginHelloS2CPacket; import net.minecraft.network.packet.s2c.play.GameMessageS2CPacket; import net.minecraft.network.packet.s2c.play.CustomPayloadS2CPacket; import net.minecraft.network.packet.s2c.play.DisconnectS2CPacket; @@ -170,6 +171,7 @@ public class FullReplaySender extends ChannelInboundHandlerAdapter implements Re * These packets are ignored completely during replay. */ private static final List BAD_PACKETS = Arrays.asList( + LoginHelloS2CPacket.class, // workaround for an issue where ReplayMod prior to 2.6.20 would record these //#if MC>=11404 PlayerActionResponseS2CPacket.class, //#endif