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.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)

View File

@@ -42,17 +42,15 @@ public class PlayerIndicatorsService
private final Client client;
private final PlayerIndicatorsPlugin plugin;
public Predicate<Player> self;
public Predicate<Player> friend;
public Predicate<Player> clan;
public Predicate<Player> team;
public Predicate<Player> target;
public Predicate<Player> other;
public Predicate<Player> caller;
public Predicate<Player> callerTarget;
private List<Actor> piles = new ArrayList<>();
private final Predicate<Player> self;
private final Predicate<Player> friend;
private final Predicate<Player> clan;
private final Predicate<Player> team;
private final Predicate<Player> target;
private final Predicate<Player> other;
private final Predicate<Player> caller;
private final Predicate<Player> callerTarget;
private final List<Actor> 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();
}
}
}