playerindicators: prioritize clan and friends over targets (#1524)

* playerindicators: prioritize clan and friends over targets

Signed-off-by: PKLite <stonewall@pklite.xyz>

* correctly prioritizes, fixed targets and other not showing

Signed-off-by: PKLite <stonewall@pklite.xyz>
This commit is contained in:
ST0NEWALL
2019-09-04 22:22:50 -04:00
committed by Ganom
parent be04b4e7f4
commit d4dbf9e856

View File

@@ -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());
}
}