diff options
author | Wyvest <45589059+Wyvest@users.noreply.github.com> | 2021-12-25 14:13:27 +0700 |
---|---|---|
committer | Wyvest <45589059+Wyvest@users.noreply.github.com> | 2021-12-25 14:13:27 +0700 |
commit | 4927d585ec72cb045a70718423228fa2cf55d071 (patch) | |
tree | 32714efb0c1a3a3aa3a01cadfc7a8ba5a9c784f1 /src/main/java/com/raeids/stratus/mixin | |
parent | f720ca0a074411be7cbbdc1b9629b14d06e3b26c (diff) | |
download | Chatting-4927d585ec72cb045a70718423228fa2cf55d071.tar.gz Chatting-4927d585ec72cb045a70718423228fa2cf55d071.tar.bz2 Chatting-4927d585ec72cb045a70718423228fa2cf55d071.zip |
new: rewrite chat searching
fix: fix chat tabs / shortcuts not initializing when turning on
Diffstat (limited to 'src/main/java/com/raeids/stratus/mixin')
-rw-r--r-- | src/main/java/com/raeids/stratus/mixin/GuiChatMixin.java | 40 | ||||
-rw-r--r-- | src/main/java/com/raeids/stratus/mixin/GuiNewChatMixin.java | 15 |
2 files changed, 27 insertions, 28 deletions
diff --git a/src/main/java/com/raeids/stratus/mixin/GuiChatMixin.java b/src/main/java/com/raeids/stratus/mixin/GuiChatMixin.java index 397cb06..4b8142c 100644 --- a/src/main/java/com/raeids/stratus/mixin/GuiChatMixin.java +++ b/src/main/java/com/raeids/stratus/mixin/GuiChatMixin.java @@ -21,10 +21,13 @@ import java.awt.datatransfer.StringSelection; @Mixin(GuiChat.class) public abstract class GuiChatMixin extends GuiScreen { + private CleanSearchButton searchButton; + @Inject(method = "initGui", at = @At("TAIL")) private void init(CallbackInfo ci) { if (StratusConfig.INSTANCE.getChatSearch()) { - ChatSearchingKt.initGui(); + searchButton = new CleanSearchButton(); + buttonList.add(searchButton); } if (StratusConfig.INSTANCE.getChatTabs()) { for (ChatTab chatTab : ChatTabs.INSTANCE.getTabs()) { @@ -33,43 +36,28 @@ public abstract class GuiChatMixin extends GuiScreen { } } - @Inject(method = "drawScreen", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/GuiTextField;drawTextBox()V", shift = At.Shift.AFTER)) - private void yeah(int mouseX, int mouseY, float partialTicks, CallbackInfo ci) { - if (ChatSearchingKt.getInputField() != null) { - ChatSearchingKt.getInputField().drawTextBox(); - } - } - - @Inject(method = "onGuiClosed", at = @At("TAIL")) - private void onGuiClosed(CallbackInfo ci) { - ChatSearchingKt.setInputField(null); - ChatSearchingKt.setPrevText(""); - } - @Inject(method = "updateScreen", at = @At("HEAD")) private void updateScreen(CallbackInfo ci) { - ChatSearchingKt.updateScreen(); + if (StratusConfig.INSTANCE.getChatSearch() && searchButton.isEnabled()) { + searchButton.getInputField().updateCursorCounter(); + } } @Inject(method = "keyTyped", at = @At("HEAD"), cancellable = true) private void keyTyped(char typedChar, int keyCode, CallbackInfo ci) { - if (ChatSearchingKt.getInputField() != null) { - if (ChatSearchingKt.getInputField().isFocused()) { - ci.cancel(); - if (keyCode == 1 && ChatSearchingKt.getInputField().isFocused()) { - ChatSearchingKt.getInputField().setFocused(false); - return; - } - ChatSearchingKt.getInputField().textboxKeyTyped(typedChar, keyCode); + if (StratusConfig.INSTANCE.getChatSearch() && searchButton.isEnabled()) { + ci.cancel(); + if (keyCode == 1) { + searchButton.onMousePress(); + return; } + searchButton.getInputField().textboxKeyTyped(typedChar, keyCode); + ChatSearchingKt.setPrevText(searchButton.getInputField().getText()); } } @Inject(method = "mouseClicked", at = @At("HEAD")) private void mouseClicked(int mouseX, int mouseY, int mouseButton, CallbackInfo ci) { - if (ChatSearchingKt.getInputField() != null) { - ChatSearchingKt.getInputField().mouseClicked(mouseX, mouseY, mouseButton); - } GuiNewChatHook hook = ((GuiNewChatHook) Minecraft.getMinecraft().ingameGUI.getChatGUI()); float f = mc.ingameGUI.getChatGUI().getChatScale(); int x = MathHelper.floor_float((float) mouseX / f); diff --git a/src/main/java/com/raeids/stratus/mixin/GuiNewChatMixin.java b/src/main/java/com/raeids/stratus/mixin/GuiNewChatMixin.java index c831528..8d2602b 100644 --- a/src/main/java/com/raeids/stratus/mixin/GuiNewChatMixin.java +++ b/src/main/java/com/raeids/stratus/mixin/GuiNewChatMixin.java @@ -36,6 +36,7 @@ public abstract class GuiNewChatMixin extends Gui implements GuiNewChatHook { @Shadow @Final private List<ChatLine> drawnChatLines; @SuppressWarnings({"FieldCanBeLocal", "unused"}) private float percentComplete; + private String stratus$previousText = ""; @Shadow public abstract boolean getChatOpen(); @@ -65,6 +66,7 @@ public abstract class GuiNewChatMixin extends Gui implements GuiNewChatHook { @Inject(method = "setChatLine", at = @At("HEAD"), cancellable = true) private void handleSetChatLine(IChatComponent chatComponent, int chatLineId, int updateCounter, boolean displayOnly, CallbackInfo ci) { + ChatSearchingKt.getCache().invalidateAll(); handleChatTabMessage(chatComponent, chatLineId, updateCounter, displayOnly, ci); } @@ -88,7 +90,6 @@ public abstract class GuiNewChatMixin extends Gui implements GuiNewChatHook { : linesToDraw; } - //TODO: fix with betterchat @ModifyArgs(method = "drawChat", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/GuiNewChat;drawRect(IIIII)V"), slice = @Slice(from = @At(value = "INVOKE", target = "Lnet/minecraft/util/MathHelper;clamp_double(DDD)D"), to = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/GlStateManager;enableBlend()V"))) private void captureDrawRect(Args args) { int left = args.get(0); @@ -110,7 +111,7 @@ public abstract class GuiNewChatMixin extends Gui implements GuiNewChatHook { @Redirect(method = "drawChat", at = @At(value = "FIELD", target = "Lnet/minecraft/client/gui/GuiNewChat;drawnChatLines:Ljava/util/List;", opcode = Opcodes.GETFIELD)) private List<ChatLine> injected(GuiNewChat instance) { - return ChatSearchingKt.filterMessages(drawnChatLines); + return ChatSearchingKt.filterMessages(stratus$previousText, drawnChatLines); } @Inject(method = "drawChat", at = @At("RETURN")) @@ -199,4 +200,14 @@ public abstract class GuiNewChatMixin extends Gui implements GuiNewChatHook { } return null; } + + @Override + public String getPrevText() { + return stratus$previousText; + } + + @Override + public void setPrevText(String prevText) { + stratus$previousText = prevText; + } } |