Use player indices to iterate local players
This commit is contained in:
@@ -30,6 +30,7 @@ import java.awt.image.BufferedImage;
|
||||
import net.runelite.api.Actor;
|
||||
import net.runelite.api.NPC;
|
||||
import net.runelite.api.Perspective;
|
||||
import net.runelite.api.Player;
|
||||
import net.runelite.api.Point;
|
||||
import net.runelite.api.mixins.Inject;
|
||||
import net.runelite.api.mixins.Mixin;
|
||||
@@ -65,7 +66,8 @@ public abstract class RSActorMixin implements RSActor
|
||||
}
|
||||
|
||||
i -= 0x8000;
|
||||
return client.getPlayer(i);
|
||||
Player[] players = client.getCachedPlayers();
|
||||
return players[i];
|
||||
}
|
||||
|
||||
@Inject
|
||||
|
||||
@@ -45,9 +45,19 @@ public abstract class RSClientMixin implements RSClient
|
||||
{
|
||||
@Inject
|
||||
@Override
|
||||
public Player getPlayer(int idx)
|
||||
public List<Player> getPlayers()
|
||||
{
|
||||
return getCachedPlayers()[idx];
|
||||
int validPlayerIndexes = getPlayerIndexesCount();
|
||||
int[] playerIndexes = getPlayerIndices();
|
||||
Player[] cachedPlayers = getCachedPlayers();
|
||||
List<Player> players = new ArrayList<Player>(validPlayerIndexes);
|
||||
|
||||
for (int i = 0; i < validPlayerIndexes; ++i)
|
||||
{
|
||||
players.add(cachedPlayers[playerIndexes[i]]);
|
||||
}
|
||||
|
||||
return players;
|
||||
}
|
||||
|
||||
@Inject
|
||||
|
||||
Reference in New Issue
Block a user