playerindicators: add priority checking to Predicate -> Other. (#1496)

playerindicators: add priority checking to Predicate -> Other.
This commit is contained in:
ST0NEWALL
2019-08-31 05:13:12 -04:00
committed by GitHub
2 changed files with 26 additions and 15 deletions

View File

@@ -55,6 +55,7 @@ import net.runelite.client.eventbus.EventBus;
import net.runelite.client.game.ClanManager; import net.runelite.client.game.ClanManager;
import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginDescriptor;
import net.runelite.client.plugins.PluginType;
import net.runelite.client.ui.overlay.OverlayManager; import net.runelite.client.ui.overlay.OverlayManager;
import net.runelite.client.util.ColorUtil; import net.runelite.client.util.ColorUtil;
import net.runelite.client.util.PvPUtil; import net.runelite.client.util.PvPUtil;
@@ -62,7 +63,8 @@ import net.runelite.client.util.PvPUtil;
@PluginDescriptor( @PluginDescriptor(
name = "Player Indicators", name = "Player Indicators",
description = "Highlight players on-screen and/or on the minimap", 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 @Singleton
@Getter(AccessLevel.PACKAGE) @Getter(AccessLevel.PACKAGE)

View File

@@ -42,17 +42,15 @@ public class PlayerIndicatorsService
private final Client client; private final Client client;
private final PlayerIndicatorsPlugin plugin; private final PlayerIndicatorsPlugin plugin;
public Predicate<Player> self; private final Predicate<Player> self;
public Predicate<Player> friend; private final Predicate<Player> friend;
public Predicate<Player> clan; private final Predicate<Player> clan;
public Predicate<Player> team; private final Predicate<Player> team;
public Predicate<Player> target; private final Predicate<Player> target;
public Predicate<Player> other; private final Predicate<Player> other;
public Predicate<Player> caller; private final Predicate<Player> caller;
public Predicate<Player> callerTarget; private final Predicate<Player> callerTarget;
private final List<Actor> piles = new ArrayList<>();
private List<Actor> piles = new ArrayList<>();
@Inject @Inject
@@ -67,9 +65,21 @@ public class PlayerIndicatorsService
team = (player) -> (Objects.requireNonNull(client.getLocalPlayer()).getTeam() != 0 && team = (player) -> (Objects.requireNonNull(client.getLocalPlayer()).getTeam() != 0 &&
client.getLocalPlayer().getTeam() == player.getTeam()); client.getLocalPlayer().getTeam() == player.getTeam());
target = (player) -> PvPUtil.isAttackable(client, player); target = (player) -> PvPUtil.isAttackable(client, player);
other = Objects::nonNull;
caller = plugin::isCaller; caller = plugin::isCaller;
callerTarget = piles::contains; 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,7 +136,6 @@ public class PlayerIndicatorsService
} }
} }
private boolean highlight() private boolean highlight()
{ {
return plugin.isHighlightOwnPlayer() || plugin.isHighlightClan() return plugin.isHighlightOwnPlayer() || plugin.isHighlightClan()