Add player index to api

This commit is contained in:
Septron
2018-04-08 17:49:45 -04:00
committed by Adam
parent f9269b01af
commit 92f4ec1c54
4 changed files with 42 additions and 0 deletions

View File

@@ -40,4 +40,6 @@ public interface Player extends Actor
boolean isClanMember();
boolean isFriend();
int getIndex();
}

View File

@@ -84,6 +84,7 @@ import net.runelite.rs.api.RSIndexedSprite;
import net.runelite.rs.api.RSItemContainer;
import net.runelite.rs.api.RSNPC;
import net.runelite.rs.api.RSName;
import net.runelite.rs.api.RSPlayer;
import net.runelite.rs.api.RSWidget;
@Mixin(RSClient.class)
@@ -616,6 +617,23 @@ public abstract class RSClientMixin implements RSClient
}
}
@FieldHook("cachedPlayers")
@Inject
public static void cachedPlayersChanged(int idx)
{
RSPlayer[] cachedPlayers = client.getCachedPlayers();
if (idx < 0 || idx >= cachedPlayers.length)
{
return;
}
RSPlayer player = cachedPlayers[idx];
if (player != null)
{
player.setIndex(idx);
}
}
@Inject
@FieldHook("grandExchangeOffers")
public static void onGrandExchangeOffersChanged(int idx)

View File

@@ -45,6 +45,9 @@ public abstract class RSPlayerMixin implements RSPlayer
@Shadow("clientInstance")
private static RSClient client;
@Inject
private int playerIndex;
@Inject
@Override
public String getName()
@@ -141,4 +144,18 @@ public abstract class RSPlayerMixin implements RSPlayer
}
return rotatedTriangles;
}
@Inject
@Override
public int getIndex()
{
return playerIndex;
}
@Inject
@Override
public void setIndex(int index)
{
this.playerIndex = index;
}
}

View File

@@ -54,4 +54,9 @@ public interface RSPlayer extends RSActor, Player
@Import("isFriend")
@Override
boolean isFriend();
@Override
int getIndex();
void setIndex(int id);
}