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.
|
* Adding player to ignore list.
|
||||||
*/
|
*/
|
||||||
IGNORENOTIFICATION(31),
|
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.
|
* An autotyper message from a player.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -480,7 +480,8 @@ public class WidgetID
|
|||||||
static final int TAB_ALL = 4;
|
static final int TAB_ALL = 4;
|
||||||
static final int TAB_GAME = 7;
|
static final int TAB_GAME = 7;
|
||||||
static final int TAB_PUBLIC = 11;
|
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_CLAN = 23;
|
||||||
static final int TAB_TRADE = 27;
|
static final int TAB_TRADE = 27;
|
||||||
static final int REPORT_TEXT = 33;
|
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_GAME(WidgetID.CHATBOX_GROUP_ID, WidgetID.Chatbox.TAB_GAME),
|
||||||
CHATBOX_TAB_PUBLIC(WidgetID.CHATBOX_GROUP_ID, WidgetID.Chatbox.TAB_PUBLIC),
|
CHATBOX_TAB_PUBLIC(WidgetID.CHATBOX_GROUP_ID, WidgetID.Chatbox.TAB_PUBLIC),
|
||||||
CHATBOX_TAB_PRIVATE(WidgetID.CHATBOX_GROUP_ID, WidgetID.Chatbox.TAB_PRIVATE),
|
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_CLAN(WidgetID.CHATBOX_GROUP_ID, WidgetID.Chatbox.TAB_CLAN),
|
||||||
CHATBOX_TAB_TRADE(WidgetID.CHATBOX_GROUP_ID, WidgetID.Chatbox.TAB_TRADE),
|
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.Iterator;
|
||||||
import java.util.Queue;
|
import java.util.Queue;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.runelite.api.ChatLineBuffer;
|
import net.runelite.api.ChatLineBuffer;
|
||||||
import net.runelite.api.ChatMessageType;
|
import net.runelite.api.ChatMessageType;
|
||||||
import net.runelite.api.Client;
|
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",
|
description = "Retain your chat history when logging in/out or world hopping",
|
||||||
tags = {"chat", "history", "retain", "cycle", "pm"}
|
tags = {"chat", "history", "retain", "cycle", "pm"}
|
||||||
)
|
)
|
||||||
|
@Slf4j
|
||||||
public class ChatHistoryPlugin extends Plugin implements KeyListener
|
public class ChatHistoryPlugin extends Plugin implements KeyListener
|
||||||
{
|
{
|
||||||
private static final String WELCOME_MESSAGE = "Welcome to Old School RuneScape";
|
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 PUBLICCHAT:
|
||||||
case MODCHAT:
|
case MODCHAT:
|
||||||
case FRIENDSCHAT:
|
case FRIENDSCHAT:
|
||||||
|
case CLANCHANNEL_LISTENED:
|
||||||
|
case CLANCHANNEL_AFFINED:
|
||||||
case CONSOLE:
|
case CONSOLE:
|
||||||
messageQueue.offer(chatMessage.getMessageNode());
|
messageQueue.offer(chatMessage.getMessageNode());
|
||||||
}
|
}
|
||||||
@@ -262,7 +266,7 @@ public class ChatHistoryPlugin extends Plugin implements KeyListener
|
|||||||
{
|
{
|
||||||
final ChatboxTab tab = ChatboxTab.of(entry.getActionParam1());
|
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;
|
return;
|
||||||
}
|
}
|
||||||
@@ -311,6 +315,8 @@ public class ChatHistoryPlugin extends Plugin implements KeyListener
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
log.debug("Clearing chatbox history for tab {}", tab);
|
||||||
|
|
||||||
boolean removed = false;
|
boolean removed = false;
|
||||||
for (ChatMessageType msgType : tab.getMessageTypes())
|
for (ChatMessageType msgType : tab.getMessageTypes())
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -54,10 +54,13 @@ enum ChatboxTab
|
|||||||
ChatMessageType.CONSOLE, ChatMessageType.SPAM, ChatMessageType.PLAYERRELATED, ChatMessageType.TENSECTIMEOUT,
|
ChatMessageType.CONSOLE, ChatMessageType.SPAM, ChatMessageType.PLAYERRELATED, ChatMessageType.TENSECTIMEOUT,
|
||||||
ChatMessageType.WELCOME, ChatMessageType.UNKNOWN),
|
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),
|
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),
|
ChatMessageType.TRADE_SENT, ChatMessageType.TRADEREQ, ChatMessageType.TRADE, ChatMessageType.CHALREQ_TRADE),
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user