From 8a43f10599a2cc26d8b2a61f7429080887066e74 Mon Sep 17 00:00:00 2001 From: PKLite Date: Sun, 8 Sep 2019 21:32:50 -0400 Subject: [PATCH] add config checks to trivia, improve readability Signed-off-by: PKLite (cherry picked from commit 0c672cffaa0f5b98bf7efa48a58b3666d8e47fcc) --- .../PlayerIndicatorsOverlay.java | 2 +- .../PlayerIndicatorsPlugin.java | 2 +- .../PlayerIndicatorsService.java | 53 +++++++++++-------- 3 files changed, 33 insertions(+), 24 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsOverlay.java index cbca8cd5a6..664b1f69d7 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsOverlay.java @@ -134,7 +134,7 @@ public class PlayerIndicatorsOverlay extends Overlay } OverlayUtil.renderActorTextAndImage(graphics, actor, builtString, color, ImageUtil.resizeImage(Objects.requireNonNull(clanManager - .getClanImage(clanManager.getRank(actor.getName()))), y, y),0, ACTOR_HORIZONTAL_TEXT_MARGIN); + .getClanImage(clanManager.getRank(actor.getName()))), y, y), 0, ACTOR_HORIZONTAL_TEXT_MARGIN); } else { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsPlugin.java index 554db3a185..759c6b6c71 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsPlugin.java @@ -449,7 +449,7 @@ public class PlayerIndicatorsPlugin extends Plugin * @param actor The player to check * @return true if they are a target, false otherwise */ - private boolean isPile(Actor actor) + public boolean isPile(Actor actor) { if (!(actor instanceof Player)) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsService.java b/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsService.java index df0e33c9f4..c9bbb08dbb 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsService.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsService.java @@ -24,14 +24,12 @@ */ package net.runelite.client.plugins.playerindicators; -import java.util.ArrayList; import java.util.List; import java.util.Objects; import java.util.function.BiConsumer; import java.util.function.Predicate; import javax.inject.Inject; import javax.inject.Singleton; -import net.runelite.api.Actor; import net.runelite.api.Client; import net.runelite.api.Player; import net.runelite.client.util.PvPUtil; @@ -50,7 +48,6 @@ public class PlayerIndicatorsService private final Predicate other; private final Predicate caller; private final Predicate callerTarget; - private final List piles = new ArrayList<>(); @Inject private PlayerIndicatorsService(final Client client, final PlayerIndicatorsPlugin plugin) @@ -58,18 +55,32 @@ public class PlayerIndicatorsService this.client = client; this.plugin = plugin; - self = (player) -> client.getLocalPlayer().equals(player); - friend = (player) -> (!player.equals(client.getLocalPlayer()) && client.isFriended(player.getName(), false)); - clan = (player) -> (player.isClanMember() && !client.isFriended(player.getName(), false)); + self = (player) -> (client.getLocalPlayer().equals(player) + && plugin.getLocationHashMap().containsKey(PlayerRelation.SELF)); + + friend = (player) -> (!player.equals(client.getLocalPlayer()) + && client.isFriended(player.getName(), false) + && plugin.getLocationHashMap().containsKey(PlayerRelation.FRIEND)); + + clan = (player) -> (player.isClanMember() && !client.isFriended(player.getName(), false) + && plugin.getLocationHashMap().containsKey(PlayerRelation.CLAN)); + team = (player) -> (Objects.requireNonNull(client.getLocalPlayer()).getTeam() != 0 && !player.isClanMember() - && !client.isFriended(player.getName(), false) && - client.getLocalPlayer().getTeam() == player.getTeam()); + && !client.isFriended(player.getName(), false) + && client.getLocalPlayer().getTeam() == player.getTeam() + && plugin.getLocationHashMap().containsKey(PlayerRelation.TEAM)); + target = (player) -> (!team.test(player) && !clan.test(player) - && !friend.test(player) && PvPUtil.isAttackable(client, player) && !self.test(player)); - caller = plugin::isCaller; - callerTarget = piles::contains; + && !friend.test(player) && PvPUtil.isAttackable(client, player) + && !self.test(player) && plugin.getLocationHashMap().containsKey(PlayerRelation.TARGET)); + + caller = (player) -> (plugin.isCaller(player) && plugin.getLocationHashMap().containsKey(PlayerRelation.CALLER)); + + callerTarget = (player) -> (plugin.isPile(player) && plugin.getLocationHashMap().containsKey(PlayerRelation.CALLER_TARGET)); + other = (player) -> - (!PvPUtil.isAttackable(client, player) && !team.test(player) && !clan.test(player) && !friend.test(player)); + (!PvPUtil.isAttackable(client, player) && !team.test(player) && !clan.test(player) && !friend.test(player) + && plugin.getLocationHashMap().containsKey(PlayerRelation.OTHER)); } @@ -80,47 +91,45 @@ public class PlayerIndicatorsService return; } - piles.clear(); - final List players = client.getPlayers(); for (Player p : players) { - if (self.test(p) && plugin.getLocationHashMap().containsKey(PlayerRelation.SELF)) + if (self.test(p)) { consumer.accept(p, PlayerRelation.SELF); continue; } - if (friend.test(p) && plugin.getLocationHashMap().containsKey(PlayerRelation.FRIEND)) + if (friend.test(p)) { consumer.accept(p, PlayerRelation.FRIEND); continue; } - if (clan.test(p) && plugin.getLocationHashMap().containsKey(PlayerRelation.CLAN)) + if (clan.test(p)) { consumer.accept(p, PlayerRelation.CLAN); continue; } - if (team.test(p) && plugin.getLocationHashMap().containsKey(PlayerRelation.TEAM)) + if (team.test(p)) { consumer.accept(p, PlayerRelation.TEAM); continue; } - if (target.test(p) && plugin.getLocationHashMap().containsKey(PlayerRelation.TARGET)) + if (target.test(p)) { consumer.accept(p, PlayerRelation.TARGET); continue; } - if (caller.test(p) && plugin.getLocationHashMap().containsKey(PlayerRelation.CALLER)) + if (caller.test(p)) { consumer.accept(p, PlayerRelation.CALLER); continue; } - if (callerTarget.test(p) && plugin.getLocationHashMap().containsKey(PlayerRelation.CALLER_TARGET)) + if (callerTarget.test(p) ) { consumer.accept(p, PlayerRelation.CALLER_TARGET); continue; } - if (other.test(p) && plugin.getLocationHashMap().containsKey(PlayerRelation.OTHER)) + if (other.test(p)) { consumer.accept(p, PlayerRelation.OTHER); }