entityhider: Allow hiding of specific players. (#1507)

This commit is contained in:
Ganom
2019-09-01 12:39:54 -04:00
committed by GitHub
parent 3e10c06bb1
commit 5a429b7070
5 changed files with 46 additions and 3 deletions

View File

@@ -74,6 +74,9 @@ public abstract class EntityHiderBridgeMixin implements RSClient
@Inject
public static List<String> hideNPCsOnDeath;
@Inject
public static List<String> hideSpecificPlayers;
@Inject
@Override
public void setIsHidingEntities(boolean state)
@@ -151,6 +154,13 @@ public abstract class EntityHiderBridgeMixin implements RSClient
hideNPCsOnDeath = NPCs;
}
@Inject
@Override
public void setHideSpecificPlayers(List<String> players)
{
hideSpecificPlayers = players;
}
@Inject
@Override
public void setAttackersHidden(boolean state)

View File

@@ -32,6 +32,7 @@ import net.runelite.api.mixins.Inject;
import net.runelite.api.mixins.Mixin;
import net.runelite.api.mixins.Replace;
import net.runelite.api.mixins.Shadow;
import net.runelite.api.util.Text;
import net.runelite.rs.api.RSActor;
import net.runelite.rs.api.RSClient;
import net.runelite.rs.api.RSEntity;
@@ -82,6 +83,9 @@ public abstract class EntityHiderMixin implements RSScene
@Shadow("hideNPCsOnDeath")
private static List<String> hideNPCsOnDeath;
@Shadow("hideSpecificPlayers")
private static List<String> hideSpecificPlayers;
@Shadow("hideNPCs2D")
private static boolean hideNPCs2D;
@@ -144,11 +148,21 @@ public abstract class EntityHiderMixin implements RSScene
boolean local = drawingUI ? hideLocalPlayer2D : hideLocalPlayer;
boolean other = drawingUI ? hidePlayers2D : hidePlayers;
boolean isLocalPlayer = entity == client.getLocalPlayer();
RSPlayer player = (RSPlayer) entity;
for (String name : hideSpecificPlayers)
{
if (name != null && !name.equals(""))
{
if (Text.standardize(player.getName()).equals(name))
{
return false;
}
}
}
if (isLocalPlayer ? local : other)
{
RSPlayer player = (RSPlayer) entity;
if (!hideAttackers)
{
if (player.getInteracting() == client.getLocalPlayer())