unrevert some stuff
This commit is contained in:
@@ -25,6 +25,8 @@
|
||||
*/
|
||||
package net.runelite.mixins;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
import net.runelite.api.mixins.Inject;
|
||||
import net.runelite.api.mixins.Mixin;
|
||||
import net.runelite.rs.api.RSClient;
|
||||
@@ -80,6 +82,12 @@ public abstract class EntityHiderBridgeMixin implements RSClient
|
||||
@Inject
|
||||
public static List<String> hideSpecificPlayers = new ArrayList<>();
|
||||
|
||||
@Inject
|
||||
public static HashMap<String, Integer> hiddenNpcsName = new HashMap<>();
|
||||
|
||||
@Inject
|
||||
public static List<Integer> hiddenNpcIndices = new ArrayList<>();
|
||||
|
||||
@Inject
|
||||
@Override
|
||||
public void setIsHidingEntities(boolean state)
|
||||
@@ -184,4 +192,46 @@ public abstract class EntityHiderBridgeMixin implements RSClient
|
||||
{
|
||||
hideDeadNPCs = state;
|
||||
}
|
||||
|
||||
@Inject
|
||||
@Override
|
||||
public void addHiddenNpcName(String npc)
|
||||
{
|
||||
npc = npc.toLowerCase();
|
||||
int i = hiddenNpcsName.getOrDefault(npc, 0);
|
||||
if (i == Integer.MAX_VALUE)
|
||||
{
|
||||
throw new RuntimeException("NPC name " + npc + " has been hidden Integer.MAX_VALUE times, is something wrong?");
|
||||
}
|
||||
|
||||
hiddenNpcsName.put(npc, ++i);
|
||||
}
|
||||
|
||||
@Inject
|
||||
@Override
|
||||
public void removeHiddenNpcName(String npc)
|
||||
{
|
||||
npc = npc.toLowerCase();
|
||||
int i = hiddenNpcsName.getOrDefault(npc, 0);
|
||||
if (i == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
hiddenNpcsName.put(npc, --i);
|
||||
}
|
||||
|
||||
@Inject
|
||||
@Override
|
||||
public void setHiddenNpcIndices(List<Integer> npcIndices)
|
||||
{
|
||||
hiddenNpcIndices = new ArrayList<>(npcIndices);
|
||||
}
|
||||
|
||||
@Inject
|
||||
@Override
|
||||
public List<Integer> getHiddenNpcIndices()
|
||||
{
|
||||
return new ArrayList<>(hiddenNpcIndices);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,6 +25,8 @@
|
||||
*/
|
||||
package net.runelite.mixins;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import net.runelite.api.mixins.*;
|
||||
import net.runelite.rs.api.*;
|
||||
|
||||
@@ -81,6 +83,12 @@ public abstract class EntityHiderMixin implements RSScene
|
||||
@Shadow("hideDeadNPCs")
|
||||
private static boolean hideDeadNPCs;
|
||||
|
||||
@Shadow("hiddenNpcsName")
|
||||
private static HashMap<String, Integer> hiddenNpcsName;
|
||||
|
||||
@Shadow("hiddenNpcIndices")
|
||||
private static List<Integer> hiddenNpcIndices;
|
||||
|
||||
@Copy("newGameObject")
|
||||
@Replace("newGameObject")
|
||||
boolean copy$addEntityMarker(int var1, int var2, int var3, int var4, int var5, int x, int y, int var8, RSRenderable entity, int var10, boolean var11, long var12, int var13)
|
||||
@@ -171,6 +179,24 @@ public abstract class EntityHiderMixin implements RSScene
|
||||
{
|
||||
RSNPC npc = (RSNPC) entity;
|
||||
|
||||
if (hiddenNpcIndices.contains(npc.getIndex()))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
for (Map.Entry<String, Integer> entry : hiddenNpcsName.entrySet())
|
||||
{
|
||||
String name = entry.getKey();
|
||||
int count = entry.getValue();
|
||||
if (name != null && !name.equals(""))
|
||||
{
|
||||
if (count > 0 && npc.getName() != null && npc.getName().equalsIgnoreCase(name))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (npc.isDead() && hideDeadNPCs)
|
||||
{
|
||||
return false;
|
||||
|
||||
Reference in New Issue
Block a user