From 22d1048999e030d88beddd42aa7b8fb39ee7b5f4 Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Tue, 23 Feb 2021 00:22:00 +0100 Subject: [PATCH] Move FMLHandshakeFilter into 1.12.2 project --- .../recording/handler/FMLHandshakeFilter.java | 32 +------------------ .../recording/handler/FMLHandshakeFilter.java | 29 +++++++++++++++++ 2 files changed, 30 insertions(+), 31 deletions(-) create mode 100644 versions/1.12.2/src/main/java/com/replaymod/recording/handler/FMLHandshakeFilter.java diff --git a/src/main/java/com/replaymod/recording/handler/FMLHandshakeFilter.java b/src/main/java/com/replaymod/recording/handler/FMLHandshakeFilter.java index f280ca13..fca4cd6c 100644 --- a/src/main/java/com/replaymod/recording/handler/FMLHandshakeFilter.java +++ b/src/main/java/com/replaymod/recording/handler/FMLHandshakeFilter.java @@ -1,31 +1 @@ -//#if MC<11400 -//$$ package com.replaymod.recording.handler; -//$$ -//$$ import io.netty.channel.ChannelHandlerContext; -//$$ import io.netty.channel.SimpleChannelInboundHandler; -//$$ import net.minecraftforge.fml.common.network.handshake.FMLHandshakeMessage; -//$$ -//$$ /** -//$$ * Filters out all handshake packets that were sent for recording but must -//$$ * not actually be handled. -//$$ * This handler is only present when connected to the integrated server as -//$$ * otherwise all packets must be handled. -//$$ * -//$$ * When in single player, the game state packets must never be handled -//$$ * otherwise wired bugs related to semi-singletons can occur. -//$$ * See https://bugs.replaymod.com/show_bug.cgi?id=44 -//$$ */ -//$$ public class FMLHandshakeFilter extends SimpleChannelInboundHandler { -//$$ @Override -//$$ protected void channelRead0(ChannelHandlerContext ctx, FMLHandshakeMessage msg) throws Exception { - //#if MC>=10800 - //$$ if (!(msg instanceof FMLHandshakeMessage.RegistryData)) { - //#else - //$$ if (!(msg instanceof FMLHandshakeMessage.ModIdData)) { - //#endif -//$$ // Pass on everything but RegistryData messages -//$$ ctx.fireChannelRead(msg); -//$$ } -//$$ } -//$$ } -//#endif +// 1.12.2 and below diff --git a/versions/1.12.2/src/main/java/com/replaymod/recording/handler/FMLHandshakeFilter.java b/versions/1.12.2/src/main/java/com/replaymod/recording/handler/FMLHandshakeFilter.java new file mode 100644 index 00000000..f53c5533 --- /dev/null +++ b/versions/1.12.2/src/main/java/com/replaymod/recording/handler/FMLHandshakeFilter.java @@ -0,0 +1,29 @@ +package com.replaymod.recording.handler; + +import io.netty.channel.ChannelHandlerContext; +import io.netty.channel.SimpleChannelInboundHandler; +import net.minecraftforge.fml.common.network.handshake.FMLHandshakeMessage; + +/** + * Filters out all handshake packets that were sent for recording but must + * not actually be handled. + * This handler is only present when connected to the integrated server as + * otherwise all packets must be handled. + * + * When in single player, the game state packets must never be handled + * otherwise wired bugs related to semi-singletons can occur. + * See https://bugs.replaymod.com/show_bug.cgi?id=44 + */ +public class FMLHandshakeFilter extends SimpleChannelInboundHandler { + @Override + protected void channelRead0(ChannelHandlerContext ctx, FMLHandshakeMessage msg) throws Exception { + //#if MC>=10800 + if (!(msg instanceof FMLHandshakeMessage.RegistryData)) { + //#else + //$$ if (!(msg instanceof FMLHandshakeMessage.ModIdData)) { + //#endif + // Pass on everything but RegistryData messages + ctx.fireChannelRead(msg); + } + } +}