From e1eed2164e434054c3f15bce2e19350110149bb8 Mon Sep 17 00:00:00 2001 From: amyavi <144570677+amyavi@users.noreply.github.com> Date: Tue, 8 Apr 2025 00:20:44 -0300 Subject: [PATCH] fix: use return inject for infinite chat --- .../chipmunkmod/mixin/ChatScreenMixin.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/main/java/land/chipmunk/chipmunkmod/mixin/ChatScreenMixin.java b/src/main/java/land/chipmunk/chipmunkmod/mixin/ChatScreenMixin.java index f448864..c51bda6 100644 --- a/src/main/java/land/chipmunk/chipmunkmod/mixin/ChatScreenMixin.java +++ b/src/main/java/land/chipmunk/chipmunkmod/mixin/ChatScreenMixin.java @@ -7,11 +7,11 @@ import land.chipmunk.chipmunkmod.modules.ChomeNSBotCommandSuggestions; import land.chipmunk.chipmunkmod.util.BotValidationUtilities; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.screen.ChatScreen; +import net.minecraft.client.gui.widget.TextFieldWidget; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Constant; import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.ModifyConstant; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import javax.net.ssl.HttpsURLConnection; @@ -25,10 +25,14 @@ import java.util.List; @Mixin(value = ChatScreen.class) public abstract class ChatScreenMixin { + @Shadow protected TextFieldWidget chatField; + // infinite chat - @ModifyConstant(method = "init", constant = @Constant(intValue = 256)) - protected int init$maxLength(final int old) { - return Integer.MAX_VALUE; + // can't use ModifyConstant due to VFP, see: + // https://github.com/ViaVersion/ViaFabricPlus/blob/main/src/main/java/com/viaversion/viafabricplus/injection/mixin/features/limitation/max_chat_length/MixinChatScreen.java + @Inject(method = "init", at = @At("RETURN")) + private void init(final CallbackInfo ci) { + chatField.setMaxLength(Integer.MAX_VALUE); } @Inject(method = "sendMessage", at = @At("HEAD"), cancellable = true)