chat message manager: add default color for friendschatnotification chat type

This allows the config value for friends chat notifications to just
default to null, allowing plugins to detect whether or not we want to
override the default color for friends chat notification messages.
This commit is contained in:
Adam
2021-05-02 12:24:00 -04:00
parent 37895bd554
commit dd3fd8645c
3 changed files with 43 additions and 11 deletions

View File

@@ -231,6 +231,7 @@ public class ChatMessageManager
case OBJECT_EXAMINE:
case NPC_EXAMINE:
case CONSOLE:
case FRIENDSCHATNOTIFICATION:
return JagexColors.CHAT_GAME_EXAMINE_TEXT_OPAQUE_BACKGROUND;
}
}
@@ -251,6 +252,7 @@ public class ChatMessageManager
case OBJECT_EXAMINE:
case NPC_EXAMINE:
case CONSOLE:
case FRIENDSCHATNOTIFICATION:
return JagexColors.CHAT_GAME_EXAMINE_TEXT_TRANSPARENT_BACKGROUND;
}
}

View File

@@ -25,7 +25,6 @@
package net.runelite.client.config;
import java.awt.Color;
import net.runelite.client.ui.JagexColors;
@ConfigGroup("textrecolor")
public interface ChatColorConfig extends Config
@@ -111,15 +110,12 @@ public interface ChatColorConfig extends Config
@ConfigItem(
position = 7,
keyName = "opaqueClanChatInfo",
keyName = "opaqueFriendsChatInfo",
name = "Friends chat info",
description = "Friends Chat Information (eg. when joining a channel)",
section = opaqueSection
)
default Color opaqueFriendsChatInfo()
{
return JagexColors.CHAT_GAME_EXAMINE_TEXT_OPAQUE_BACKGROUND;
}
Color opaqueFriendsChatInfo();
@ConfigItem(
position = 8,
@@ -387,15 +383,12 @@ public interface ChatColorConfig extends Config
@ConfigItem(
position = 57,
keyName = "transparentClanChatInfo",
keyName = "transparentFriendsChatInfo",
name = "Friends chat info (transparent)",
description = "Friends chat information (eg. when joining a channel) (transparent)",
section = transparentSection
)
default Color transparentFriendsChatInfo()
{
return JagexColors.CHAT_GAME_EXAMINE_TEXT_TRANSPARENT_BACKGROUND;
}
Color transparentFriendsChatInfo();
@ConfigItem(
position = 58,

View File

@@ -145,4 +145,41 @@ public class ChatMessageManagerTest
verify(messageNode).setName("<col=b20000>" + friendName + "</col>");
}
@Test
public void testDefaultFriendsChatInfoColors()
{
// no color is configured for opaqueFriendsChatInfo
when(chatColorConfig.opaqueFriendsChatInfoHighlight()).thenReturn(Color.RED);
// rebuild color cache
ConfigChanged configChanged = new ConfigChanged();
configChanged.setGroup("textrecolor");
chatMessageManager.onConfigChanged(configChanged);
String chatMessage = new ChatMessageBuilder()
.append(ChatColorType.NORMAL)
.append("Total points: ")
.append(ChatColorType.HIGHLIGHT)
.append("42")
.append(ChatColorType.NORMAL)
.append(", Personal points: ")
.append(ChatColorType.HIGHLIGHT)
.append("43")
.append(ChatColorType.NORMAL)
.append(" (")
.append(ChatColorType.HIGHLIGHT)
.append("44")
.append(ChatColorType.NORMAL)
.append("%)")
.build();
MessageNode messageNode = mock(MessageNode.class);
when(messageNode.getType()).thenReturn(ChatMessageType.FRIENDSCHATNOTIFICATION);
when(messageNode.getRuneLiteFormatMessage()).thenReturn(chatMessage);
chatMessageManager.update(messageNode);
verify(messageNode).setValue("<col=000000>Total points: <col=ff0000>42<col=000000>, Personal points: <col=ff0000>43<col=000000> (<col=ff0000>44<col=000000>%)");
}
}