From dc4cd12f82440345f2adb0d280e57ef42f60c5ae Mon Sep 17 00:00:00 2001 From: jani270 <69345714+jani270@users.noreply.github.com> Date: Sun, 7 Jul 2024 05:54:41 +0200 Subject: meta: Fix Inventory Buttons still showing in 2 terms (#1218) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Linnea Gräf --- .../notenoughupdates/listener/RenderListener.java | 37 ++++++++++++++-------- 1 file changed, 24 insertions(+), 13 deletions(-) (limited to 'src/main/java/io/github') diff --git a/src/main/java/io/github/moulberry/notenoughupdates/listener/RenderListener.java b/src/main/java/io/github/moulberry/notenoughupdates/listener/RenderListener.java index 073b3d50..4794b6e7 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/listener/RenderListener.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/listener/RenderListener.java @@ -99,8 +99,10 @@ import java.util.HashSet; import java.util.List; import java.util.Locale; import java.util.Map; +import java.util.NavigableSet; import java.util.Objects; import java.util.Set; +import java.util.TreeSet; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; @@ -462,24 +464,33 @@ public class RenderListener { } } - private static final String[] dungeonMenus = - { - "Spirit Leap", - "Revive A Teammate", - "Click in order!", - "What starts with", - "Select all the", - "Click the button on time!", - "Correct all the panes!", - "Change all to same color!" - }; - private static final Set dungeonMenuSet = new HashSet<>(Arrays.asList(dungeonMenus)); + private static final Set dungeonMenuSet = new HashSet<>(Arrays.asList( + "Spirit Leap", + "Revive A Teammate", + "Click in order!", + "Click the button on time!", + "Correct all the panes!", + "Change all to same color!" + )); + + private static final NavigableSet dungeonMenuStartsWithSet = new TreeSet<>(Arrays.asList( + "What starts with", + "Select all the" + )); + + private boolean isInDungeonMenu(String chestName) { + if (!SBInfo.getInstance().isInDungeon) { + return false; + } + String nearestStartsWith = dungeonMenuStartsWithSet.floor(chestName); + return dungeonMenuSet.contains(chestName) || (nearestStartsWith != null && chestName.startsWith(nearestStartsWith)); + } public void iterateButtons(GuiContainer gui, BiConsumer acceptButton) { if (NEUApi.disableInventoryButtons || EnchantingSolvers.disableButtons() || gui == null || !NotEnoughUpdates.INSTANCE.config.inventoryButtons.enableInventoryButtons || (NotEnoughUpdates.INSTANCE.config.inventoryButtons.hideInDungeonMenus && - dungeonMenuSet.contains(Utils.getOpenChestName()))) { + isInDungeonMenu(Utils.getOpenChestName()))) { return; } -- cgit