bank plugin: add option to input bankpin with keyboard
This commit is contained in:
@@ -108,4 +108,15 @@ public interface BankConfig extends Config
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "bankPinKeyboard",
|
||||
name = "Keyboard Bankpin",
|
||||
description = "Allows using the keyboard keys for bank pin input",
|
||||
position = 8
|
||||
)
|
||||
default boolean bankPinKeyboard()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,6 +37,7 @@ import java.util.List;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import javax.inject.Inject;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.runelite.api.Client;
|
||||
import static net.runelite.api.Constants.HIGH_ALCHEMY_MULTIPLIER;
|
||||
import net.runelite.api.InventoryID;
|
||||
@@ -54,9 +55,12 @@ import net.runelite.api.events.MenuShouldLeftClick;
|
||||
import net.runelite.api.events.ScriptCallbackEvent;
|
||||
import net.runelite.api.events.ScriptPostFired;
|
||||
import net.runelite.api.events.WidgetLoaded;
|
||||
import net.runelite.api.widgets.JavaScriptCallback;
|
||||
import net.runelite.api.widgets.Widget;
|
||||
import net.runelite.api.widgets.WidgetID;
|
||||
import net.runelite.api.widgets.WidgetInfo;
|
||||
import static net.runelite.api.widgets.WidgetInfo.TO_CHILD;
|
||||
import static net.runelite.api.widgets.WidgetInfo.TO_GROUP;
|
||||
import net.runelite.client.callback.ClientThread;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
@@ -71,6 +75,7 @@ import net.runelite.client.util.QuantityFormatter;
|
||||
description = "Modifications to the banking interface",
|
||||
tags = {"grand", "exchange", "high", "alchemy", "prices", "deposit"}
|
||||
)
|
||||
@Slf4j
|
||||
public class BankPlugin extends Plugin
|
||||
{
|
||||
private static final List<Varbits> TAB_VARBITS = ImmutableList.of(
|
||||
@@ -200,6 +205,41 @@ public class BankPlugin extends Plugin
|
||||
}
|
||||
|
||||
break;
|
||||
case "bankpinButtonSetup":
|
||||
{
|
||||
if (!config.bankPinKeyboard())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final int compId = intStack[intStackSize - 2];
|
||||
final int buttonId = intStack[intStackSize - 1];
|
||||
Widget button = client.getWidget(TO_GROUP(compId), TO_CHILD(compId));
|
||||
Widget buttonRect = button.getChild(0);
|
||||
|
||||
final Object[] onOpListener = buttonRect.getOnOpListener();
|
||||
buttonRect.setOnKeyListener((JavaScriptCallback) e ->
|
||||
{
|
||||
int typedChar = e.getTypedKeyChar() - '0';
|
||||
if (typedChar != buttonId)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
log.debug("Bank pin keypress");
|
||||
|
||||
final String input = client.getVar(VarClientStr.CHATBOX_TYPED_TEXT);
|
||||
clientThread.invokeLater(() ->
|
||||
{
|
||||
// reset chatbox input to avoid pin going to chatbox..
|
||||
client.setVar(VarClientStr.CHATBOX_TYPED_TEXT, input);
|
||||
client.runScript(ScriptID.CHAT_PROMPT_INIT);
|
||||
|
||||
client.runScript(onOpListener);
|
||||
});
|
||||
});
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
1
runelite-client/src/main/scripts/BankpinButtonSetup.hash
Normal file
1
runelite-client/src/main/scripts/BankpinButtonSetup.hash
Normal file
@@ -0,0 +1 @@
|
||||
48C575A71CD8CDDBFC8A7C0D2F8915A5EE263731213FFC23BEFFF39B6441A9FF
|
||||
121
runelite-client/src/main/scripts/BankpinButtonSetup.rs2asm
Normal file
121
runelite-client/src/main/scripts/BankpinButtonSetup.rs2asm
Normal file
@@ -0,0 +1,121 @@
|
||||
.id 679
|
||||
.int_stack_count 21
|
||||
.string_stack_count 0
|
||||
.int_var_count 21
|
||||
.string_var_count 0
|
||||
iload 0
|
||||
cc_deleteall
|
||||
iload 0
|
||||
iconst 3
|
||||
iconst 0
|
||||
cc_create
|
||||
iconst 64
|
||||
iconst 64
|
||||
iconst 0
|
||||
iconst 0
|
||||
cc_setsize
|
||||
iconst 0
|
||||
iconst 0
|
||||
iconst 0
|
||||
iconst 0
|
||||
cc_setposition
|
||||
iconst 16777215
|
||||
cc_setcolour
|
||||
iconst 1
|
||||
cc_setfill
|
||||
iconst 255
|
||||
cc_settrans
|
||||
iload 0
|
||||
iconst 4
|
||||
iconst 1
|
||||
cc_create 1
|
||||
iconst 10
|
||||
iconst 15
|
||||
iconst 0
|
||||
iconst 0
|
||||
cc_setsize 1
|
||||
iconst 5
|
||||
iload 0
|
||||
if_getwidth
|
||||
iconst 15
|
||||
sub
|
||||
randominc
|
||||
add
|
||||
iconst 5
|
||||
iload 0
|
||||
if_getheight
|
||||
iconst 20
|
||||
sub
|
||||
randominc
|
||||
add
|
||||
iconst 0
|
||||
iconst 0
|
||||
cc_setposition 1
|
||||
iconst 1
|
||||
iconst 1
|
||||
iconst 0
|
||||
cc_settextalign 1
|
||||
iconst 496
|
||||
cc_settextfont 1
|
||||
iconst 16744192
|
||||
cc_setcolour 1
|
||||
iconst 0
|
||||
cc_settextshadow 1
|
||||
sconst ""
|
||||
cc_settext 1
|
||||
iconst 683
|
||||
iconst -2147483645
|
||||
iconst -2147483643
|
||||
iload 1
|
||||
clientclock
|
||||
iconst 5
|
||||
add
|
||||
sconst "Iiii"
|
||||
cc_setontimer 1
|
||||
iconst 684
|
||||
iconst 0
|
||||
iconst -2147483645
|
||||
iconst -2147483643
|
||||
cc_getid 1
|
||||
sconst "1Iii"
|
||||
cc_setonmouserepeat
|
||||
iconst 684
|
||||
iconst 1
|
||||
iconst -2147483645
|
||||
iconst -2147483643
|
||||
cc_getid 1
|
||||
sconst "1Iii"
|
||||
cc_setonmouseleave
|
||||
iconst 1
|
||||
sconst "Select"
|
||||
cc_setop
|
||||
iconst 685
|
||||
iload 1
|
||||
iload 2
|
||||
iload 3
|
||||
iload 4
|
||||
iload 5
|
||||
iload 6
|
||||
iload 7
|
||||
iload 8
|
||||
iload 9
|
||||
iload 10
|
||||
iload 11
|
||||
iload 12
|
||||
iload 13
|
||||
iload 14
|
||||
iload 15
|
||||
iload 16
|
||||
iload 17
|
||||
iload 18
|
||||
iload 19
|
||||
iload 20
|
||||
sconst "iiiIIIIIIIIIIIIIIIII"
|
||||
cc_setonop
|
||||
iload 0 ; button component id
|
||||
iload 1 ; 0-9
|
||||
sconst "bankpinButtonSetup"
|
||||
runelite_callback
|
||||
pop_int ; 0-9
|
||||
pop_int ; button component id
|
||||
return
|
||||
Reference in New Issue
Block a user