clanchat: Update clan members set on join/leave events

Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
This commit is contained in:
Tomas Slusny
2019-03-04 21:28:24 +01:00
parent 21bc06a13c
commit 13154625cf

View File

@@ -165,13 +165,29 @@ public class ClanChatPlugin extends Plugin
@Subscribe @Subscribe
public void onClanMemberJoined(ClanMemberJoined event) public void onClanMemberJoined(ClanMemberJoined event)
{ {
final ClanMember member = event.getMember();
if (member.getWorld() == client.getWorld())
{
final String memberName = Text.toJagexName(member.getUsername());
for (final Player player : client.getPlayers())
{
if (player != null && memberName.equals(Text.toJagexName(player.getName())))
{
clanMembers.add(player);
addClanCounter();
break;
}
}
}
// clan members getting initialized isn't relevant // clan members getting initialized isn't relevant
if (clanJoinedTick == client.getTickCount()) if (clanJoinedTick == client.getTickCount())
{ {
return; return;
} }
ClanMember member = event.getMember();
if (!config.showJoinLeave() || if (!config.showJoinLeave() ||
member.getRank().getValue() < config.joinLeaveRank().getValue()) member.getRank().getValue() < config.joinLeaveRank().getValue())
{ {
@@ -194,7 +210,29 @@ public class ClanChatPlugin extends Plugin
@Subscribe @Subscribe
public void onClanMemberLeft(ClanMemberLeft event) public void onClanMemberLeft(ClanMemberLeft event)
{ {
ClanMember member = event.getMember(); final ClanMember member = event.getMember();
if (member.getWorld() == client.getWorld())
{
final String memberName = Text.toJagexName(member.getUsername());
final Iterator<Player> each = clanMembers.iterator();
while (each.hasNext())
{
if (memberName.equals(Text.toJagexName(each.next().getName())))
{
each.remove();
if (clanMembers.isEmpty())
{
removeClanCounter();
}
break;
}
}
}
if (!config.showJoinLeave() || if (!config.showJoinLeave() ||
member.getRank().getValue() < config.joinLeaveRank().getValue()) member.getRank().getValue() < config.joinLeaveRank().getValue())
{ {
@@ -440,19 +478,6 @@ public class ClanChatPlugin extends Plugin
if (event.isJoined()) if (event.isJoined())
{ {
clanJoinedTick = client.getTickCount(); clanJoinedTick = client.getTickCount();
clientThread.invokeLater(() ->
{
for (Player player : client.getPlayers())
{
if (player.isClanMember() && !clanMembers.contains(player))
{
clanMembers.add(player);
}
}
addClanCounter();
});
} }
else else
{ {