chat history: support clan chat
Additionally fix the TAB_PRIVATE widget mapping which is incorrect with the latest update. The old friends chat tab has also gained a Clear history option so we no longer need to add it.
This commit is contained in:
@@ -108,6 +108,22 @@ public enum ChatMessageType
|
||||
* Adding player to ignore list.
|
||||
*/
|
||||
IGNORENOTIFICATION(31),
|
||||
/**
|
||||
* A chat message in a guest clan chat.
|
||||
*/
|
||||
CLANCHANNEL_AFFINED(41),
|
||||
/**
|
||||
* A system message in a guest clan chat.
|
||||
*/
|
||||
CLANCHANNEL_SYSTEM_AFFINED(43),
|
||||
/**
|
||||
* A chat message in the primary clan chat.
|
||||
*/
|
||||
CLANCHANNEL_LISTENED(44),
|
||||
/**
|
||||
* A system message in the primary clan chat.
|
||||
*/
|
||||
CLANCHANNEL_SYSTEM_LISTENED(46),
|
||||
/**
|
||||
* An autotyper message from a player.
|
||||
*/
|
||||
|
||||
@@ -480,7 +480,8 @@ public class WidgetID
|
||||
static final int TAB_ALL = 4;
|
||||
static final int TAB_GAME = 7;
|
||||
static final int TAB_PUBLIC = 11;
|
||||
static final int TAB_PRIVATE = 19;
|
||||
static final int TAB_PRIVATE = 15;
|
||||
static final int TAB_CHANNEL = 19;
|
||||
static final int TAB_CLAN = 23;
|
||||
static final int TAB_TRADE = 27;
|
||||
static final int REPORT_TEXT = 33;
|
||||
|
||||
@@ -366,6 +366,7 @@ public enum WidgetInfo
|
||||
CHATBOX_TAB_GAME(WidgetID.CHATBOX_GROUP_ID, WidgetID.Chatbox.TAB_GAME),
|
||||
CHATBOX_TAB_PUBLIC(WidgetID.CHATBOX_GROUP_ID, WidgetID.Chatbox.TAB_PUBLIC),
|
||||
CHATBOX_TAB_PRIVATE(WidgetID.CHATBOX_GROUP_ID, WidgetID.Chatbox.TAB_PRIVATE),
|
||||
CHATBOX_TAB_CHANNEL(WidgetID.CHATBOX_GROUP_ID, WidgetID.Chatbox.TAB_CHANNEL),
|
||||
CHATBOX_TAB_CLAN(WidgetID.CHATBOX_GROUP_ID, WidgetID.Chatbox.TAB_CLAN),
|
||||
CHATBOX_TAB_TRADE(WidgetID.CHATBOX_GROUP_ID, WidgetID.Chatbox.TAB_TRADE),
|
||||
|
||||
|
||||
@@ -37,6 +37,7 @@ import java.util.Deque;
|
||||
import java.util.Iterator;
|
||||
import java.util.Queue;
|
||||
import javax.inject.Inject;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.runelite.api.ChatLineBuffer;
|
||||
import net.runelite.api.ChatMessageType;
|
||||
import net.runelite.api.Client;
|
||||
@@ -72,6 +73,7 @@ import org.apache.commons.lang3.StringUtils;
|
||||
description = "Retain your chat history when logging in/out or world hopping",
|
||||
tags = {"chat", "history", "retain", "cycle", "pm"}
|
||||
)
|
||||
@Slf4j
|
||||
public class ChatHistoryPlugin extends Plugin implements KeyListener
|
||||
{
|
||||
private static final String WELCOME_MESSAGE = "Welcome to Old School RuneScape";
|
||||
@@ -173,6 +175,8 @@ public class ChatHistoryPlugin extends Plugin implements KeyListener
|
||||
case PUBLICCHAT:
|
||||
case MODCHAT:
|
||||
case FRIENDSCHAT:
|
||||
case CLANCHANNEL_LISTENED:
|
||||
case CLANCHANNEL_AFFINED:
|
||||
case CONSOLE:
|
||||
messageQueue.offer(chatMessage.getMessageNode());
|
||||
}
|
||||
@@ -262,7 +266,7 @@ public class ChatHistoryPlugin extends Plugin implements KeyListener
|
||||
{
|
||||
final ChatboxTab tab = ChatboxTab.of(entry.getActionParam1());
|
||||
|
||||
if (tab == null || !config.clearHistory() || !Text.removeTags(entry.getOption()).equals(tab.getAfter()))
|
||||
if (tab == null || tab.getAfter() == null || !config.clearHistory() || !Text.removeTags(entry.getOption()).equals(tab.getAfter()))
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -311,6 +315,8 @@ public class ChatHistoryPlugin extends Plugin implements KeyListener
|
||||
return;
|
||||
}
|
||||
|
||||
log.debug("Clearing chatbox history for tab {}", tab);
|
||||
|
||||
boolean removed = false;
|
||||
for (ChatMessageType msgType : tab.getMessageTypes())
|
||||
{
|
||||
|
||||
@@ -54,10 +54,13 @@ enum ChatboxTab
|
||||
ChatMessageType.CONSOLE, ChatMessageType.SPAM, ChatMessageType.PLAYERRELATED, ChatMessageType.TENSECTIMEOUT,
|
||||
ChatMessageType.WELCOME, ChatMessageType.UNKNOWN),
|
||||
|
||||
CLAN("Clan", "Clan: Off", WidgetInfo.CHATBOX_TAB_CLAN,
|
||||
CHANNEL("Channel", null, WidgetInfo.CHATBOX_TAB_CHANNEL,
|
||||
ChatMessageType.FRIENDSCHATNOTIFICATION, ChatMessageType.FRIENDSCHAT, ChatMessageType.CHALREQ_FRIENDSCHAT),
|
||||
|
||||
TRADE("Trade", "Trade: Off", WidgetInfo.CHATBOX_TAB_TRADE,
|
||||
CLAN("Clan", null, WidgetInfo.CHATBOX_TAB_CLAN,
|
||||
ChatMessageType.CLANCHANNEL_AFFINED, ChatMessageType.CLANCHANNEL_SYSTEM_AFFINED, ChatMessageType.CLANCHANNEL_LISTENED, ChatMessageType.CLANCHANNEL_SYSTEM_LISTENED),
|
||||
|
||||
TRADE("Trade", "Trade: Show none", WidgetInfo.CHATBOX_TAB_TRADE,
|
||||
ChatMessageType.TRADE_SENT, ChatMessageType.TRADEREQ, ChatMessageType.TRADE, ChatMessageType.CHALREQ_TRADE),
|
||||
;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user