From a3987df978f7fd635bd8b3f2bb4a7ddd0f439a6b Mon Sep 17 00:00:00 2001 From: Ridan Vandenbergh Date: Wed, 8 Aug 2018 23:18:31 +0200 Subject: [PATCH] add NoPacketKick --- .../mixin/client/MixinNetworkManager.java | 9 ++++++++ .../module/modules/misc/NoPacketKick.java | 22 +++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 src/main/java/me/zeroeightsix/kami/module/modules/misc/NoPacketKick.java diff --git a/src/main/java/me/zeroeightsix/kami/mixin/client/MixinNetworkManager.java b/src/main/java/me/zeroeightsix/kami/mixin/client/MixinNetworkManager.java index 7f23226a..08163d3a 100644 --- a/src/main/java/me/zeroeightsix/kami/mixin/client/MixinNetworkManager.java +++ b/src/main/java/me/zeroeightsix/kami/mixin/client/MixinNetworkManager.java @@ -3,6 +3,7 @@ package me.zeroeightsix.kami.mixin.client; import io.netty.channel.ChannelHandlerContext; import me.zeroeightsix.kami.KamiMod; import me.zeroeightsix.kami.event.events.PacketEvent; +import me.zeroeightsix.kami.module.modules.misc.NoPacketKick; import net.minecraft.network.NetworkManager; import net.minecraft.network.Packet; import net.minecraft.network.play.client.CPacketCustomPayload; @@ -13,6 +14,9 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import java.io.IOError; +import java.io.IOException; + /** * Created by 086 on 13/11/2017. */ @@ -39,4 +43,9 @@ public class MixinNetworkManager { } } + @Inject(method = "exceptionCaught", at = @At("HEAD"), cancellable = true) + private void exceptionCaught(ChannelHandlerContext p_exceptionCaught_1_, Throwable p_exceptionCaught_2_, CallbackInfo info) { + if (p_exceptionCaught_2_ instanceof IOException && NoPacketKick.isEnabled()) info.cancel(); + } + } diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/misc/NoPacketKick.java b/src/main/java/me/zeroeightsix/kami/module/modules/misc/NoPacketKick.java new file mode 100644 index 00000000..1137717a --- /dev/null +++ b/src/main/java/me/zeroeightsix/kami/module/modules/misc/NoPacketKick.java @@ -0,0 +1,22 @@ +package me.zeroeightsix.kami.module.modules.misc; + +import me.zeroeightsix.kami.module.Module; +import net.minecraftforge.fml.common.Mod; + +/** + * @author 086 + * @see me.zeroeightsix.kami.mixin.client.MixinNetworkManager + */ +@Module.Info(name = "NoPacketKick", category = Module.Category.MISC, description = "Prevent large packets from kicking you") +public class NoPacketKick { + private static NoPacketKick INSTANCE; + + public NoPacketKick() { + INSTANCE = this; + } + + public static boolean isEnabled() { + return INSTANCE.isEnabled(); + } + +}