chatchannels: display online member count
Co-authored-by: Dasgust <dasgust@gmail.com>
This commit is contained in:
@@ -199,6 +199,12 @@ public final class ScriptID
|
|||||||
@ScriptArguments(integer = 15)
|
@ScriptArguments(integer = 15)
|
||||||
public static final int FRIENDS_CHAT_CHANNEL_REBUILD = 1658;
|
public static final int FRIENDS_CHAT_CHANNEL_REBUILD = 1658;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Builds the widget that holds all of the players inside a clan chat
|
||||||
|
*/
|
||||||
|
@ScriptArguments(integer = 7)
|
||||||
|
public static final int CLAN_SIDEPANEL_DRAW = 4396;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Builds the widget for making an offer in Grand Exchange
|
* Builds the widget for making an offer in Grand Exchange
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -921,11 +921,15 @@ public final class WidgetID
|
|||||||
|
|
||||||
static class Clan
|
static class Clan
|
||||||
{
|
{
|
||||||
|
static final int LAYER = 0;
|
||||||
|
static final int HEADER = 1;
|
||||||
static final int MEMBERS = 6;
|
static final int MEMBERS = 6;
|
||||||
}
|
}
|
||||||
|
|
||||||
static class ClanGuest
|
static class ClanGuest
|
||||||
{
|
{
|
||||||
|
static final int LAYER = 0;
|
||||||
|
static final int HEADER = 1;
|
||||||
static final int MEMBERS = 6;
|
static final int MEMBERS = 6;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -552,7 +552,12 @@ public enum WidgetInfo
|
|||||||
|
|
||||||
TEMPOROSS_STATUS_INDICATOR(WidgetID.TEMPOROSS_GROUP_ID, WidgetID.TemporossStatus.STATUS_INDICATOR),
|
TEMPOROSS_STATUS_INDICATOR(WidgetID.TEMPOROSS_GROUP_ID, WidgetID.TemporossStatus.STATUS_INDICATOR),
|
||||||
|
|
||||||
|
CLAN_LAYER(WidgetID.CLAN_GROUP_ID, WidgetID.Clan.LAYER),
|
||||||
|
CLAN_HEADER(WidgetID.CLAN_GROUP_ID, WidgetID.Clan.HEADER),
|
||||||
CLAN_MEMBER_LIST(WidgetID.CLAN_GROUP_ID, WidgetID.Clan.MEMBERS),
|
CLAN_MEMBER_LIST(WidgetID.CLAN_GROUP_ID, WidgetID.Clan.MEMBERS),
|
||||||
|
|
||||||
|
CLAN_GUEST_LAYER(WidgetID.CLAN_GUEST_GROUP_ID, WidgetID.ClanGuest.LAYER),
|
||||||
|
CLAN_GUEST_HEADER(WidgetID.CLAN_GUEST_GROUP_ID, WidgetID.ClanGuest.HEADER),
|
||||||
CLAN_GUEST_MEMBER_LIST(WidgetID.CLAN_GUEST_GROUP_ID, WidgetID.ClanGuest.MEMBERS),
|
CLAN_GUEST_MEMBER_LIST(WidgetID.CLAN_GUEST_GROUP_ID, WidgetID.ClanGuest.MEMBERS),
|
||||||
|
|
||||||
POH_TREASURE_CHEST_INVENTORY_CONTAINER(WidgetID.POH_TREASURE_CHEST_INVENTORY_GROUP_ID, 0),
|
POH_TREASURE_CHEST_INVENTORY_CONTAINER(WidgetID.POH_TREASURE_CHEST_INVENTORY_GROUP_ID, 0),
|
||||||
|
|||||||
@@ -206,6 +206,18 @@ public interface ChatChannelConfig extends Config
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ConfigItem(
|
||||||
|
keyName = "clanChatShowOnlineMemberCount",
|
||||||
|
name = "Show Online Member Count",
|
||||||
|
description = "Shows the number of online clan members at the end of the clan's name.",
|
||||||
|
position = 1,
|
||||||
|
section = clanChatSection
|
||||||
|
)
|
||||||
|
default boolean clanChatShowOnlineMemberCount()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
@ConfigItem(
|
@ConfigItem(
|
||||||
keyName = "guestClanChatShowJoinLeave",
|
keyName = "guestClanChatShowJoinLeave",
|
||||||
name = "Show Join/Leave",
|
name = "Show Join/Leave",
|
||||||
@@ -217,4 +229,16 @@ public interface ChatChannelConfig extends Config
|
|||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ConfigItem(
|
||||||
|
keyName = "guestClanChatShowOnlineMemberCount",
|
||||||
|
name = "Show Online Member Count",
|
||||||
|
description = "Shows the number of online guest clan members at the end of the clan's name.",
|
||||||
|
position = 1,
|
||||||
|
section = guestClanChatSection
|
||||||
|
)
|
||||||
|
default boolean guestClanChatShowOnlineMemberCount()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -145,6 +145,8 @@ public class ChatChannelPlugin extends Plugin
|
|||||||
{
|
{
|
||||||
clientThread.invoke(() -> colorIgnoredPlayers(config.showIgnoresColor()));
|
clientThread.invoke(() -> colorIgnoredPlayers(config.showIgnoresColor()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
rebuildClanTitle();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -153,6 +155,7 @@ public class ChatChannelPlugin extends Plugin
|
|||||||
chats = null;
|
chats = null;
|
||||||
clientThread.invoke(() -> colorIgnoredPlayers(Color.WHITE));
|
clientThread.invoke(() -> colorIgnoredPlayers(Color.WHITE));
|
||||||
rebuildFriendsChat();
|
rebuildFriendsChat();
|
||||||
|
rebuildClanTitle();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Subscribe
|
@Subscribe
|
||||||
@@ -167,6 +170,8 @@ public class ChatChannelPlugin extends Plugin
|
|||||||
|
|
||||||
Color ignoreColor = config.showIgnores() ? config.showIgnoresColor() : Color.WHITE;
|
Color ignoreColor = config.showIgnores() ? config.showIgnoresColor() : Color.WHITE;
|
||||||
clientThread.invoke(() -> colorIgnoredPlayers(ignoreColor));
|
clientThread.invoke(() -> colorIgnoredPlayers(ignoreColor));
|
||||||
|
|
||||||
|
rebuildClanTitle();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -606,6 +611,18 @@ public class ChatChannelPlugin extends Plugin
|
|||||||
chatTitle.setText(chatTitle.getText() + " (" + friendsChatManager.getCount() + "/100)");
|
chatTitle.setText(chatTitle.getText() + " (" + friendsChatManager.getCount() + "/100)");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (event.getScriptId() == ScriptID.CLAN_SIDEPANEL_DRAW)
|
||||||
|
{
|
||||||
|
if (config.clanChatShowOnlineMemberCount())
|
||||||
|
{
|
||||||
|
updateClanTitle(WidgetInfo.CLAN_HEADER, client.getClanChannel());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (config.guestClanChatShowOnlineMemberCount())
|
||||||
|
{
|
||||||
|
updateClanTitle(WidgetInfo.CLAN_GUEST_HEADER, client.getGuestClanChannel());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void insertRankIcon(final ChatMessage message)
|
private void insertRankIcon(final ChatMessage message)
|
||||||
@@ -740,4 +757,35 @@ public class ChatChannelPlugin extends Plugin
|
|||||||
listWidget.setTextColor(ignoreColor.getRGB());
|
listWidget.setTextColor(ignoreColor.getRGB());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void rebuildClanTitle()
|
||||||
|
{
|
||||||
|
clientThread.invokeLater(() ->
|
||||||
|
{
|
||||||
|
Widget w = client.getWidget(WidgetInfo.CLAN_LAYER);
|
||||||
|
if (w != null)
|
||||||
|
{
|
||||||
|
client.runScript(w.getOnVarTransmitListener());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
clientThread.invokeLater(() ->
|
||||||
|
{
|
||||||
|
Widget w = client.getWidget(WidgetInfo.CLAN_GUEST_LAYER);
|
||||||
|
if (w != null)
|
||||||
|
{
|
||||||
|
client.runScript(w.getOnVarTransmitListener());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateClanTitle(WidgetInfo widget, ClanChannel channel)
|
||||||
|
{
|
||||||
|
Widget header = client.getWidget(widget);
|
||||||
|
if (header != null && channel != null)
|
||||||
|
{
|
||||||
|
Widget title = header.getChild(0);
|
||||||
|
title.setText(title.getText() + " (" + channel.getMembers().size() + ")");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user