From 5596462b013358e6367c6bc46d12201bb6eb8dd3 Mon Sep 17 00:00:00 2001 From: Adam Date: Thu, 11 May 2017 17:30:35 -0400 Subject: [PATCH] runelite-api: optimize getInteracting --- .../src/main/java/net/runelite/api/Actor.java | 4 ++-- .../src/main/java/net/runelite/api/Client.java | 12 ++++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/runelite-api/src/main/java/net/runelite/api/Actor.java b/runelite-api/src/main/java/net/runelite/api/Actor.java index 311c3e7677..d23d2194c2 100644 --- a/runelite-api/src/main/java/net/runelite/api/Actor.java +++ b/runelite-api/src/main/java/net/runelite/api/Actor.java @@ -60,11 +60,11 @@ public abstract class Actor extends Renderable if (i < 0x8000) { - return client.getNpcs()[i]; + return client.getNpc(i); } i -= 0x8000; - return client.getPlayers()[i]; + return client.getPlayer(i); } public int getHealthRatio() diff --git a/runelite-api/src/main/java/net/runelite/api/Client.java b/runelite-api/src/main/java/net/runelite/api/Client.java index 3377566b69..1b3cbe954b 100644 --- a/runelite-api/src/main/java/net/runelite/api/Client.java +++ b/runelite-api/src/main/java/net/runelite/api/Client.java @@ -55,6 +55,12 @@ public class Client .toArray(size -> new NPC[size]); } + NPC getNpc(int idx) + { + net.runelite.rs.api.NPC npc = client.getCachedNPCs()[idx]; + return npc != null ? new NPC(this, npc) : null; + } + public Player[] getPlayers() { return Arrays.stream(client.getCachedPlayers()) @@ -62,6 +68,12 @@ public class Client .toArray(size -> new Player[size]); } + Player getPlayer(int idx) + { + net.runelite.rs.api.Player player = client.getCachedPlayers()[idx]; + return player != null ? new Player(this, player) : null; + } + @SuppressWarnings("unchecked") public T[] runQuery(Query query) {