From 6c5205be0cae0420df744516ea0a9f13a923ff1e Mon Sep 17 00:00:00 2001 From: Ganom Date: Sat, 31 Aug 2019 00:03:01 -0400 Subject: [PATCH] playerindicators: add priority checking to Predicate -> Other. --- .../PlayerIndicatorsPlugin.java | 4 +- .../PlayerIndicatorsService.java | 37 ++++++++++++------- 2 files changed, 26 insertions(+), 15 deletions(-) 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 0a91b85d4e..66116d8549 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 @@ -55,6 +55,7 @@ import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.ClanManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; +import net.runelite.client.plugins.PluginType; import net.runelite.client.ui.overlay.OverlayManager; import net.runelite.client.util.ColorUtil; import net.runelite.client.util.PvPUtil; @@ -62,7 +63,8 @@ import net.runelite.client.util.PvPUtil; @PluginDescriptor( name = "Player Indicators", description = "Highlight players on-screen and/or on the minimap", - tags = {"highlight", "minimap", "overlay", "players", "pklite"} + tags = {"highlight", "minimap", "overlay", "players", "pklite"}, + type = PluginType.UTILITY ) @Singleton @Getter(AccessLevel.PACKAGE) 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 1afb3aec6b..aef3fad5fb 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 @@ -42,17 +42,15 @@ public class PlayerIndicatorsService private final Client client; private final PlayerIndicatorsPlugin plugin; - public Predicate self; - public Predicate friend; - public Predicate clan; - public Predicate team; - public Predicate target; - public Predicate other; - public Predicate caller; - public Predicate callerTarget; - - - private List piles = new ArrayList<>(); + private final Predicate self; + private final Predicate friend; + private final Predicate clan; + private final Predicate team; + private final Predicate target; + private final Predicate other; + private final Predicate caller; + private final Predicate callerTarget; + private final List piles = new ArrayList<>(); @Inject @@ -67,9 +65,21 @@ public class PlayerIndicatorsService team = (player) -> (Objects.requireNonNull(client.getLocalPlayer()).getTeam() != 0 && client.getLocalPlayer().getTeam() == player.getTeam()); target = (player) -> PvPUtil.isAttackable(client, player); - other = Objects::nonNull; caller = plugin::isCaller; callerTarget = piles::contains; + other = (player -> + { + if (player == null + || (plugin.isHighlightClan() && player.isClanMember()) + || (plugin.isHighlightFriends() && client.isFriended(player.getName(), false)) + || (plugin.isHighlightCallers() && plugin.isCaller(player)) + || (plugin.isHighlightTeam() && Objects.requireNonNull(client.getLocalPlayer()).getTeam() != 0 + && client.getLocalPlayer().getTeam() == player.getTeam())) + { + return false; + } + return !plugin.isHighlightTargets() || PvPUtil.isAttackable(client, player); + }); } @@ -126,11 +136,10 @@ public class PlayerIndicatorsService } } - private boolean highlight() { return plugin.isHighlightOwnPlayer() || plugin.isHighlightClan() || plugin.isHighlightFriends() || plugin.isHighlightOther() || plugin.isHighlightTargets() || plugin.isHighlightCallers() || plugin.isHighlightTeam() || plugin.isHighlightCallerTargets(); } -} +} \ No newline at end of file