From fa145986b270ea545f9624084cb30ec9bb02680e Mon Sep 17 00:00:00 2001 From: Adam Date: Mon, 17 May 2021 18:44:46 -0400 Subject: [PATCH] party service: sanitize user names --- .../java/net/runelite/client/ws/PartyService.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/runelite-client/src/main/java/net/runelite/client/ws/PartyService.java b/runelite-client/src/main/java/net/runelite/client/ws/PartyService.java index a96b6704ff..4c70a624e6 100644 --- a/runelite-client/src/main/java/net/runelite/client/ws/PartyService.java +++ b/runelite-client/src/main/java/net/runelite/client/ws/PartyService.java @@ -41,6 +41,7 @@ import net.runelite.client.chat.QueuedMessage; import net.runelite.client.eventbus.EventBus; import net.runelite.client.eventbus.Subscribe; import net.runelite.client.events.PartyChanged; +import net.runelite.client.util.Text; import static net.runelite.client.util.Text.JAGEX_PRINTABLE_CHAR_MATCHER; import net.runelite.http.api.ws.messages.party.Join; import net.runelite.http.api.ws.messages.party.Part; @@ -55,6 +56,7 @@ public class PartyService { public static final int PARTY_MAX = 15; private static final int MAX_MESSAGE_LEN = 150; + private static final int MAX_USERNAME_LEN = 32; // same as Discord private final WSClient wsClient; private final SessionManager sessionManager; @@ -129,7 +131,7 @@ public class PartyService return; } - final PartyMember partyMember = new PartyMember(message.getMemberId(), message.getName()); + final PartyMember partyMember = new PartyMember(message.getMemberId(), cleanUsername(message.getName())); members.add(partyMember); final PartyMember localMember = getLocalMember(); @@ -215,4 +217,14 @@ public class PartyService { return localPartyId.equals(partyId); } + + private static String cleanUsername(String username) + { + String s = Text.removeTags(JAGEX_PRINTABLE_CHAR_MATCHER.retainFrom(username)); + if (s.length() >= MAX_USERNAME_LEN) + { + s = s.substring(0, MAX_USERNAME_LEN); + } + return s; + } }