From e60d9ec2c1eae8ea095852aaa9397f9e8e30b719 Mon Sep 17 00:00:00 2001 From: Adam Date: Mon, 7 May 2018 12:55:40 -0400 Subject: [PATCH] chatbox input manager: add support for character limit --- .../net/runelite/client/game/ChatboxInputManager.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/runelite-client/src/main/java/net/runelite/client/game/ChatboxInputManager.java b/runelite-client/src/main/java/net/runelite/client/game/ChatboxInputManager.java index 8b84748be2..bb907e1cbf 100644 --- a/runelite-client/src/main/java/net/runelite/client/game/ChatboxInputManager.java +++ b/runelite-client/src/main/java/net/runelite/client/game/ChatboxInputManager.java @@ -39,10 +39,12 @@ import net.runelite.client.callback.ClientThread; @Slf4j public class ChatboxInputManager { + private static final int NO_LIMIT = Integer.MAX_VALUE; private final Client client; private final ClientThread clientThread; private Consumer done; + private int characterLimit = NO_LIMIT; @Inject public ChatboxInputManager(Client client, ClientThread clientThread, EventBus eventBus) @@ -60,8 +62,14 @@ public class ChatboxInputManager * @param done Callback when the text box has been exited, called with "" on esc */ public void openInputWindow(String text, String defaul, Consumer done) + { + openInputWindow(text, defaul, NO_LIMIT, done); + } + + public void openInputWindow(String text, String defaul, int characterLimit, Consumer done) { this.done = done; + this.characterLimit = characterLimit; clientThread.invokeLater(() -> client.runScript( ScriptID.RUNELITE_CHATBOX_INPUT_INIT, text, @@ -97,7 +105,7 @@ public class ChatboxInputManager } default: // If we wanted to do numbers only, we could add a limit here - if (typedKey >= 32) + if (typedKey >= 32 && (str.length() < characterLimit)) { str += Character.toString((char) typedKey); }