diff --git a/runelite-client/src/main/java/net/runelite/client/chat/ChatMessageBuilder.java b/runelite-client/src/main/java/net/runelite/client/chat/ChatMessageBuilder.java
index 0a1ca887ce..1b8afd0924 100644
--- a/runelite-client/src/main/java/net/runelite/client/chat/ChatMessageBuilder.java
+++ b/runelite-client/src/main/java/net/runelite/client/chat/ChatMessageBuilder.java
@@ -24,6 +24,10 @@
*/
package net.runelite.client.chat;
+import java.awt.Color;
+import net.runelite.client.util.ColorUtil;
+import net.runelite.client.util.Text;
+
public class ChatMessageBuilder
{
private final StringBuilder builder = new StringBuilder();
@@ -34,9 +38,21 @@ public class ChatMessageBuilder
return this;
}
+ public ChatMessageBuilder append(final Color color, final String message)
+ {
+ builder.append(ColorUtil.wrapWithColorTag(message, color));
+ return this;
+ }
+
public ChatMessageBuilder append(final String message)
{
- builder.append(message);
+ builder.append(Text.escapeJagex(message));
+ return this;
+ }
+
+ public ChatMessageBuilder img(int imageId)
+ {
+ builder.append("
');
return this;
}
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/clanchat/ClanChatPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/clanchat/ClanChatPlugin.java
index 73859e0271..4a588e081c 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/clanchat/ClanChatPlugin.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/clanchat/ClanChatPlugin.java
@@ -77,7 +77,6 @@ import static net.runelite.client.ui.JagexColors.CHAT_CLAN_NAME_TRANSPARENT_BACK
import static net.runelite.client.ui.JagexColors.CHAT_CLAN_TEXT_OPAQUE_BACKGROUND;
import static net.runelite.client.ui.JagexColors.CHAT_CLAN_TEXT_TRANSPARENT_BACKGROUND;
import net.runelite.client.ui.overlay.infobox.InfoBoxManager;
-import net.runelite.client.util.ColorUtil;
import net.runelite.client.util.Text;
@PluginDescriptor(
@@ -349,9 +348,9 @@ public class ClanChatPlugin extends Plugin
{
final String activityMessage = activityType == ClanActivityType.JOINED ? " has joined." : " has left.";
final ClanMemberRank rank = member.getRank();
- String rankTag = "";
Color textColor = CHAT_CLAN_TEXT_OPAQUE_BACKGROUND;
Color channelColor = CHAT_CLAN_NAME_OPAQUE_BACKGROUND;
+ int rankIcon = -1;
if (client.isResized() && client.getVar(Varbits.TRANSPARENT_CHATBOX) == 1)
{
@@ -361,18 +360,23 @@ public class ClanChatPlugin extends Plugin
if (config.clanChatIcons() && rank != null && rank != ClanMemberRank.UNRANKED)
{
- int iconNumber = clanManager.getIconNumber(rank);
- rankTag = "
";
+ rankIcon = clanManager.getIconNumber(rank);
}
- ChatMessageBuilder message = new ChatMessageBuilder();
- String messageString = message
+ ChatMessageBuilder message = new ChatMessageBuilder()
.append("[")
- .append(ColorUtil.wrapWithColorTag(client.getClanChatName(), channelColor) + rankTag)
+ .append(channelColor, client.getClanChatName());
+ if (rankIcon > -1)
+ {
+ message
+ .append(" ")
+ .img(rankIcon);
+ }
+ message
.append("] ")
- .append(ColorUtil.wrapWithColorTag(member.getUsername() + activityMessage, textColor))
- .build();
+ .append(textColor, member.getUsername() + activityMessage);
+ final String messageString = message.build();
client.addChatMessage(ChatMessageType.CLANCHAT_INFO, "", messageString, "");
final ChatLineBuffer chatLineBuffer = client.getChatLineMap().get(ChatMessageType.CLANCHAT_INFO.getType());