From 021bb109d6e13693e65cb64c631498156ee3586b Mon Sep 17 00:00:00 2001 From: Ron Young Date: Sat, 5 Oct 2019 20:35:46 -0500 Subject: [PATCH] ChatboxTextInput: add ability to filter character inputs --- .../client/game/chatbox/ChatboxTextInput.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/runelite-client/src/main/java/net/runelite/client/game/chatbox/ChatboxTextInput.java b/runelite-client/src/main/java/net/runelite/client/game/chatbox/ChatboxTextInput.java index 8d4402b368..ffc7e10dc5 100644 --- a/runelite-client/src/main/java/net/runelite/client/game/chatbox/ChatboxTextInput.java +++ b/runelite-client/src/main/java/net/runelite/client/game/chatbox/ChatboxTextInput.java @@ -129,6 +129,12 @@ public class ChatboxTextInput extends ChatboxInput implements KeyListener, Mouse this.clientThread = clientThread; } + public ChatboxTextInput addCharValidator(IntPredicate validator) + { + this.charValidator = this.charValidator.and(validator); + return this; + } + public ChatboxTextInput lines(int lines) { this.lines = lines; @@ -151,7 +157,15 @@ public class ChatboxTextInput extends ChatboxInput implements KeyListener, Mouse public ChatboxTextInput value(String value) { - this.value = new StringBuffer(value); + StringBuffer sb = new StringBuffer(); + for (char c : value.toCharArray()) + { + if (charValidator.test(c)) + { + sb.append(c); + } + } + this.value = sb; cursorAt(this.value.length()); return this; }