api: update 178

This commit is contained in:
Adam
2019-03-07 07:06:06 -05:00
parent d51c36a983
commit c5ebc9547c
5 changed files with 35 additions and 51 deletions

View File

@@ -634,20 +634,10 @@ public interface Client extends GameEngine
int[] getVarps(); int[] getVarps();
/** /**
* Gets an array of all integer client variables. * Gets an array of all client variables.
*
* @return local variables
*/ */
@VisibleForDevtools @VisibleForDevtools
int[] getIntVarcs(); Map<Integer, Object> getVarcMap();
/**
* Gets an array of all string client variables.
*
* @return local variables
*/
@VisibleForDevtools
String[] getStrVarcs();
/** /**
* Gets the value corresponding to the passed player variable. * Gets the value corresponding to the passed player variable.

View File

@@ -32,6 +32,8 @@ import java.awt.event.AdjustmentEvent;
import java.awt.event.AdjustmentListener; import java.awt.event.AdjustmentListener;
import java.awt.event.WindowAdapter; import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent; import java.awt.event.WindowEvent;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects; import java.util.Objects;
import javax.swing.BorderFactory; import javax.swing.BorderFactory;
import javax.swing.JButton; import javax.swing.JButton;
@@ -95,8 +97,7 @@ class VarInspector extends JFrame
private int[] oldVarps2 = null; private int[] oldVarps2 = null;
private int numVarbits = 10000; private int numVarbits = 10000;
private int[] oldIntVarcs = null; private Map<Integer, Object> varcs = null;
private String[] oldStrVarcs = null;
@Inject @Inject
VarInspector(Client client, EventBus eventBus, DevToolsPlugin plugin) VarInspector(Client client, EventBus eventBus, DevToolsPlugin plugin)
@@ -279,9 +280,9 @@ class VarInspector extends JFrame
public void onVarClientIntChanged(VarClientIntChanged e) public void onVarClientIntChanged(VarClientIntChanged e)
{ {
int idx = e.getIndex(); int idx = e.getIndex();
int neew = client.getIntVarcs()[idx]; int neew = (Integer) client.getVarcMap().getOrDefault(idx, 0);
int old = oldIntVarcs[idx]; int old = (Integer) varcs.getOrDefault(idx, 0);
oldIntVarcs[idx] = neew; varcs.put(idx, neew);
if (old != neew) if (old != neew)
{ {
@@ -302,9 +303,9 @@ class VarInspector extends JFrame
public void onVarClientStrChanged(VarClientStrChanged e) public void onVarClientStrChanged(VarClientStrChanged e)
{ {
int idx = e.getIndex(); int idx = e.getIndex();
String neew = client.getStrVarcs()[idx]; String neew = (String) client.getVarcMap().getOrDefault(idx, "");
String old = oldStrVarcs[idx]; String old = (String) varcs.getOrDefault(idx, "");
oldStrVarcs[idx] = neew; varcs.put(idx, neew);
if (!Objects.equals(old, neew)) if (!Objects.equals(old, neew))
{ {
@@ -343,14 +344,11 @@ class VarInspector extends JFrame
{ {
oldVarps = new int[client.getVarps().length]; oldVarps = new int[client.getVarps().length];
oldVarps2 = new int[client.getVarps().length]; oldVarps2 = new int[client.getVarps().length];
oldIntVarcs = new int[client.getIntVarcs().length];
oldStrVarcs = new String[client.getStrVarcs().length];
} }
System.arraycopy(client.getVarps(), 0, oldVarps, 0, oldVarps.length); System.arraycopy(client.getVarps(), 0, oldVarps, 0, oldVarps.length);
System.arraycopy(client.getVarps(), 0, oldVarps2, 0, oldVarps2.length); System.arraycopy(client.getVarps(), 0, oldVarps2, 0, oldVarps2.length);
System.arraycopy(client.getIntVarcs(), 0, oldIntVarcs, 0, oldIntVarcs.length); varcs = new HashMap<>(client.getVarcMap());
System.arraycopy(client.getStrVarcs(), 0, oldStrVarcs, 0, oldStrVarcs.length);
eventBus.register(this); eventBus.register(this);
setVisible(true); setVisible(true);

View File

@@ -2,8 +2,8 @@ package net.runelite.mixins;
import net.runelite.api.events.VarClientIntChanged; import net.runelite.api.events.VarClientIntChanged;
import net.runelite.api.events.VarClientStrChanged; import net.runelite.api.events.VarClientStrChanged;
import net.runelite.api.mixins.FieldHook;
import net.runelite.api.mixins.Inject; import net.runelite.api.mixins.Inject;
import net.runelite.api.mixins.MethodHook;
import net.runelite.api.mixins.Mixin; import net.runelite.api.mixins.Mixin;
import net.runelite.api.mixins.Shadow; import net.runelite.api.mixins.Shadow;
import net.runelite.rs.api.RSClient; import net.runelite.rs.api.RSClient;
@@ -15,17 +15,17 @@ public abstract class RSVarcsMixin implements RSVarcs
@Shadow("clientInstance") @Shadow("clientInstance")
private static RSClient client; private static RSClient client;
@FieldHook("varCInts") @MethodHook(value = "putVarc", end = true)
@Inject @Inject
public void onVarCIntChanged(int idx) public void onVarCIntChanged(int id, int value)
{ {
client.getCallbacks().post(new VarClientIntChanged(idx)); client.getCallbacks().post(new VarClientIntChanged(id));
} }
@FieldHook("varCStrings") @MethodHook(value = "putVarcStringNew", end = true)
@Inject @Inject
public void onVarCStrChanged(int idx) public void onVarCStrChanged(int id, String value)
{ {
client.getCallbacks().post(new VarClientStrChanged(idx)); client.getCallbacks().post(new VarClientStrChanged(id));
} }
} }

View File

@@ -26,6 +26,7 @@ package net.runelite.mixins;
import com.google.common.cache.Cache; import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheBuilder;
import java.util.Map;
import net.runelite.api.VarClientInt; import net.runelite.api.VarClientInt;
import net.runelite.api.VarClientStr; import net.runelite.api.VarClientStr;
import net.runelite.api.Varbits; import net.runelite.api.Varbits;
@@ -118,43 +119,40 @@ public abstract class VarbitMixin implements RSClient
@Override @Override
public int getVar(VarClientInt varClientInt) public int getVar(VarClientInt varClientInt)
{ {
return getIntVarcs()[varClientInt.getIndex()]; Map<Integer, Object> varcmap = getVarcMap();
Object object = varcmap.get(varClientInt.getIndex());
return object instanceof Integer ? (Integer) object : 0;
} }
@Inject @Inject
@Override @Override
public String getVar(VarClientStr varClientStr) public String getVar(VarClientStr varClientStr)
{ {
return getStrVarcs()[varClientStr.getIndex()]; Map<Integer, Object> varcmap = getVarcMap();
Object var2 = varcmap.get(varClientStr.getIndex());
return var2 instanceof String ? (String) var2 : "";
} }
@Inject @Inject
@Override @Override
public void setVar(VarClientStr varClientStr, String value) public void setVar(VarClientStr varClientStr, String value)
{ {
String[] vars = getStrVarcs(); Map<Integer, Object> varcmap = getVarcMap();
vars[varClientStr.getIndex()] = value; varcmap.put(varClientStr.getIndex(), value);
} }
@Inject @Inject
@Override @Override
public void setVar(VarClientInt varClientInt, int value) public void setVar(VarClientInt varClientInt, int value)
{ {
int[] vars = getIntVarcs(); Map<Integer, Object> varcmap = getVarcMap();
vars[varClientInt.getIndex()] = value; varcmap.put(varClientInt.getIndex(), value);
} }
@Inject @Inject
@Override @Override
public int[] getIntVarcs() public Map<Integer, Object> getVarcMap()
{ {
return getVarcs().getIntVarcs(); return getVarcs().getVarcMap();
}
@Inject
@Override
public String[] getStrVarcs()
{
return getVarcs().getStrVarcs();
} }
} }

View File

@@ -24,13 +24,11 @@
*/ */
package net.runelite.rs.api; package net.runelite.rs.api;
import java.util.Map;
import net.runelite.mapping.Import; import net.runelite.mapping.Import;
public interface RSVarcs public interface RSVarcs
{ {
@Import("varCInts") @Import("varcMap")
int[] getIntVarcs(); Map<Integer, Object> getVarcMap();
@Import("varCStrings")
String[] getStrVarcs();
} }