From a4977abbf2cca1cd98d976d3ceeab9fb5e07b8ba Mon Sep 17 00:00:00 2001 From: Sebastiaan Vanspauwen Date: Sat, 2 Mar 2019 13:22:01 +0100 Subject: [PATCH] Clanchat: added onClanChanged event to count players already in scene --- .../plugins/clanchat/ClanChatPlugin.java | 34 +++++++++++++++---- 1 file changed, 28 insertions(+), 6 deletions(-) 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 c73b731268..2b99092397 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 @@ -39,6 +39,7 @@ import net.runelite.api.Player; import net.runelite.api.SpriteID; import net.runelite.api.VarClientStr; import net.runelite.api.events.ChatMessage; +import net.runelite.api.events.ClanChanged; import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GameTick; @@ -197,11 +198,7 @@ public class ClanChatPlugin extends Plugin if (event.getPlayer().isClanMember()) { clanMembers.add(event.getPlayer()); - - if (clanMemberCounter == null) - { - addClanCounter(); - } + addClanCounter(); } } @@ -214,6 +211,31 @@ public class ClanChatPlugin extends Plugin } } + @Subscribe + public void onClanChanged(ClanChanged event) + { + if (event.isJoined()) + { + clientThread.invokeLater(() -> + { + for (Player player : client.getPlayers()) + { + if (player.isClanMember() && !clanMembers.contains(player)) + { + clanMembers.add(player); + } + } + + addClanCounter(); + }); + } + else + { + clanMembers.clear(); + removeClanCounter(); + } + } + int getClanAmount() { return clanMembers.size(); @@ -309,7 +331,7 @@ public class ClanChatPlugin extends Plugin private void addClanCounter() { - if (!config.showClanCounter() || clanMemberCounter != null ) + if (!config.showClanCounter() || clanMemberCounter != null || clanMembers.isEmpty()) { return; }