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 6e03514bec..e4f52fa121 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 @@ -60,25 +60,26 @@ public class PlayerIndicatorsService self = (player) -> Objects.equals(client.getLocalPlayer(), player); friend = (player) -> (!player.equals(client.getLocalPlayer()) && client.isFriended(player.getName(), false)); - clan = Player::isClanMember; + clan = (player) -> (player.isClanMember() && !client.isFriended(player.getName(), false)); team = (player) -> (Objects.requireNonNull(client.getLocalPlayer()).getTeam() != 0 && client.getLocalPlayer().getTeam() == player.getTeam()); - target = (player) -> PvPUtil.isAttackable(client, player); + target = (player -> + { + if (nonFriendly(player)) + { + return false; + } + return plugin.isHighlightTargets() && PvPUtil.isAttackable(client, player); + }); 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.isHighlightCallerTargets() && piles.contains(player)) - || (plugin.isHighlightTeam() && Objects.requireNonNull(client.getLocalPlayer()).getTeam() != 0 - && client.getLocalPlayer().getTeam() == player.getTeam())) + if (nonFriendly(player)) { return false; } - return !plugin.isHighlightTargets() || PvPUtil.isAttackable(client, player); + return true; }); } @@ -141,4 +142,15 @@ public class PlayerIndicatorsService || plugin.isHighlightFriends() || plugin.isHighlightOther() || plugin.isHighlightTargets() || plugin.isHighlightCallers() || plugin.isHighlightTeam() || plugin.isHighlightCallerTargets(); } + + private boolean nonFriendly(Player player) + { + return player == null + || (plugin.isHighlightClan() && player.isClanMember()) + || (plugin.isHighlightFriends() && client.isFriended(player.getName(), false)) + || (plugin.isHighlightCallers() && plugin.isCaller(player)) + || (plugin.isHighlightCallerTargets() && piles.contains(player)) + || (plugin.isHighlightTeam() && Objects.requireNonNull(client.getLocalPlayer()).getTeam() != 0 + && client.getLocalPlayer().getTeam() == player.getTeam()); + } } \ No newline at end of file