From 85d79dd786dcc35d10063f6572154d26f4b6138a Mon Sep 17 00:00:00 2001 From: bigguy345 Date: Sat, 3 Jan 2026 14:49:05 +0200 Subject: [PATCH] Disabled script area textbox typing when a matching keycode KeyPreset is down --- .../noppes/npcs/client/gui/util/GuiScriptTextArea.java | 10 +++++++--- .../java/noppes/npcs/client/key/KeyPresetManager.java | 9 +++++++++ 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/main/java/noppes/npcs/client/gui/util/GuiScriptTextArea.java b/src/main/java/noppes/npcs/client/gui/util/GuiScriptTextArea.java index 32aac7680..266c8809a 100644 --- a/src/main/java/noppes/npcs/client/gui/util/GuiScriptTextArea.java +++ b/src/main/java/noppes/npcs/client/gui/util/GuiScriptTextArea.java @@ -4,7 +4,6 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.gui.ScaledResolution; import net.minecraft.util.ChatAllowedCharacters; -import net.minecraft.util.ResourceLocation; import noppes.npcs.NoppesStringUtils; import noppes.npcs.client.ClientProxy; import noppes.npcs.client.gui.script.GuiScriptInterface; @@ -1108,8 +1107,8 @@ public class GuiScriptTextArea extends GuiNpcTextField { */ private void updateHoverState(int xMouse, int yMouse) { // Don't show tooltips when not active, clicking, or when overlays are visible - if (!isEnabled() || clicked || searchBar.isVisible() || - goToLineDialog.isVisible() || KEYS_OVERLAY.isVisible() || renameHandler.isActive()) { + if (!isEnabled() || clicked || searchBar.isVisible() || + goToLineDialog.isVisible() || KEYS_OVERLAY.isVisible() || renameHandler.isActive() || autocompleteManager.isVisible()) { hoverState.clearHover(); return; } @@ -1434,6 +1433,11 @@ public class GuiScriptTextArea extends GuiNpcTextField { } } + // Ignore if any global keys bound to this code are currently pressed + if (KEYS.hasMatchingKeyPressed(i)) + return false; + + if (!active) return false; diff --git a/src/main/java/noppes/npcs/client/key/KeyPresetManager.java b/src/main/java/noppes/npcs/client/key/KeyPresetManager.java index 6f973e2b5..7327a6e4a 100644 --- a/src/main/java/noppes/npcs/client/key/KeyPresetManager.java +++ b/src/main/java/noppes/npcs/client/key/KeyPresetManager.java @@ -24,6 +24,15 @@ public class KeyPresetManager { return preset; } + public boolean hasMatchingKeyPressed(int keyCode) { + for (KeyPreset key : keys) { + if (key.currentState.matches(keyCode, true)) + return true; + } + + return false; + } + public void tick() { for (KeyPreset key : keys) key.tick();