From b4334c28357b16ab09011ce2d941fbfafa39f974 Mon Sep 17 00:00:00 2001 From: Kam Date: Sat, 21 Feb 2026 18:18:56 -0500 Subject: [PATCH] Fix Chained Abilities not Saving --- .../client/gui/advanced/SubGuiChainedAbilityConfig.java | 6 ++++++ .../java/noppes/npcs/client/gui/util/GuiMenuTopButton.java | 5 ++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/main/java/noppes/npcs/client/gui/advanced/SubGuiChainedAbilityConfig.java b/src/main/java/noppes/npcs/client/gui/advanced/SubGuiChainedAbilityConfig.java index d1946e2e2..804f7e663 100644 --- a/src/main/java/noppes/npcs/client/gui/advanced/SubGuiChainedAbilityConfig.java +++ b/src/main/java/noppes/npcs/client/gui/advanced/SubGuiChainedAbilityConfig.java @@ -563,6 +563,8 @@ public class SubGuiChainedAbilityConfig extends SubGuiInterface implements IText return true; case 2: // Up if (entryIndex > 0) { + // Commit any focused delay field before reordering + GuiNpcTextField.unfocus(); ChainedAbilityEntry entry = entries.remove(entryIndex); entries.add(entryIndex - 1, entry); // Can't be concurrent at position 0 @@ -574,12 +576,16 @@ public class SubGuiChainedAbilityConfig extends SubGuiInterface implements IText return true; case 3: // Down if (entryIndex < entries.size() - 1) { + // Commit any focused delay field before reordering + GuiNpcTextField.unfocus(); ChainedAbilityEntry entry = entries.remove(entryIndex); entries.add(entryIndex + 1, entry); initGui(); } return true; case 4: // Delete + // Commit any focused delay field before removing + GuiNpcTextField.unfocus(); entries.remove(entryIndex); initGui(); return true; diff --git a/src/main/java/noppes/npcs/client/gui/util/GuiMenuTopButton.java b/src/main/java/noppes/npcs/client/gui/util/GuiMenuTopButton.java index 8c8eca60d..9d972be3d 100644 --- a/src/main/java/noppes/npcs/client/gui/util/GuiMenuTopButton.java +++ b/src/main/java/noppes/npcs/client/gui/util/GuiMenuTopButton.java @@ -96,7 +96,10 @@ public class GuiMenuTopButton extends GuiNpcButton { @Override public boolean mousePressed(Minecraft minecraft, int i, int j) { - boolean bo = !active && getVisible() && hover; + int h = this.height - (active ? 0 : 2); + boolean bo = !active && getVisible() + && i >= xPosition && j >= yPosition + && i < xPosition + getWidth() && j < yPosition + h; if (bo && listener != null) { listener.actionPerformed(this); return false;