From acabab9274598bef2ccc52edd90a09ecb247bef9 Mon Sep 17 00:00:00 2001 From: trimbe Date: Sat, 3 Aug 2019 20:59:03 -0400 Subject: [PATCH 1/3] bank plugin: improve responsiveness of bank searches --- .../client/plugins/bank/BankPlugin.java | 37 ++++++++++++ .../plugins/banktags/tabs/BankSearch.java | 60 ++++++++++--------- 2 files changed, 70 insertions(+), 27 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/bank/BankPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/bank/BankPlugin.java index 057e7c20e4..d47b1ee89f 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/bank/BankPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/bank/BankPlugin.java @@ -26,6 +26,7 @@ */ package net.runelite.client.plugins.bank; +import com.google.common.base.Strings; import com.google.common.collect.ImmutableList; import com.google.inject.Provides; import java.util.Arrays; @@ -36,12 +37,17 @@ import net.runelite.api.InventoryID; import net.runelite.api.Item; import net.runelite.api.ItemContainer; import net.runelite.api.MenuEntry; +import net.runelite.api.SpriteID; +import net.runelite.api.VarClientInt; +import net.runelite.api.VarClientStr; import net.runelite.api.Varbits; import net.runelite.api.events.ItemContainerChanged; import net.runelite.api.events.MenuEntryAdded; import net.runelite.api.events.MenuShouldLeftClick; import net.runelite.api.events.ScriptCallbackEvent; +import net.runelite.api.events.VarClientStrChanged; import net.runelite.api.events.WidgetLoaded; +import net.runelite.api.vars.InputType; import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetID; import net.runelite.api.widgets.WidgetInfo; @@ -96,6 +102,7 @@ public class BankPlugin extends Plugin private ContainerCalculation seedVaultCalculation; private boolean forceRightClickFlag; + private String searchString; @Provides BankConfig getConfig(ConfigManager configManager) @@ -108,6 +115,7 @@ public class BankPlugin extends Plugin { clientThread.invokeLater(() -> bankSearch.reset(false)); forceRightClickFlag = false; + searchString = ""; } @Subscribe @@ -176,6 +184,35 @@ public class BankPlugin extends Plugin updateSeedVaultTotal(); } + @Subscribe + public void onVarClientStrChanged(VarClientStrChanged event) + { + String searchVar = client.getVar(VarClientStr.INPUT_TEXT); + + if (!searchVar.equals(searchString)) + { + Widget searchButtonBackground = client.getWidget(WidgetInfo.BANK_SEARCH_BUTTON_BACKGROUND); + if (searchButtonBackground != null && searchButtonBackground.hasListener()) + { + searchButtonBackground.setOnTimerListener((Object[]) null); + searchButtonBackground.setHasListener(false); + } + + clientThread.invokeLater(() -> bankSearch.layoutBank()); + searchString = searchVar; + } + + if (client.getVar(VarClientInt.INPUT_TYPE) != InputType.SEARCH.getType() && Strings.isNullOrEmpty(client.getVar(VarClientStr.INPUT_TEXT))) + { + Widget searchBackground = client.getWidget(WidgetInfo.BANK_SEARCH_BUTTON_BACKGROUND); + if (searchBackground != null) + { + searchBackground.setSpriteId(SpriteID.EQUIPMENT_SLOT_TILE); + } + } + + } + @Subscribe public void onItemContainerChanged(ItemContainerChanged event) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/BankSearch.java b/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/BankSearch.java index 73bfbc99a4..8d15c55a55 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/BankSearch.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/BankSearch.java @@ -68,19 +68,6 @@ public class BankSearch { clientThread.invoke(() -> { - Widget bankContainer = client.getWidget(WidgetInfo.BANK_CONTAINER); - if (bankContainer == null || bankContainer.isHidden()) - { - return; - } - - Object[] widgetIds = bankContainer.getOnLoadListener(); - - // In case the widget ids array is incorrect, do not proceed - if (widgetIds == null || widgetIds.length < 21) - { - return; - } // This ensures that any chatbox input (e.g from search) will not remain visible when // selecting/changing tab if (closeInput) @@ -91,23 +78,42 @@ public class BankSearch client.setVar(VarClientInt.INPUT_TYPE, inputType.getType()); client.setVar(VarClientStr.INPUT_TEXT, search); - client.runScript(ScriptID.BANK_LAYOUT, - WidgetInfo.BANK_CONTAINER.getId(), - widgetIds[INNER_CONTAINER_IDX], - widgetIds[SETTINGS_IDX], - widgetIds[ITEM_CONTAINER_IDX], - widgetIds[SCROLLBAR_IDX], - widgetIds[BOTTOM_BAR_IDX], - widgetIds[TITLE_BAR_IDX], - widgetIds[ITEM_COUNT_IDX], - widgetIds[SEARCH_BUTTON_BACKGROUND_IDX], - widgetIds[TAB_BAR_IDX], - widgetIds[INCINERATOR_IDX], - widgetIds[INCINERATOR_CONFIRM_IDX], - widgetIds[HIDDEN_WIDGET_IDX]); + layoutBank(); }); } + public void layoutBank() + { + Widget bankContainer = client.getWidget(WidgetInfo.BANK_CONTAINER); + if (bankContainer == null || bankContainer.isHidden()) + { + return; + } + + Object[] widgetIds = bankContainer.getOnLoadListener(); + + // In case the widget ids array is incorrect, do not proceed + if (widgetIds == null || widgetIds.length < 21) + { + return; + } + + client.runScript(ScriptID.BANK_LAYOUT, + WidgetInfo.BANK_CONTAINER.getId(), + widgetIds[INNER_CONTAINER_IDX], + widgetIds[SETTINGS_IDX], + widgetIds[ITEM_CONTAINER_IDX], + widgetIds[SCROLLBAR_IDX], + widgetIds[BOTTOM_BAR_IDX], + widgetIds[TITLE_BAR_IDX], + widgetIds[ITEM_COUNT_IDX], + widgetIds[SEARCH_BUTTON_BACKGROUND_IDX], + widgetIds[TAB_BAR_IDX], + widgetIds[INCINERATOR_IDX], + widgetIds[INCINERATOR_CONFIRM_IDX], + widgetIds[HIDDEN_WIDGET_IDX]); + } + public void reset(Boolean closeChat) { search(InputType.NONE, "", closeChat); From 5388f4f42c6b05f7bf07274fbb42d3904bf62ad2 Mon Sep 17 00:00:00 2001 From: f0rmatme Date: Wed, 16 Oct 2019 16:46:49 -0700 Subject: [PATCH 2/3] bank plugin: improve responsiveness of bank searches --- .../client/plugins/bank/BankPlugin.java | 2 +- .../plugins/banktags/tabs/BankSearch.java | 28 +++++++++---------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/bank/BankPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/bank/BankPlugin.java index 9ebbc68910..449989d775 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/bank/BankPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/bank/BankPlugin.java @@ -186,7 +186,7 @@ public class BankPlugin extends Plugin eventBus.subscribe(ScriptCallbackEvent.class, this, this::onScriptCallbackEvent); eventBus.subscribe(WidgetLoaded.class, this, this::onWidgetLoaded); eventBus.subscribe(ItemContainerChanged.class, this, this::onItemContainerChanged); - eventBus.subscribe(VarClientStrChanged.class, this, this::onVarClientStrChanged); + eventBus.subscribe(VarClientStrChanged.class, this, this::onVarClientStrChanged); searchString = ""; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/BankSearch.java b/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/BankSearch.java index b832140ec2..589f7052e5 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/BankSearch.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/BankSearch.java @@ -69,23 +69,23 @@ public class BankSearch }); } - public void layoutBank() - { - Widget bankContainer = client.getWidget(WidgetInfo.BANK_ITEM_CONTAINER); - if (bankContainer == null || bankContainer.isHidden()) - { - return; - } + public void layoutBank() + { + Widget bankContainer = client.getWidget(WidgetInfo.BANK_ITEM_CONTAINER); + if (bankContainer == null || bankContainer.isHidden()) + { + return; + } - Object[] scriptArgs = bankContainer.getOnInvTransmit(); + Object[] scriptArgs = bankContainer.getOnInvTransmit(); - if (scriptArgs == null) - { - return; - } + if (scriptArgs == null) + { + return; + } - client.runScript(scriptArgs); - } + client.runScript(scriptArgs); + } public void reset(boolean closeChat) { From 3265f1fadf987d371b61b38d62e37907269da922 Mon Sep 17 00:00:00 2001 From: Kyle <48519776+xKylee@users.noreply.github.com> Date: Thu, 17 Oct 2019 12:10:17 +0100 Subject: [PATCH 3/3] Update BankPlugin.java --- .../main/java/net/runelite/client/plugins/bank/BankPlugin.java | 1 - 1 file changed, 1 deletion(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/bank/BankPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/bank/BankPlugin.java index 449989d775..c9eb544730 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/bank/BankPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/bank/BankPlugin.java @@ -300,7 +300,6 @@ public class BankPlugin extends Plugin searchBackground.setSpriteId(SpriteID.EQUIPMENT_SLOT_TILE); } } - } public void onItemContainerChanged(ItemContainerChanged event)