From 78bf68e03639bd0f7be733e9ae794f3bfe6c68eb Mon Sep 17 00:00:00 2001 From: Adam Date: Sat, 11 May 2019 19:56:47 -0400 Subject: [PATCH] chat: ensure queued messages are always cleared after adding Mark queued message type as non null because addChatMessage will throw if it is. This was causing the client to get stuck trying to add the same broken message each loop. --- .../net/runelite/client/chat/ChatMessageManager.java | 10 ++++++++-- .../java/net/runelite/client/chat/QueuedMessage.java | 2 ++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/chat/ChatMessageManager.java b/runelite-client/src/main/java/net/runelite/client/chat/ChatMessageManager.java index bc0d3bc58a..da4c222fd6 100644 --- a/runelite-client/src/main/java/net/runelite/client/chat/ChatMessageManager.java +++ b/runelite-client/src/main/java/net/runelite/client/chat/ChatMessageManager.java @@ -548,8 +548,14 @@ public class ChatMessageManager { if (!queuedMessages.isEmpty()) { - queuedMessages.forEach(this::add); - queuedMessages.clear(); + try + { + queuedMessages.forEach(this::add); + } + finally + { + queuedMessages.clear(); + } } } diff --git a/runelite-client/src/main/java/net/runelite/client/chat/QueuedMessage.java b/runelite-client/src/main/java/net/runelite/client/chat/QueuedMessage.java index 9c88826af7..f89ce84b43 100644 --- a/runelite-client/src/main/java/net/runelite/client/chat/QueuedMessage.java +++ b/runelite-client/src/main/java/net/runelite/client/chat/QueuedMessage.java @@ -26,12 +26,14 @@ package net.runelite.client.chat; import lombok.Builder; import lombok.Data; +import lombok.NonNull; import net.runelite.api.ChatMessageType; @Data @Builder public class QueuedMessage { + @NonNull private final ChatMessageType type; private final String value; private String name;