diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/chathistory/ChatHistoryPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/chathistory/ChatHistoryPlugin.java index 4ed0f21646..bf454cf9bb 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/chathistory/ChatHistoryPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/chathistory/ChatHistoryPlugin.java @@ -268,10 +268,9 @@ public class ChatHistoryPlugin extends Plugin implements KeyListener @Subscribe public void onMenuEntryAdded(MenuEntryAdded entry) { - final String option = Text.removeTags(entry.getOption()); final ChatboxTab tab = ChatboxTab.of(entry.getActionParam1()); - if (!config.clearHistory() || tab == null || !option.equals(tab.getAfter())) + if (tab == null || !config.clearHistory() || !Text.removeTags(entry.getOption()).equals(tab.getAfter())) { return; } @@ -310,7 +309,7 @@ public class ChatHistoryPlugin extends Plugin implements KeyListener friends.clear(); } - messageQueue.removeIf(e -> tab.getMessageTypes().contains(e.getType())); + messageQueue.removeIf(e -> ArrayUtils.contains(tab.getMessageTypes(), e.getType())); } private void clearChatboxHistory(ChatboxTab tab) @@ -343,8 +342,9 @@ public class ChatHistoryPlugin extends Plugin implements KeyListener if (removed) { clientThread.invoke(() -> client.runScript(ScriptID.BUILD_CHATBOX)); - clearMessageQueue(tab); } + + clearMessageQueue(tab); } /** diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/chathistory/ChatboxTab.java b/runelite-client/src/main/java/net/runelite/client/plugins/chathistory/ChatboxTab.java index 9411f08c82..f37adb0ea1 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/chathistory/ChatboxTab.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/chathistory/ChatboxTab.java @@ -24,9 +24,7 @@ */ package net.runelite.client.plugins.chathistory; -import com.google.common.collect.ImmutableList; -import java.util.HashMap; -import java.util.List; +import com.google.common.collect.ImmutableMap; import java.util.Map; import javax.annotation.Nullable; import lombok.Getter; @@ -63,28 +61,30 @@ enum ChatboxTab ChatMessageType.TRADE_SENT, ChatMessageType.TRADEREQ, ChatMessageType.TRADE, ChatMessageType.CHALREQ_TRADE), ; - private static final Map TAB_MESSAGE_TYPES = new HashMap<>(); + private static final Map TAB_MESSAGE_TYPES; + private final String name; @Nullable private final String after; - private final String name; private final int widgetId; - private final List messageTypes; + private final ChatMessageType[] messageTypes; ChatboxTab(String name, String after, WidgetInfo widgetId, ChatMessageType... messageTypes) { this.name = name; this.after = after; this.widgetId = widgetId.getId(); - this.messageTypes = ImmutableList.copyOf(messageTypes); + this.messageTypes = messageTypes; } static { + ImmutableMap.Builder builder = ImmutableMap.builder(); for (ChatboxTab t : values()) { - TAB_MESSAGE_TYPES.put(t.widgetId, t); + builder.put(t.widgetId, t); } + TAB_MESSAGE_TYPES = builder.build(); } static ChatboxTab of(int widgetId)