diff --git a/runelite-api/src/main/java/net/runelite/api/ScriptID.java b/runelite-api/src/main/java/net/runelite/api/ScriptID.java index 0f8853841b..5d294709b8 100644 --- a/runelite-api/src/main/java/net/runelite/api/ScriptID.java +++ b/runelite-api/src/main/java/net/runelite/api/ScriptID.java @@ -47,6 +47,12 @@ public final class ScriptID @ScriptArguments(integer = 1, string = 1) public static final int CHATBOX_INPUT = 96; + /** + * Rebuilds the chatbox and the pmbox + */ + @ScriptArguments() + public static final int SPLITPM_CHANGED = 83; + /** * Rebuilds the chatbox */ 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 e656d70a6e..1aa16ee6cc 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 @@ -317,6 +317,14 @@ public class ChatHistoryPlugin extends Plugin implements KeyListener log.debug("Clearing chatbox history for tab {}", tab); + clearMessageQueue(tab); + + if (tab.getAfter() == null) + { + // if the tab has a vanilla Clear option, it isn't necessary to delete the messages ourselves. + return; + } + boolean removed = false; for (ChatMessageType msgType : tab.getMessageTypes()) { @@ -339,10 +347,9 @@ public class ChatHistoryPlugin extends Plugin implements KeyListener if (removed) { - clientThread.invoke(() -> client.runScript(ScriptID.BUILD_CHATBOX)); + // this rebuilds both the chatbox and the pmbox + clientThread.invoke(() -> client.runScript(ScriptID.SPLITPM_CHANGED)); } - - clearMessageQueue(tab); } @Override