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

View File

@@ -2,8 +2,8 @@ package net.runelite.mixins;
import net.runelite.api.events.VarClientIntChanged;
import net.runelite.api.events.VarClientStrChanged;
import net.runelite.api.mixins.FieldHook;
import net.runelite.api.mixins.Inject;
import net.runelite.api.mixins.MethodHook;
import net.runelite.api.mixins.Mixin;
import net.runelite.api.mixins.Shadow;
import net.runelite.rs.api.RSClient;
@@ -15,17 +15,17 @@ public abstract class RSVarcsMixin implements RSVarcs
@Shadow("clientInstance")
private static RSClient client;
@FieldHook("varCInts")
@MethodHook(value = "putVarc", end = true)
@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
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.CacheBuilder;
import java.util.Map;
import net.runelite.api.VarClientInt;
import net.runelite.api.VarClientStr;
import net.runelite.api.Varbits;
@@ -118,43 +119,40 @@ public abstract class VarbitMixin implements RSClient
@Override
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
@Override
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
@Override
public void setVar(VarClientStr varClientStr, String value)
{
String[] vars = getStrVarcs();
vars[varClientStr.getIndex()] = value;
Map<Integer, Object> varcmap = getVarcMap();
varcmap.put(varClientStr.getIndex(), value);
}
@Inject
@Override
public void setVar(VarClientInt varClientInt, int value)
{
int[] vars = getIntVarcs();
vars[varClientInt.getIndex()] = value;
Map<Integer, Object> varcmap = getVarcMap();
varcmap.put(varClientInt.getIndex(), value);
}
@Inject
@Override
public int[] getIntVarcs()
public Map<Integer, Object> getVarcMap()
{
return getVarcs().getIntVarcs();
}
@Inject
@Override
public String[] getStrVarcs()
{
return getVarcs().getStrVarcs();
return getVarcs().getVarcMap();
}
}

View File

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