chatcommands: support keybinds in pms

This commit is contained in:
dekvall
2019-12-26 07:08:22 +01:00
committed by Adam
parent 2586da3a70
commit 5ad94eae2e

View File

@@ -29,7 +29,9 @@ import javax.inject.Inject;
import javax.inject.Singleton; import javax.inject.Singleton;
import net.runelite.api.Client; import net.runelite.api.Client;
import net.runelite.api.ScriptID; import net.runelite.api.ScriptID;
import net.runelite.api.VarClientInt;
import net.runelite.api.VarClientStr; import net.runelite.api.VarClientStr;
import net.runelite.api.vars.InputType;
import net.runelite.client.callback.ClientThread; import net.runelite.client.callback.ClientThread;
import net.runelite.client.input.KeyListener; import net.runelite.client.input.KeyListener;
@@ -56,7 +58,11 @@ public class ChatKeyboardListener implements KeyListener
{ {
if (chatCommandsConfig.clearSingleWord().matches(e)) if (chatCommandsConfig.clearSingleWord().matches(e))
{ {
String input = client.getVar(VarClientStr.CHATBOX_TYPED_TEXT); int inputTye = client.getVar(VarClientInt.INPUT_TYPE);
String input = inputTye == InputType.NONE.getType()
? client.getVar(VarClientStr.CHATBOX_TYPED_TEXT)
: client.getVar(VarClientStr.INPUT_TEXT);
if (input != null) if (input != null)
{ {
// remove trailing space // remove trailing space
@@ -77,20 +83,27 @@ public class ChatKeyboardListener implements KeyListener
replacement = ""; replacement = "";
} }
clientThread.invoke(() -> clientThread.invoke(() -> applyText(inputTye, replacement));
{
client.setVar(VarClientStr.CHATBOX_TYPED_TEXT, replacement);
client.runScript(ScriptID.CHAT_PROMPT_INIT);
});
} }
} }
else if (chatCommandsConfig.clearChatBox().matches(e)) else if (chatCommandsConfig.clearChatBox().matches(e))
{ {
clientThread.invoke(() -> int inputTye = client.getVar(VarClientInt.INPUT_TYPE);
{ clientThread.invoke(() -> applyText(inputTye, ""));
client.setVar(VarClientStr.CHATBOX_TYPED_TEXT, ""); }
client.runScript(ScriptID.CHAT_PROMPT_INIT); }
});
private void applyText(int inputType, String replacement)
{
if (inputType == InputType.NONE.getType())
{
client.setVar(VarClientStr.CHATBOX_TYPED_TEXT, replacement);
client.runScript(ScriptID.CHAT_PROMPT_INIT);
}
else if (inputType == InputType.PRIVATE_MESSAGE.getType())
{
client.setVar(VarClientStr.INPUT_TEXT, replacement);
client.runScript(ScriptID.CHAT_TEXT_INPUT_REBUILD, "");
} }
} }