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.
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user