chat message builder: escape messages

Closes #8326
This commit is contained in:
Adam
2019-03-27 14:46:19 -04:00
parent 540edb3da3
commit f42bccc8f4
2 changed files with 30 additions and 10 deletions

View File

@@ -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("<img=").append(imageId).append('>');
return this;
}

View File

@@ -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 = " <img=" + iconNumber + ">";
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());