From 68284cc4f88bb3a665148c884038abacce23ae2a Mon Sep 17 00:00:00 2001 From: NopoTheGamer <40329022+NopoTheGamer@users.noreply.github.com> Date: Thu, 25 Jul 2024 01:19:01 +1000 Subject: Fix recipe and usages keybind double triggering (#1265) --- .../github/moulberry/notenoughupdates/NEUManager.java | 18 ++++++++++++++++++ .../github/moulberry/notenoughupdates/NEUOverlay.java | 6 +++--- .../notenoughupdates/miscgui/GuiItemRecipe.java | 4 ++-- .../notenoughupdates/miscgui/StorageOverlay.java | 7 +++---- 4 files changed, 26 insertions(+), 9 deletions(-) diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java b/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java index b22ac1a5..c2fb6659 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java @@ -999,6 +999,16 @@ public class NEUManager { loadItem(internalname); } + long lastKeybind = -1; + + public boolean displayGuiItemUsagesKeybind(String internalName) { + if (System.currentTimeMillis() - lastKeybind < 500) { + return false; + } + lastKeybind = System.currentTimeMillis(); + return displayGuiItemUsages(internalName); + } + public boolean displayGuiItemUsages(String internalName) { if (!usagesMap.containsKey(internalName)) return false; List usages = getAvailableUsagesFor(internalName); @@ -1008,6 +1018,14 @@ public class NEUManager { return true; } + public boolean displayGuiItemRecipeKeybind(String internalName) { + if (System.currentTimeMillis() - lastKeybind < 500) { + return false; + } + lastKeybind = System.currentTimeMillis(); + return displayGuiItemRecipe(internalName); + } + public boolean displayGuiItemRecipe(String internalName) { if (!recipesMap.containsKey(internalName)) return false; List recipes = getAvailableRecipesFor(internalName); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java index 43ab7b0d..77cc2cab 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java @@ -1168,13 +1168,13 @@ public class NEUOverlay extends Gui { JsonObject item = manager.getItemInformation().get(internalname.get()); if (item != null) { if (keyPressed == manager.keybindViewUsages.getKeyCode()) { - manager.displayGuiItemUsages(internalname.get()); + manager.displayGuiItemUsagesKeybind(internalname.get()); return true; } else if (keyPressed == manager.keybindFavourite.getKeyCode()) { - toggleFavourite(item.get("internalname").getAsString()); + toggleFavourite(internalname.get()); return true; } else if (keyPressed == manager.keybindViewRecipe.getKeyCode()) { - manager.showRecipe(item); + manager.displayGuiItemRecipeKeybind(internalname.get()); return true; } else if (keyPressed == NotEnoughUpdates.INSTANCE.config.misc.keybindWaypoint && NotEnoughUpdates.INSTANCE.navigation.isValidWaypoint(item)) { diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiItemRecipe.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiItemRecipe.java index 54f46f22..02c3b615 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiItemRecipe.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiItemRecipe.java @@ -251,9 +251,9 @@ public class GuiItemRecipe extends GuiScreen { if (isWithinRect(mouseX, mouseY, slot.getX(this), slot.getY(this), SLOT_SIZE, SLOT_SIZE)) { ItemStack itemStack = slot.getItemStack(); if (keyPressed == manager.keybindViewRecipe.getKeyCode()) { - manager.displayGuiItemRecipe(manager.getInternalNameForItem(itemStack)); + manager.displayGuiItemRecipeKeybind(manager.getInternalNameForItem(itemStack)); } else if (keyPressed == manager.keybindViewUsages.getKeyCode()) { - manager.displayGuiItemUsages(manager.getInternalNameForItem(itemStack)); + manager.displayGuiItemUsagesKeybind(manager.getInternalNameForItem(itemStack)); } else if (keyPressed == NotEnoughUpdates.INSTANCE.config.misc.openAHKeybind) { AhBzKeybind.onKeyPressed(itemStack); } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/StorageOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/StorageOverlay.java index d56faa63..587d20ef 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/StorageOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/StorageOverlay.java @@ -20,7 +20,6 @@ package io.github.moulberry.notenoughupdates.miscgui; import com.google.common.collect.Lists; -import com.google.gson.JsonObject; import io.github.moulberry.notenoughupdates.NEUManager; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; import io.github.moulberry.notenoughupdates.core.BackgroundBlur; @@ -2151,9 +2150,9 @@ public class StorageOverlay extends GuiElement { String internalName = manager.createItemResolutionQuery().withItemStack(stack).resolveInternalName(); if (internalName == null) continue; - JsonObject item = manager.getItemInformation().get(internalName); - if (keyPressed == manager.keybindViewRecipe.getKeyCode()) manager.showRecipe(item); - if (keyPressed == manager.keybindViewUsages.getKeyCode()) manager.displayGuiItemUsages( + if (keyPressed == manager.keybindViewRecipe.getKeyCode()) manager.displayGuiItemRecipeKeybind( + internalName); + if (keyPressed == manager.keybindViewUsages.getKeyCode()) manager.displayGuiItemUsagesKeybind( internalName); if (keyPressed == NotEnoughUpdates.INSTANCE.config.misc.openAHKeybind) { AhBzKeybind.onKeyPressed(stack); -- cgit