From 4da28ad812cca3d6c77212aeda69f03d4ff0f9c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=8F=E3=81=81=E3=83=BC=E3=82=8A=E3=81=83?= Date: Thu, 8 Sep 2022 00:13:18 +0900 Subject: [PATCH 1/3] stop bed error message filling the chat --- .../hodgepodge/core/LoadingConfig.java | 7 ++++ .../mitchej123/hodgepodge/mixins/Mixins.java | 1 + .../minecraft/MixinNetHandlePlayClient.java | 36 +++++++++++++++++++ 3 files changed, 44 insertions(+) create mode 100644 src/main/java/com/mitchej123/hodgepodge/mixins/minecraft/MixinNetHandlePlayClient.java diff --git a/src/main/java/com/mitchej123/hodgepodge/core/LoadingConfig.java b/src/main/java/com/mitchej123/hodgepodge/core/LoadingConfig.java index 5d3197af..08af4fdb 100644 --- a/src/main/java/com/mitchej123/hodgepodge/core/LoadingConfig.java +++ b/src/main/java/com/mitchej123/hodgepodge/core/LoadingConfig.java @@ -70,6 +70,7 @@ public class LoadingConfig { public boolean fixIgnisFruitAABB; public boolean fixNetherLeavesFaceRendering; public boolean optimizeASMDataTable; + public boolean squashBedErrorMessage; // render debug public boolean renderDebug; @@ -240,6 +241,12 @@ public LoadingConfig(File file) { true, "Optimize ASMDataTable getAnnotationsFor for faster startup") .getBoolean(); + squashBedErrorMessage = config.get( + "fixes", + "squashBedErrorMessage", + true, + "Stop \"You can only sleep at night\" message filling the chat") + .getBoolean(); increaseParticleLimit = config.get("tweaks", "increaseParticleLimit", true, "Increase particle limit") .getBoolean(); diff --git a/src/main/java/com/mitchej123/hodgepodge/mixins/Mixins.java b/src/main/java/com/mitchej123/hodgepodge/mixins/Mixins.java index 4448232d..4258a217 100644 --- a/src/main/java/com/mitchej123/hodgepodge/mixins/Mixins.java +++ b/src/main/java/com/mitchej123/hodgepodge/mixins/Mixins.java @@ -123,6 +123,7 @@ public enum Mixins { TargetedMod.VANILLA), OPTIMIZE_ASMDATATABLE_INDEX( "forge.MixinASMDataTable", Side.BOTH, () -> Hodgepodge.config.optimizeASMDataTable, TargetedMod.VANILLA), + SQUASH_BED_ERROR_MESSAGE("minecraft.MixinNetHandlePlayClient", Side.CLIENT, () -> Hodgepodge.config.squashBedErrorMessage, TargetedMod.VANILLA), RENDER_DEBUG("minecraft.MixinRenderGlobal", Side.CLIENT, () -> Hodgepodge.config.renderDebug, TargetedMod.VANILLA), // Potentially obsolete vanilla fixes diff --git a/src/main/java/com/mitchej123/hodgepodge/mixins/minecraft/MixinNetHandlePlayClient.java b/src/main/java/com/mitchej123/hodgepodge/mixins/minecraft/MixinNetHandlePlayClient.java new file mode 100644 index 00000000..84fdbeb1 --- /dev/null +++ b/src/main/java/com/mitchej123/hodgepodge/mixins/minecraft/MixinNetHandlePlayClient.java @@ -0,0 +1,36 @@ +package com.mitchej123.hodgepodge.mixins.minecraft; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.network.NetHandlerPlayClient; +import net.minecraft.network.play.server.S02PacketChat; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraftforge.client.event.ClientChatReceivedEvent; +import net.minecraftforge.common.MinecraftForge; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; +import org.spongepowered.asm.mixin.Shadow; + +@Mixin(value = NetHandlerPlayClient.class) +public class MixinNetHandlePlayClient { + + @Shadow + private Minecraft gameController; + + /** + * @author Quarri6343 + * @reason Stop "You can only sleep at night" message filling the chat + */ + @Overwrite + public void handleChat(S02PacketChat p_147251_1_) { + ClientChatReceivedEvent event = new ClientChatReceivedEvent(p_147251_1_.func_148915_c()); + if (!MinecraftForge.EVENT_BUS.post(event) && event.message != null) { + if (event.message.equals(new ChatComponentTranslation("tile.bed.noSleep", new Object[0])) + || event.message.equals(new ChatComponentTranslation("tile.bed.notSafe", new Object[0])) + || event.message.equals(new ChatComponentTranslation("tile.bed.occupied", new Object[0]))) { + this.gameController.ingameGUI.getChatGUI().printChatMessageWithOptionalDeletion(event.message, 3); + } else { + this.gameController.ingameGUI.getChatGUI().printChatMessage(event.message); + } + } + } +} From 4524412b83d64759462a546c277464c897fe8379 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=8F=E3=81=81=E3=83=BC=E3=82=8A=E3=81=83?= Date: Thu, 8 Sep 2022 00:14:06 +0900 Subject: [PATCH 2/3] spotless apply --- .../com/mitchej123/hodgepodge/core/LoadingConfig.java | 8 ++++---- .../java/com/mitchej123/hodgepodge/mixins/Mixins.java | 6 +++++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/mitchej123/hodgepodge/core/LoadingConfig.java b/src/main/java/com/mitchej123/hodgepodge/core/LoadingConfig.java index 08af4fdb..f2ab3a26 100644 --- a/src/main/java/com/mitchej123/hodgepodge/core/LoadingConfig.java +++ b/src/main/java/com/mitchej123/hodgepodge/core/LoadingConfig.java @@ -242,10 +242,10 @@ public LoadingConfig(File file) { "Optimize ASMDataTable getAnnotationsFor for faster startup") .getBoolean(); squashBedErrorMessage = config.get( - "fixes", - "squashBedErrorMessage", - true, - "Stop \"You can only sleep at night\" message filling the chat") + "fixes", + "squashBedErrorMessage", + true, + "Stop \"You can only sleep at night\" message filling the chat") .getBoolean(); increaseParticleLimit = config.get("tweaks", "increaseParticleLimit", true, "Increase particle limit") diff --git a/src/main/java/com/mitchej123/hodgepodge/mixins/Mixins.java b/src/main/java/com/mitchej123/hodgepodge/mixins/Mixins.java index 4258a217..54e98d6e 100644 --- a/src/main/java/com/mitchej123/hodgepodge/mixins/Mixins.java +++ b/src/main/java/com/mitchej123/hodgepodge/mixins/Mixins.java @@ -123,7 +123,11 @@ public enum Mixins { TargetedMod.VANILLA), OPTIMIZE_ASMDATATABLE_INDEX( "forge.MixinASMDataTable", Side.BOTH, () -> Hodgepodge.config.optimizeASMDataTable, TargetedMod.VANILLA), - SQUASH_BED_ERROR_MESSAGE("minecraft.MixinNetHandlePlayClient", Side.CLIENT, () -> Hodgepodge.config.squashBedErrorMessage, TargetedMod.VANILLA), + SQUASH_BED_ERROR_MESSAGE( + "minecraft.MixinNetHandlePlayClient", + Side.CLIENT, + () -> Hodgepodge.config.squashBedErrorMessage, + TargetedMod.VANILLA), RENDER_DEBUG("minecraft.MixinRenderGlobal", Side.CLIENT, () -> Hodgepodge.config.renderDebug, TargetedMod.VANILLA), // Potentially obsolete vanilla fixes From 228ba64d815ca399bff8d2e93eb8f28ba839545d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=8F=E3=81=81=E3=83=BC=E3=82=8A=E3=81=83?= Date: Thu, 8 Sep 2022 00:47:45 +0900 Subject: [PATCH 3/3] set channel number random --- .../mixins/minecraft/MixinNetHandlePlayClient.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/mitchej123/hodgepodge/mixins/minecraft/MixinNetHandlePlayClient.java b/src/main/java/com/mitchej123/hodgepodge/mixins/minecraft/MixinNetHandlePlayClient.java index 84fdbeb1..2329baeb 100644 --- a/src/main/java/com/mitchej123/hodgepodge/mixins/minecraft/MixinNetHandlePlayClient.java +++ b/src/main/java/com/mitchej123/hodgepodge/mixins/minecraft/MixinNetHandlePlayClient.java @@ -13,6 +13,8 @@ @Mixin(value = NetHandlerPlayClient.class) public class MixinNetHandlePlayClient { + private static final int randomChannel = 43284; + @Shadow private Minecraft gameController; @@ -27,7 +29,10 @@ public void handleChat(S02PacketChat p_147251_1_) { if (event.message.equals(new ChatComponentTranslation("tile.bed.noSleep", new Object[0])) || event.message.equals(new ChatComponentTranslation("tile.bed.notSafe", new Object[0])) || event.message.equals(new ChatComponentTranslation("tile.bed.occupied", new Object[0]))) { - this.gameController.ingameGUI.getChatGUI().printChatMessageWithOptionalDeletion(event.message, 3); + this.gameController + .ingameGUI + .getChatGUI() + .printChatMessageWithOptionalDeletion(event.message, randomChannel); } else { this.gameController.ingameGUI.getChatGUI().printChatMessage(event.message); }