clanchat plugin: add CC rank icons to oublic and private messages

This commit is contained in:
TheStonedTurtle
2018-12-14 08:39:37 -08:00
committed by Adam
parent 5104b39758
commit acb840cffb
2 changed files with 63 additions and 9 deletions

View File

@@ -104,4 +104,26 @@ public interface ClanChatConfig extends Config
{
return ClanMemberRank.UNRANKED;
}
@ConfigItem(
keyName = "privateMessageIcons",
name = "Private Message Icons",
description = "Add clan chat rank icons to private messages received from clan mates.",
position = 6
)
default boolean privateMessageIcons()
{
return false;
}
@ConfigItem(
keyName = "publicChatIcons",
name = "Public Chat Icons",
description = "Add clan chat rank icons to public chat messages from clan mates.",
position = 7
)
default boolean publicChatIcons()
{
return false;
}
}

View File

@@ -353,10 +353,38 @@ public class ClanChatPlugin extends Plugin
return;
}
if (chatMessage.getType() == ChatMessageType.CLANCHAT && client.getClanChatCount() > 0)
if (client.getClanChatCount() <= 0)
{
insertClanRankIcon(chatMessage);
return;
}
switch (chatMessage.getType())
{
case PRIVATE_MESSAGE_RECEIVED:
case PRIVATE_MESSAGE_RECEIVED_MOD:
if (!config.privateMessageIcons())
{
return;
}
break;
case PUBLIC:
case PUBLIC_MOD:
if (!config.publicChatIcons())
{
return;
}
break;
case CLANCHAT:
if (!config.clanChatIcons())
{
return;
}
break;
default:
return;
}
insertClanRankIcon(chatMessage);
}
@Subscribe
@@ -431,18 +459,22 @@ public class ClanChatPlugin extends Plugin
private void insertClanRankIcon(final ChatMessage message)
{
if (!config.clanChatIcons())
{
return;
}
final ClanMemberRank rank = clanManager.getRank(message.getName());
if (rank != null && rank != ClanMemberRank.UNRANKED)
{
int iconNumber = clanManager.getIconNumber(rank);
message.getMessageNode()
.setSender(message.getMessageNode().getSender() + " <img=" + iconNumber + ">");
final String img = "<img=" + iconNumber + ">";
if (message.getType() == ChatMessageType.CLANCHAT)
{
message.getMessageNode()
.setSender(message.getMessageNode().getSender() + " " + img);
}
else
{
message.getMessageNode()
.setName(img + message.getMessageNode().getName());
}
client.refreshChat();
}
}