mixins: refactor to use NameableContainer

This commit is contained in:
Owain van Brakel
2020-05-23 03:21:20 +02:00
parent 952fe24a03
commit ad1b7b8a0c
20 changed files with 135 additions and 264 deletions

View File

@@ -31,13 +31,13 @@ import java.awt.Color;
import java.awt.Dimension;
import java.awt.image.BufferedImage;
import java.util.Arrays;
import java.util.Objects;
import java.util.concurrent.TimeUnit;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.inject.Inject;
import javax.inject.Singleton;
import net.runelite.api.ClanMember;
import net.runelite.api.ClanMemberManager;
import net.runelite.api.ClanMemberRank;
import net.runelite.api.Client;
import net.runelite.api.GameState;
@@ -79,19 +79,15 @@ public class ClanManager
@Override
public ClanMemberRank load(@Nonnull String key)
{
final ClanMember[] clanMembersArr = client.getClanMembers();
if (clanMembersArr == null || clanMembersArr.length == 0)
final ClanMemberManager clanMemberManager = client.getClanMemberManager();
if (clanMemberManager == null)
{
return ClanMemberRank.UNRANKED;
}
return Arrays.stream(clanMembersArr)
.filter(Objects::nonNull)
.filter(clanMember -> sanitize(clanMember.getUsername()).equals(sanitize(key)))
.map(ClanMember::getRank)
.findAny()
.orElse(ClanMemberRank.UNRANKED);
ClanMember clanMember = clanMemberManager.findByName(sanitize(key));
return clanMember != null ? clanMember.getRank() : ClanMemberRank.UNRANKED;
}
});
@@ -111,6 +107,12 @@ public class ClanManager
eventbus.subscribe(ClanChanged.class, this, this::onClanChanged);
}
public boolean isClanMember(String name)
{
ClanMemberManager clanMemberManager = client.getClanMemberManager();
return clanMemberManager != null && clanMemberManager.findByName(name) != null;
}
public ClanMemberRank getRank(String playerName)
{
return clanRanksCache.getUnchecked(playerName);

View File

@@ -43,6 +43,7 @@ public class PlayerManager
private final Client client;
private final ItemManager itemManager;
private final EventBus eventBus;
private final ClanManager clanManager;
private final Map<String, PlayerContainer> playerMap = new ConcurrentHashMap<>();
private final Map<String, HiscoreResult> resultCache = new ConcurrentHashMap<>();
private final ExecutorService executorService = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors() * 2);
@@ -51,12 +52,14 @@ public class PlayerManager
PlayerManager(
final Client client,
final EventBus eventBus,
final ItemManager itemManager
final ItemManager itemManager,
final ClanManager clanManager
)
{
this.client = client;
this.itemManager = itemManager;
this.eventBus = eventBus;
this.clanManager = clanManager;
eventBus.subscribe(PlayerDespawned.class, this, this::onPlayerDespawned);
eventBus.subscribe(AnimationChanged.class, this, this::onAnimationChanged);
eventBus.subscribe(PlayerAppearanceChanged.class, this, this::onAppearenceChanged);
@@ -206,7 +209,7 @@ public class PlayerManager
update(player);
player.setFriend(client.isFriended(player.getName(), false));
player.setClan(client.isClanMember(player.getName()));
player.setClan(clanManager.isClanMember(player.getName()));
}
private void onPlayerDespawned(PlayerDespawned event)