From 87e51bd960ca2fb7aab0feca6a9bb6d498d42bed Mon Sep 17 00:00:00 2001 From: Adam Date: Mon, 1 Nov 2021 14:28:50 -0400 Subject: [PATCH] bank: block bank pin going to chatbox With invokeLater() now running next tick instead of next frame, with uncapped fps there can be several frames with the bank pin visible in the chatbox. This blocks the keyboard input on this tick, preventing having to clear the chatbox later. --- .../main/java/net/runelite/api/VarClientInt.java | 5 +++++ .../runelite/client/plugins/bank/BankPlugin.java | 16 ++++------------ 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/runelite-api/src/main/java/net/runelite/api/VarClientInt.java b/runelite-api/src/main/java/net/runelite/api/VarClientInt.java index 6efd010c6e..149dc72ec7 100644 --- a/runelite-api/src/main/java/net/runelite/api/VarClientInt.java +++ b/runelite-api/src/main/java/net/runelite/api/VarClientInt.java @@ -62,6 +62,11 @@ public enum VarClientInt INVENTORY_TAB(171), + /** + * time to block keypresses til + */ + BLOCK_KEYPRESS(187), + WORLD_MAP_SEARCH_FOCUSED(190); private final int index; 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 bf9289f602..71c2726f3a 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 @@ -45,6 +45,7 @@ import net.runelite.api.ItemContainer; import net.runelite.api.ItemID; import net.runelite.api.MenuEntry; import net.runelite.api.ScriptID; +import net.runelite.api.VarClientInt; import net.runelite.api.VarClientStr; import net.runelite.api.events.ItemContainerChanged; import net.runelite.api.events.MenuEntryAdded; @@ -238,18 +239,9 @@ public class BankPlugin extends Plugin log.debug("Bank pin keypress"); - final String chatboxTypedText = client.getVar(VarClientStr.CHATBOX_TYPED_TEXT); - final String inputText = client.getVar(VarClientStr.INPUT_TEXT); - clientThread.invokeLater(() -> - { - // reset chatbox input to avoid pin going to chatbox.. - client.setVar(VarClientStr.CHATBOX_TYPED_TEXT, chatboxTypedText); - client.runScript(ScriptID.CHAT_PROMPT_INIT); - client.setVar(VarClientStr.INPUT_TEXT, inputText); - client.runScript(ScriptID.CHAT_TEXT_INPUT_REBUILD, ""); - - client.runScript(onOpListener); - }); + client.runScript(onOpListener); + // Block the key press this tick in keypress_permit so it doesn't enter the chatbox + client.setVar(VarClientInt.BLOCK_KEYPRESS, client.getGameCycle() + 1); }); break; }