Remove unnecessary throws declarations
This commit is contained in:
@@ -8,8 +8,6 @@
|
|||||||
package com.openosrs.injector;
|
package com.openosrs.injector;
|
||||||
|
|
||||||
import com.openosrs.injector.injection.InjectData;
|
import com.openosrs.injector.injection.InjectData;
|
||||||
import static com.openosrs.injector.rsapi.RSApi.*;
|
|
||||||
import static com.openosrs.injector.rsapi.RSApi.API_BASE;
|
|
||||||
import com.openosrs.injector.rsapi.RSApiClass;
|
import com.openosrs.injector.rsapi.RSApiClass;
|
||||||
import com.openosrs.injector.rsapi.RSApiMethod;
|
import com.openosrs.injector.rsapi.RSApiMethod;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -44,6 +42,8 @@ import net.runelite.asm.signature.Signature;
|
|||||||
import net.runelite.deob.DeobAnnotations;
|
import net.runelite.deob.DeobAnnotations;
|
||||||
import net.runelite.deob.deobfuscators.arithmetic.DMath;
|
import net.runelite.deob.deobfuscators.arithmetic.DMath;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
import static com.openosrs.injector.rsapi.RSApi.API_BASE;
|
||||||
|
import static com.openosrs.injector.rsapi.RSApi.RL_API_BASE;
|
||||||
|
|
||||||
public interface InjectUtil
|
public interface InjectUtil
|
||||||
{
|
{
|
||||||
@@ -54,7 +54,7 @@ public interface InjectUtil
|
|||||||
* @param name The name of the method you want to find
|
* @param name The name of the method you want to find
|
||||||
* @return The obfuscated version of the found method
|
* @return The obfuscated version of the found method
|
||||||
*/
|
*/
|
||||||
static Method findMethod(InjectData data, String name) throws InjectException
|
static Method findMethod(InjectData data, String name)
|
||||||
{
|
{
|
||||||
return findMethod(data, name, null, null);
|
return findMethod(data, name, null, null);
|
||||||
}
|
}
|
||||||
@@ -74,7 +74,6 @@ public interface InjectUtil
|
|||||||
String name,
|
String name,
|
||||||
String classHint,
|
String classHint,
|
||||||
@Nullable Predicate<Signature> sig)
|
@Nullable Predicate<Signature> sig)
|
||||||
throws InjectException
|
|
||||||
{
|
{
|
||||||
return findMethod(data, name, classHint, sig, false, false);
|
return findMethod(data, name, classHint, sig, false, false);
|
||||||
}
|
}
|
||||||
@@ -147,7 +146,7 @@ public interface InjectUtil
|
|||||||
throw new InjectException(String.format("Couldn't find %s", name));
|
throw new InjectException(String.format("Couldn't find %s", name));
|
||||||
}
|
}
|
||||||
|
|
||||||
static ClassFile findClassOrThrow(ClassGroup group, String name) throws InjectException
|
static ClassFile findClassOrThrow(ClassGroup group, String name)
|
||||||
{
|
{
|
||||||
ClassFile clazz = group.findClass(name);
|
ClassFile clazz = group.findClass(name);
|
||||||
if (clazz == null)
|
if (clazz == null)
|
||||||
@@ -159,7 +158,7 @@ public interface InjectUtil
|
|||||||
/**
|
/**
|
||||||
* Fail-fast implementation of ClassFile.findMethodDeep, using a predicate for signature
|
* Fail-fast implementation of ClassFile.findMethodDeep, using a predicate for signature
|
||||||
*/
|
*/
|
||||||
static Method findMethodDeep(ClassFile clazz, String name, Predicate<Signature> type) throws InjectException
|
static Method findMethodDeep(ClassFile clazz, String name, Predicate<Signature> type)
|
||||||
{
|
{
|
||||||
do
|
do
|
||||||
for (Method method : clazz.getMethods())
|
for (Method method : clazz.getMethods())
|
||||||
@@ -176,7 +175,7 @@ public interface InjectUtil
|
|||||||
*
|
*
|
||||||
* well...
|
* well...
|
||||||
*/
|
*/
|
||||||
static Field findStaticField(ClassGroup group, String name) throws InjectException
|
static Field findStaticField(ClassGroup group, String name)
|
||||||
{
|
{
|
||||||
for (ClassFile clazz : group)
|
for (ClassFile clazz : group)
|
||||||
{
|
{
|
||||||
@@ -198,7 +197,7 @@ public interface InjectUtil
|
|||||||
*
|
*
|
||||||
* @return The obfuscated version of the found field
|
* @return The obfuscated version of the found field
|
||||||
*/
|
*/
|
||||||
static Field findStaticField(InjectData data, String name, String classHint, Type type) throws InjectException
|
static Field findStaticField(InjectData data, String name, String classHint, Type type)
|
||||||
{
|
{
|
||||||
final ClassGroup deob = data.getDeobfuscated();
|
final ClassGroup deob = data.getDeobfuscated();
|
||||||
Field field;
|
Field field;
|
||||||
@@ -233,7 +232,7 @@ public interface InjectUtil
|
|||||||
/**
|
/**
|
||||||
* Fail-fast implementation of ClassGroup.findFieldDeep
|
* Fail-fast implementation of ClassGroup.findFieldDeep
|
||||||
*/
|
*/
|
||||||
static Field findFieldDeep(ClassFile clazz, String name) throws InjectException
|
static Field findFieldDeep(ClassFile clazz, String name)
|
||||||
{
|
{
|
||||||
Field f;
|
Field f;
|
||||||
|
|
||||||
@@ -245,13 +244,13 @@ public interface InjectUtil
|
|||||||
throw new InjectException("Couldn't find field " + name);
|
throw new InjectException("Couldn't find field " + name);
|
||||||
}
|
}
|
||||||
|
|
||||||
static Field findField(InjectData data, String name, String hintClass) throws InjectException
|
static Field findField(InjectData data, String name, String hintClass)
|
||||||
{
|
{
|
||||||
final ClassGroup deob = data.getDeobfuscated();
|
final ClassGroup deob = data.getDeobfuscated();
|
||||||
return data.toVanilla(findField(deob, name, hintClass));
|
return data.toVanilla(findField(deob, name, hintClass));
|
||||||
}
|
}
|
||||||
|
|
||||||
static Field findField(ClassGroup group, String name, String hintClass) throws InjectException
|
static Field findField(ClassGroup group, String name, String hintClass)
|
||||||
{
|
{
|
||||||
Field field;
|
Field field;
|
||||||
if (hintClass != null)
|
if (hintClass != null)
|
||||||
|
|||||||
@@ -14,10 +14,10 @@ import com.openosrs.injector.injectors.Injector;
|
|||||||
import com.openosrs.injector.injectors.InterfaceInjector;
|
import com.openosrs.injector.injectors.InterfaceInjector;
|
||||||
import com.openosrs.injector.injectors.MixinInjector;
|
import com.openosrs.injector.injectors.MixinInjector;
|
||||||
import com.openosrs.injector.injectors.RSApiInjector;
|
import com.openosrs.injector.injectors.RSApiInjector;
|
||||||
|
import com.openosrs.injector.injectors.raw.AddPlayerToMenu;
|
||||||
import com.openosrs.injector.injectors.raw.ClearColorBuffer;
|
import com.openosrs.injector.injectors.raw.ClearColorBuffer;
|
||||||
import com.openosrs.injector.injectors.raw.DrawAfterWidgets;
|
import com.openosrs.injector.injectors.raw.DrawAfterWidgets;
|
||||||
import com.openosrs.injector.injectors.raw.DrawMenu;
|
import com.openosrs.injector.injectors.raw.DrawMenu;
|
||||||
import com.openosrs.injector.injectors.raw.AddPlayerToMenu;
|
|
||||||
import com.openosrs.injector.injectors.raw.Occluder;
|
import com.openosrs.injector.injectors.raw.Occluder;
|
||||||
import com.openosrs.injector.injectors.raw.RasterizerAlpha;
|
import com.openosrs.injector.injectors.raw.RasterizerAlpha;
|
||||||
import com.openosrs.injector.injectors.raw.RenderDraw;
|
import com.openosrs.injector.injectors.raw.RenderDraw;
|
||||||
@@ -36,7 +36,7 @@ public class Injection extends InjectData implements InjectTaskHandler
|
|||||||
{
|
{
|
||||||
private static final Logger log = Logging.getLogger(Injection.class);
|
private static final Logger log = Logging.getLogger(Injection.class);
|
||||||
|
|
||||||
public Injection(File vanilla, File rsclient, File mixins, FileTree rsapi) throws InjectException, IOException
|
public Injection(File vanilla, File rsclient, File mixins, FileTree rsapi) throws IOException
|
||||||
{
|
{
|
||||||
super(
|
super(
|
||||||
JarUtil.loadJar(vanilla),
|
JarUtil.loadJar(vanilla),
|
||||||
@@ -46,7 +46,7 @@ public class Injection extends InjectData implements InjectTaskHandler
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void inject() throws InjectException
|
public void inject()
|
||||||
{
|
{
|
||||||
log.debug("[DEBUG] Starting injection");
|
log.debug("[DEBUG] Starting injection");
|
||||||
|
|
||||||
@@ -91,7 +91,7 @@ public class Injection extends InjectData implements InjectTaskHandler
|
|||||||
JarUtil.saveJar(this.getVanilla(), outputJar);
|
JarUtil.saveJar(this.getVanilla(), outputJar);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void inject(Injector injector) throws InjectException
|
private void inject(Injector injector)
|
||||||
{
|
{
|
||||||
final String name = injector.getName();
|
final String name = injector.getName();
|
||||||
|
|
||||||
@@ -107,7 +107,7 @@ public class Injection extends InjectData implements InjectTaskHandler
|
|||||||
validate((Validator) injector);
|
validate((Validator) injector);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void validate(Validator validator) throws InjectException
|
private void validate(Validator validator)
|
||||||
{
|
{
|
||||||
final String name = validator.getName();
|
final String name = validator.getName();
|
||||||
|
|
||||||
@@ -128,7 +128,7 @@ public class Injection extends InjectData implements InjectTaskHandler
|
|||||||
log.lifecycle("{} {}", name, transformer.getCompletionMsg());
|
log.lifecycle("{} {}", name, transformer.getCompletionMsg());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void runChildInjector(Injector injector) throws InjectException
|
public void runChildInjector(Injector injector)
|
||||||
{
|
{
|
||||||
inject(injector);
|
inject(injector);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,6 @@ package com.openosrs.injector.injection;
|
|||||||
|
|
||||||
import com.google.common.collect.ImmutableMap;
|
import com.google.common.collect.ImmutableMap;
|
||||||
import com.openosrs.injector.InjectUtil;
|
import com.openosrs.injector.InjectUtil;
|
||||||
import com.openosrs.injector.InjectException;
|
|
||||||
import com.openosrs.injector.injectors.Injector;
|
import com.openosrs.injector.injectors.Injector;
|
||||||
import com.openosrs.injector.rsapi.RSApi;
|
import com.openosrs.injector.rsapi.RSApi;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@@ -64,7 +63,7 @@ public abstract class InjectData
|
|||||||
this.toVanilla = initToVanilla();
|
this.toVanilla = initToVanilla();
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract void runChildInjector(Injector injector) throws InjectException;
|
public abstract void runChildInjector(Injector injector);
|
||||||
|
|
||||||
private Map<ClassFile, ClassFile> initToVanilla()
|
private Map<ClassFile, ClassFile> initToVanilla()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -7,7 +7,6 @@
|
|||||||
*/
|
*/
|
||||||
package com.openosrs.injector.injection;
|
package com.openosrs.injector.injection;
|
||||||
|
|
||||||
import com.openosrs.injector.InjectException;
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
@@ -19,7 +18,7 @@ public interface InjectTaskHandler
|
|||||||
/**
|
/**
|
||||||
* The actual method that does all the work
|
* The actual method that does all the work
|
||||||
*/
|
*/
|
||||||
void inject() throws InjectException;
|
void inject();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Call this to save the injected jar to outputJar
|
* Call this to save the injected jar to outputJar
|
||||||
|
|||||||
@@ -30,11 +30,10 @@
|
|||||||
*/
|
*/
|
||||||
package com.openosrs.injector.injectors;
|
package com.openosrs.injector.injectors;
|
||||||
|
|
||||||
import com.openosrs.injector.InjectUtil;
|
|
||||||
import com.openosrs.injector.InjectException;
|
import com.openosrs.injector.InjectException;
|
||||||
|
import com.openosrs.injector.InjectUtil;
|
||||||
import com.openosrs.injector.injection.InjectData;
|
import com.openosrs.injector.injection.InjectData;
|
||||||
import com.openosrs.injector.rsapi.RSApiMethod;
|
import com.openosrs.injector.rsapi.RSApiMethod;
|
||||||
import static com.openosrs.injector.rsapi.RSApi.CONSTRUCT;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import net.runelite.asm.ClassFile;
|
import net.runelite.asm.ClassFile;
|
||||||
@@ -51,6 +50,7 @@ import net.runelite.asm.attributes.code.instructions.Return;
|
|||||||
import net.runelite.asm.pool.Class;
|
import net.runelite.asm.pool.Class;
|
||||||
import net.runelite.asm.pool.Method;
|
import net.runelite.asm.pool.Method;
|
||||||
import net.runelite.asm.signature.Signature;
|
import net.runelite.asm.signature.Signature;
|
||||||
|
import static com.openosrs.injector.rsapi.RSApi.CONSTRUCT;
|
||||||
import static org.objectweb.asm.Opcodes.ACC_PUBLIC;
|
import static org.objectweb.asm.Opcodes.ACC_PUBLIC;
|
||||||
|
|
||||||
public class InjectConstruct extends AbstractInjector
|
public class InjectConstruct extends AbstractInjector
|
||||||
@@ -63,7 +63,7 @@ public class InjectConstruct extends AbstractInjector
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void inject() throws InjectException
|
public void inject()
|
||||||
{
|
{
|
||||||
for (RSApiMethod apiMethod : inject.getRsApi().getConstructs())
|
for (RSApiMethod apiMethod : inject.getRsApi().getConstructs())
|
||||||
{
|
{
|
||||||
@@ -84,7 +84,7 @@ public class InjectConstruct extends AbstractInjector
|
|||||||
log.info("[INFO] Injected {} constructors", injected);
|
log.info("[INFO] Injected {} constructors", injected);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void injectConstruct(ClassFile targetClass, Method apiMethod) throws InjectException
|
private void injectConstruct(ClassFile targetClass, Method apiMethod)
|
||||||
{
|
{
|
||||||
log.debug("[DEBUG] Injecting constructor for {} into {}", apiMethod, targetClass.getPoolClass());
|
log.debug("[DEBUG] Injecting constructor for {} into {}", apiMethod, targetClass.getPoolClass());
|
||||||
|
|
||||||
|
|||||||
@@ -30,8 +30,8 @@
|
|||||||
package com.openosrs.injector.injectors;
|
package com.openosrs.injector.injectors;
|
||||||
|
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import com.openosrs.injector.InjectUtil;
|
|
||||||
import com.openosrs.injector.InjectException;
|
import com.openosrs.injector.InjectException;
|
||||||
|
import com.openosrs.injector.InjectUtil;
|
||||||
import com.openosrs.injector.injection.InjectData;
|
import com.openosrs.injector.injection.InjectData;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
@@ -83,7 +83,7 @@ public class InjectHook extends AbstractInjector
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void inject() throws InjectException
|
public void inject()
|
||||||
{
|
{
|
||||||
for (Map.Entry<Provider<ClassFile>, List<ClassFile>> entry : mixinTargets.entrySet())
|
for (Map.Entry<Provider<ClassFile>, List<ClassFile>> entry : mixinTargets.entrySet())
|
||||||
injectMethods(entry.getKey(), entry.getValue());
|
injectMethods(entry.getKey(), entry.getValue());
|
||||||
@@ -93,7 +93,7 @@ public class InjectHook extends AbstractInjector
|
|||||||
log.info("[INFO] Injected {} field hooks.", injectedHooks);
|
log.info("[INFO] Injected {} field hooks.", injectedHooks);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void injectMethods(Provider<ClassFile> mixinProvider, List<ClassFile> targetClasses) throws InjectException
|
private void injectMethods(Provider<ClassFile> mixinProvider, List<ClassFile> targetClasses)
|
||||||
{
|
{
|
||||||
final ClassFile mixinClass = mixinProvider.get();
|
final ClassFile mixinClass = mixinProvider.get();
|
||||||
|
|
||||||
@@ -259,8 +259,7 @@ public class InjectHook extends AbstractInjector
|
|||||||
e.run();
|
e.run();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void injectCallbackBefore(Instructions ins, int idx, HookInfo hookInfo, StackContext index, StackContext object, StackContext value) throws
|
private void injectCallbackBefore(Instructions ins, int idx, HookInfo hookInfo, StackContext index, StackContext object, StackContext value)
|
||||||
InjectException
|
|
||||||
{
|
{
|
||||||
Signature signature = hookInfo.method.getDescriptor();
|
Signature signature = hookInfo.method.getDescriptor();
|
||||||
Type methodArgumentType = signature.getTypeOfArg(0);
|
Type methodArgumentType = signature.getTypeOfArg(0);
|
||||||
@@ -322,8 +321,7 @@ public class InjectHook extends AbstractInjector
|
|||||||
return idx;
|
return idx;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void injectCallback(Instructions ins, int idx, HookInfo hookInfo, StackContext index, StackContext objectPusher) throws
|
private void injectCallback(Instructions ins, int idx, HookInfo hookInfo, StackContext index, StackContext objectPusher)
|
||||||
InjectException
|
|
||||||
{
|
{
|
||||||
if (!hookInfo.method.isStatic())
|
if (!hookInfo.method.isStatic())
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -30,8 +30,8 @@
|
|||||||
*/
|
*/
|
||||||
package com.openosrs.injector.injectors;
|
package com.openosrs.injector.injectors;
|
||||||
|
|
||||||
import com.openosrs.injector.InjectUtil;
|
|
||||||
import com.openosrs.injector.InjectException;
|
import com.openosrs.injector.InjectException;
|
||||||
|
import com.openosrs.injector.InjectUtil;
|
||||||
import com.openosrs.injector.injection.InjectData;
|
import com.openosrs.injector.injection.InjectData;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.ListIterator;
|
import java.util.ListIterator;
|
||||||
@@ -62,7 +62,7 @@ public class InjectHookMethod extends AbstractInjector
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void inject() throws InjectException
|
public void inject()
|
||||||
{
|
{
|
||||||
for (Map.Entry<Provider<ClassFile>, List<ClassFile>> entry : mixinTargets.entrySet())
|
for (Map.Entry<Provider<ClassFile>, List<ClassFile>> entry : mixinTargets.entrySet())
|
||||||
injectMethods(entry.getKey(), entry.getValue());
|
injectMethods(entry.getKey(), entry.getValue());
|
||||||
@@ -70,7 +70,7 @@ public class InjectHookMethod extends AbstractInjector
|
|||||||
log.info("[INFO] Injected {} method hooks", injected);
|
log.info("[INFO] Injected {} method hooks", injected);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void injectMethods(Provider<ClassFile> mixinProvider, List<ClassFile> targetClasses) throws InjectException
|
private void injectMethods(Provider<ClassFile> mixinProvider, List<ClassFile> targetClasses)
|
||||||
{
|
{
|
||||||
final ClassFile mixinClass = mixinProvider.get();
|
final ClassFile mixinClass = mixinProvider.get();
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,6 @@
|
|||||||
*/
|
*/
|
||||||
package com.openosrs.injector.injectors;
|
package com.openosrs.injector.injectors;
|
||||||
|
|
||||||
import com.openosrs.injector.InjectException;
|
|
||||||
import net.runelite.asm.Named;
|
import net.runelite.asm.Named;
|
||||||
|
|
||||||
public interface Injector extends Named
|
public interface Injector extends Named
|
||||||
@@ -15,7 +14,7 @@ public interface Injector extends Named
|
|||||||
/**
|
/**
|
||||||
* Where all the injection should be done
|
* Where all the injection should be done
|
||||||
*/
|
*/
|
||||||
void inject() throws InjectException;
|
void inject();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a name the injector is going to be referred to in logging
|
* Get a name the injector is going to be referred to in logging
|
||||||
|
|||||||
@@ -8,11 +8,11 @@
|
|||||||
package com.openosrs.injector.injectors;
|
package com.openosrs.injector.injectors;
|
||||||
|
|
||||||
import com.openosrs.injector.injection.InjectData;
|
import com.openosrs.injector.injection.InjectData;
|
||||||
import static com.openosrs.injector.rsapi.RSApi.API_BASE;
|
|
||||||
import net.runelite.asm.ClassFile;
|
import net.runelite.asm.ClassFile;
|
||||||
import net.runelite.asm.Interfaces;
|
import net.runelite.asm.Interfaces;
|
||||||
import net.runelite.asm.pool.Class;
|
import net.runelite.asm.pool.Class;
|
||||||
import net.runelite.deob.DeobAnnotations;
|
import net.runelite.deob.DeobAnnotations;
|
||||||
|
import static com.openosrs.injector.rsapi.RSApi.API_BASE;
|
||||||
|
|
||||||
public class InterfaceInjector extends AbstractInjector
|
public class InterfaceInjector extends AbstractInjector
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -33,8 +33,8 @@ package com.openosrs.injector.injectors;
|
|||||||
import com.google.common.annotations.VisibleForTesting;
|
import com.google.common.annotations.VisibleForTesting;
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
import com.google.common.collect.ImmutableMap;
|
import com.google.common.collect.ImmutableMap;
|
||||||
import com.openosrs.injector.InjectUtil;
|
|
||||||
import com.openosrs.injector.InjectException;
|
import com.openosrs.injector.InjectException;
|
||||||
|
import com.openosrs.injector.InjectUtil;
|
||||||
import com.openosrs.injector.injection.InjectData;
|
import com.openosrs.injector.injection.InjectData;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@@ -96,14 +96,14 @@ public class MixinInjector extends AbstractInjector
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void inject() throws InjectException
|
public void inject()
|
||||||
{
|
{
|
||||||
final Map<Provider<ClassFile>, List<ClassFile>> mixinTargets = initTargets();
|
final Map<Provider<ClassFile>, List<ClassFile>> mixinTargets = initTargets();
|
||||||
inject(mixinTargets);
|
inject(mixinTargets);
|
||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
void inject(Map<Provider<ClassFile>, List<ClassFile>> mixinTargets) throws InjectException
|
void inject(Map<Provider<ClassFile>, List<ClassFile>> mixinTargets)
|
||||||
{
|
{
|
||||||
for (Map.Entry<Provider<ClassFile>, List<ClassFile>> entry : mixinTargets.entrySet())
|
for (Map.Entry<Provider<ClassFile>, List<ClassFile>> entry : mixinTargets.entrySet())
|
||||||
{
|
{
|
||||||
@@ -184,7 +184,7 @@ public class MixinInjector extends AbstractInjector
|
|||||||
return builder.build();
|
return builder.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void injectFields(Provider<ClassFile> mixinProvider, List<ClassFile> targetClasses) throws InjectException
|
private void injectFields(Provider<ClassFile> mixinProvider, List<ClassFile> targetClasses)
|
||||||
{
|
{
|
||||||
final ClassFile mixinClass = mixinProvider.get();
|
final ClassFile mixinClass = mixinProvider.get();
|
||||||
|
|
||||||
@@ -218,7 +218,7 @@ public class MixinInjector extends AbstractInjector
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void findShadowFields(Provider<ClassFile> mixinProvider) throws InjectException
|
private void findShadowFields(Provider<ClassFile> mixinProvider)
|
||||||
{
|
{
|
||||||
final ClassFile mixinClass = mixinProvider.get();
|
final ClassFile mixinClass = mixinProvider.get();
|
||||||
|
|
||||||
@@ -255,7 +255,7 @@ public class MixinInjector extends AbstractInjector
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void injectMethods(Provider<ClassFile> mixinProvider, List<ClassFile> targetClasses) throws InjectException
|
private void injectMethods(Provider<ClassFile> mixinProvider, List<ClassFile> targetClasses)
|
||||||
{
|
{
|
||||||
for (ClassFile targetClass : targetClasses)
|
for (ClassFile targetClass : targetClasses)
|
||||||
{
|
{
|
||||||
@@ -531,8 +531,7 @@ public class MixinInjector extends AbstractInjector
|
|||||||
targetMethod.setCode(newCode);
|
targetMethod.setCode(newCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setOwnersToTargetClass(ClassFile mixinCf, ClassFile cf, Method method, Map<net.runelite.asm.pool.Method, CopiedMethod> copiedMethods) throws
|
private void setOwnersToTargetClass(ClassFile mixinCf, ClassFile cf, Method method, Map<net.runelite.asm.pool.Method, CopiedMethod> copiedMethods)
|
||||||
InjectException
|
|
||||||
{
|
{
|
||||||
ListIterator<Instruction> iterator = method.getCode().getInstructions().listIterator();
|
ListIterator<Instruction> iterator = method.getCode().getInstructions().listIterator();
|
||||||
|
|
||||||
@@ -629,7 +628,7 @@ public class MixinInjector extends AbstractInjector
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void verify(ClassFile mixinCf, Instruction i) throws InjectException
|
private void verify(ClassFile mixinCf, Instruction i)
|
||||||
{
|
{
|
||||||
if (i instanceof FieldInstruction)
|
if (i instanceof FieldInstruction)
|
||||||
{
|
{
|
||||||
@@ -659,7 +658,7 @@ public class MixinInjector extends AbstractInjector
|
|||||||
throw new InjectException("Injected bytecode must be Java 6 compatible");
|
throw new InjectException("Injected bytecode must be Java 6 compatible");
|
||||||
}
|
}
|
||||||
|
|
||||||
private Method findDeobMatching(ClassFile deobClass, Method mixinMethod, String deobName) throws InjectException
|
private Method findDeobMatching(ClassFile deobClass, Method mixinMethod, String deobName)
|
||||||
{
|
{
|
||||||
List<Method> matching = new ArrayList<>();
|
List<Method> matching = new ArrayList<>();
|
||||||
|
|
||||||
|
|||||||
@@ -30,13 +30,12 @@
|
|||||||
*/
|
*/
|
||||||
package com.openosrs.injector.injectors;
|
package com.openosrs.injector.injectors;
|
||||||
|
|
||||||
import com.openosrs.injector.InjectUtil;
|
|
||||||
import com.openosrs.injector.InjectException;
|
import com.openosrs.injector.InjectException;
|
||||||
|
import com.openosrs.injector.InjectUtil;
|
||||||
import com.openosrs.injector.injection.InjectData;
|
import com.openosrs.injector.injection.InjectData;
|
||||||
import com.openosrs.injector.injectors.rsapi.InjectGetter;
|
import com.openosrs.injector.injectors.rsapi.InjectGetter;
|
||||||
import com.openosrs.injector.injectors.rsapi.InjectInvoke;
|
import com.openosrs.injector.injectors.rsapi.InjectInvoke;
|
||||||
import com.openosrs.injector.injectors.rsapi.InjectSetter;
|
import com.openosrs.injector.injectors.rsapi.InjectSetter;
|
||||||
import static com.openosrs.injector.rsapi.RSApi.*;
|
|
||||||
import com.openosrs.injector.rsapi.RSApiClass;
|
import com.openosrs.injector.rsapi.RSApiClass;
|
||||||
import com.openosrs.injector.rsapi.RSApiMethod;
|
import com.openosrs.injector.rsapi.RSApiMethod;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -51,6 +50,7 @@ import net.runelite.asm.Method;
|
|||||||
import net.runelite.asm.Type;
|
import net.runelite.asm.Type;
|
||||||
import net.runelite.asm.signature.Signature;
|
import net.runelite.asm.signature.Signature;
|
||||||
import net.runelite.deob.DeobAnnotations;
|
import net.runelite.deob.DeobAnnotations;
|
||||||
|
import static com.openosrs.injector.rsapi.RSApi.API_BASE;
|
||||||
|
|
||||||
public class RSApiInjector extends AbstractInjector
|
public class RSApiInjector extends AbstractInjector
|
||||||
{
|
{
|
||||||
@@ -62,7 +62,7 @@ public class RSApiInjector extends AbstractInjector
|
|||||||
super(inject);
|
super(inject);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void inject() throws InjectException
|
public void inject()
|
||||||
{
|
{
|
||||||
for (final ClassFile deobClass : inject.getDeobfuscated())
|
for (final ClassFile deobClass : inject.getDeobfuscated())
|
||||||
{
|
{
|
||||||
@@ -77,7 +77,7 @@ public class RSApiInjector extends AbstractInjector
|
|||||||
log.info("[INFO] Injected {} getters, {} setters, and {} invokers", get, set, voke);
|
log.info("[INFO] Injected {} getters, {} setters, and {} invokers", get, set, voke);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void injectFields(ClassFile deobClass, RSApiClass implementingClass) throws InjectException
|
private void injectFields(ClassFile deobClass, RSApiClass implementingClass)
|
||||||
{
|
{
|
||||||
for (Field deobField : deobClass.getFields())
|
for (Field deobField : deobClass.getFields())
|
||||||
{
|
{
|
||||||
@@ -159,7 +159,7 @@ public class RSApiInjector extends AbstractInjector
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void injectMethods(ClassFile deobClass, RSApiClass implementingClass) throws InjectException
|
private void injectMethods(ClassFile deobClass, RSApiClass implementingClass)
|
||||||
{
|
{
|
||||||
for (Method deobMethod : deobClass.getMethods())
|
for (Method deobMethod : deobClass.getMethods())
|
||||||
{
|
{
|
||||||
@@ -215,7 +215,7 @@ public class RSApiInjector extends AbstractInjector
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void retryFailures() throws InjectException
|
private void retryFailures()
|
||||||
{
|
{
|
||||||
for (Map.Entry<Field, List<RSApiMethod>> entry : retryFields.entrySet())
|
for (Map.Entry<Field, List<RSApiMethod>> entry : retryFields.entrySet())
|
||||||
{
|
{
|
||||||
@@ -257,7 +257,7 @@ public class RSApiInjector extends AbstractInjector
|
|||||||
return matching;
|
return matching;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void inject(List<RSApiMethod> matched, Field field, Field targetField, Number getter) throws InjectException
|
private void inject(List<RSApiMethod> matched, Field field, Field targetField, Number getter)
|
||||||
{
|
{
|
||||||
for (RSApiMethod apiMethod : matched)
|
for (RSApiMethod apiMethod : matched)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -8,8 +8,8 @@
|
|||||||
*/
|
*/
|
||||||
package com.openosrs.injector.injectors.raw;
|
package com.openosrs.injector.injectors.raw;
|
||||||
|
|
||||||
import com.openosrs.injector.InjectUtil;
|
|
||||||
import com.openosrs.injector.InjectException;
|
import com.openosrs.injector.InjectException;
|
||||||
|
import com.openosrs.injector.InjectUtil;
|
||||||
import com.openosrs.injector.injection.InjectData;
|
import com.openosrs.injector.injection.InjectData;
|
||||||
import com.openosrs.injector.injectors.AbstractInjector;
|
import com.openosrs.injector.injectors.AbstractInjector;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -43,7 +43,7 @@ public class AddPlayerToMenu extends AbstractInjector
|
|||||||
super(inject);
|
super(inject);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void inject() throws InjectException
|
public void inject()
|
||||||
{
|
{
|
||||||
final Method addPlayerOptions = InjectUtil.findMethod(inject, "addPlayerToMenu");
|
final Method addPlayerOptions = InjectUtil.findMethod(inject, "addPlayerToMenu");
|
||||||
final net.runelite.asm.pool.Method shouldHideAttackOptionFor =
|
final net.runelite.asm.pool.Method shouldHideAttackOptionFor =
|
||||||
@@ -91,7 +91,6 @@ public class AddPlayerToMenu extends AbstractInjector
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void injectHideAttack(Method addPlayerOptions, net.runelite.asm.pool.Method shouldHideAttackOptionFor)
|
private void injectHideAttack(Method addPlayerOptions, net.runelite.asm.pool.Method shouldHideAttackOptionFor)
|
||||||
throws InjectException
|
|
||||||
{
|
{
|
||||||
final Field AttackOption_hidden =
|
final Field AttackOption_hidden =
|
||||||
InjectUtil.findField(inject, "AttackOption_hidden", "AttackOption").getPoolField();
|
InjectUtil.findField(inject, "AttackOption_hidden", "AttackOption").getPoolField();
|
||||||
@@ -183,7 +182,6 @@ public class AddPlayerToMenu extends AbstractInjector
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void injectHideCast(Method addPlayerOptions, net.runelite.asm.pool.Method shouldHideAttackOptionFor)
|
private void injectHideCast(Method addPlayerOptions, net.runelite.asm.pool.Method shouldHideAttackOptionFor)
|
||||||
throws InjectException
|
|
||||||
{
|
{
|
||||||
// LABEL before
|
// LABEL before
|
||||||
// BIPUSH 8
|
// BIPUSH 8
|
||||||
|
|||||||
@@ -8,9 +8,7 @@
|
|||||||
package com.openosrs.injector.injectors.raw;
|
package com.openosrs.injector.injectors.raw;
|
||||||
|
|
||||||
import com.openosrs.injector.InjectUtil;
|
import com.openosrs.injector.InjectUtil;
|
||||||
import com.openosrs.injector.InjectException;
|
|
||||||
import com.openosrs.injector.injection.InjectData;
|
import com.openosrs.injector.injection.InjectData;
|
||||||
import static com.openosrs.injector.injection.InjectData.HOOKS;
|
|
||||||
import com.openosrs.injector.injectors.AbstractInjector;
|
import com.openosrs.injector.injectors.AbstractInjector;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.atomic.AtomicReference;
|
import java.util.concurrent.atomic.AtomicReference;
|
||||||
@@ -25,6 +23,7 @@ import net.runelite.asm.execution.InstructionContext;
|
|||||||
import net.runelite.asm.execution.MethodContext;
|
import net.runelite.asm.execution.MethodContext;
|
||||||
import net.runelite.asm.execution.StackContext;
|
import net.runelite.asm.execution.StackContext;
|
||||||
import net.runelite.asm.signature.Signature;
|
import net.runelite.asm.signature.Signature;
|
||||||
|
import static com.openosrs.injector.injection.InjectData.HOOKS;
|
||||||
|
|
||||||
public class ClearColorBuffer extends AbstractInjector
|
public class ClearColorBuffer extends AbstractInjector
|
||||||
{
|
{
|
||||||
@@ -39,7 +38,7 @@ public class ClearColorBuffer extends AbstractInjector
|
|||||||
super(inject);
|
super(inject);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void inject() throws InjectException
|
public void inject()
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* This class stops the client from basically painting everything black before the scene is drawn
|
* This class stops the client from basically painting everything black before the scene is drawn
|
||||||
|
|||||||
@@ -30,10 +30,9 @@
|
|||||||
*/
|
*/
|
||||||
package com.openosrs.injector.injectors.raw;
|
package com.openosrs.injector.injectors.raw;
|
||||||
|
|
||||||
import com.openosrs.injector.InjectUtil;
|
|
||||||
import com.openosrs.injector.InjectException;
|
import com.openosrs.injector.InjectException;
|
||||||
|
import com.openosrs.injector.InjectUtil;
|
||||||
import com.openosrs.injector.injection.InjectData;
|
import com.openosrs.injector.injection.InjectData;
|
||||||
import static com.openosrs.injector.injection.InjectData.HOOKS;
|
|
||||||
import com.openosrs.injector.injectors.AbstractInjector;
|
import com.openosrs.injector.injectors.AbstractInjector;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.ListIterator;
|
import java.util.ListIterator;
|
||||||
@@ -49,6 +48,7 @@ import net.runelite.asm.attributes.code.instructions.GetStatic;
|
|||||||
import net.runelite.asm.attributes.code.instructions.IMul;
|
import net.runelite.asm.attributes.code.instructions.IMul;
|
||||||
import net.runelite.asm.attributes.code.instructions.InvokeStatic;
|
import net.runelite.asm.attributes.code.instructions.InvokeStatic;
|
||||||
import net.runelite.asm.signature.Signature;
|
import net.runelite.asm.signature.Signature;
|
||||||
|
import static com.openosrs.injector.injection.InjectData.HOOKS;
|
||||||
|
|
||||||
public class DrawAfterWidgets extends AbstractInjector
|
public class DrawAfterWidgets extends AbstractInjector
|
||||||
{
|
{
|
||||||
@@ -57,7 +57,7 @@ public class DrawAfterWidgets extends AbstractInjector
|
|||||||
super(inject);
|
super(inject);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void inject() throws InjectException
|
public void inject()
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* This call has to be injected using raw injection because the
|
* This call has to be injected using raw injection because the
|
||||||
|
|||||||
@@ -7,10 +7,9 @@
|
|||||||
*/
|
*/
|
||||||
package com.openosrs.injector.injectors.raw;
|
package com.openosrs.injector.injectors.raw;
|
||||||
|
|
||||||
import com.openosrs.injector.InjectUtil;
|
|
||||||
import com.openosrs.injector.InjectException;
|
import com.openosrs.injector.InjectException;
|
||||||
|
import com.openosrs.injector.InjectUtil;
|
||||||
import com.openosrs.injector.injection.InjectData;
|
import com.openosrs.injector.injection.InjectData;
|
||||||
import static com.openosrs.injector.injection.InjectData.HOOKS;
|
|
||||||
import com.openosrs.injector.injectors.AbstractInjector;
|
import com.openosrs.injector.injectors.AbstractInjector;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.atomic.AtomicReference;
|
import java.util.concurrent.atomic.AtomicReference;
|
||||||
@@ -28,6 +27,7 @@ import net.runelite.asm.execution.MethodContext;
|
|||||||
import net.runelite.asm.pool.Class;
|
import net.runelite.asm.pool.Class;
|
||||||
import net.runelite.asm.pool.Field;
|
import net.runelite.asm.pool.Field;
|
||||||
import net.runelite.asm.signature.Signature;
|
import net.runelite.asm.signature.Signature;
|
||||||
|
import static com.openosrs.injector.injection.InjectData.HOOKS;
|
||||||
|
|
||||||
public class DrawMenu extends AbstractInjector
|
public class DrawMenu extends AbstractInjector
|
||||||
{
|
{
|
||||||
@@ -42,7 +42,7 @@ public class DrawMenu extends AbstractInjector
|
|||||||
super(inject);
|
super(inject);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void inject() throws InjectException
|
public void inject()
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* The drawMenu method can be inlined, so we need this raw injector to find where to inject.
|
* The drawMenu method can be inlined, so we need this raw injector to find where to inject.
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ public class Occluder extends AbstractInjector
|
|||||||
super(inject);
|
super(inject);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void inject() throws InjectException
|
public void inject()
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* This class the max view distance length, higher than this is useless though
|
* This class the max view distance length, higher than this is useless though
|
||||||
|
|||||||
@@ -9,7 +9,6 @@ package com.openosrs.injector.injectors.raw;
|
|||||||
|
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import com.openosrs.injector.InjectUtil;
|
import com.openosrs.injector.InjectUtil;
|
||||||
import com.openosrs.injector.InjectException;
|
|
||||||
import com.openosrs.injector.injection.InjectData;
|
import com.openosrs.injector.injection.InjectData;
|
||||||
import com.openosrs.injector.injectors.AbstractInjector;
|
import com.openosrs.injector.injectors.AbstractInjector;
|
||||||
import net.runelite.asm.ClassFile;
|
import net.runelite.asm.ClassFile;
|
||||||
@@ -59,7 +58,7 @@ public class RasterizerAlpha extends AbstractInjector
|
|||||||
/*
|
/*
|
||||||
* This class exists to allow transparency in overlays
|
* This class exists to allow transparency in overlays
|
||||||
*/
|
*/
|
||||||
public void inject() throws InjectException
|
public void inject()
|
||||||
{
|
{
|
||||||
final Field r2dPx = InjectUtil.findField(inject, "Rasterizer2D_pixels", "Rasterizer2D");
|
final Field r2dPx = InjectUtil.findField(inject, "Rasterizer2D_pixels", "Rasterizer2D");
|
||||||
final Method draw = InjectUtil.findMethod(inject, "drawLoggedIn", "Client");
|
final Method draw = InjectUtil.findMethod(inject, "drawLoggedIn", "Client");
|
||||||
|
|||||||
@@ -7,10 +7,9 @@
|
|||||||
*/
|
*/
|
||||||
package com.openosrs.injector.injectors.raw;
|
package com.openosrs.injector.injectors.raw;
|
||||||
|
|
||||||
import com.openosrs.injector.InjectUtil;
|
|
||||||
import com.openosrs.injector.InjectException;
|
import com.openosrs.injector.InjectException;
|
||||||
|
import com.openosrs.injector.InjectUtil;
|
||||||
import com.openosrs.injector.injection.InjectData;
|
import com.openosrs.injector.injection.InjectData;
|
||||||
import static com.openosrs.injector.injection.InjectData.HOOKS;
|
|
||||||
import com.openosrs.injector.injectors.AbstractInjector;
|
import com.openosrs.injector.injectors.AbstractInjector;
|
||||||
import java.util.ListIterator;
|
import java.util.ListIterator;
|
||||||
import net.runelite.asm.Method;
|
import net.runelite.asm.Method;
|
||||||
@@ -20,6 +19,7 @@ import net.runelite.asm.attributes.code.instructions.InvokeStatic;
|
|||||||
import net.runelite.asm.attributes.code.instructions.InvokeVirtual;
|
import net.runelite.asm.attributes.code.instructions.InvokeVirtual;
|
||||||
import net.runelite.asm.pool.Class;
|
import net.runelite.asm.pool.Class;
|
||||||
import net.runelite.asm.signature.Signature;
|
import net.runelite.asm.signature.Signature;
|
||||||
|
import static com.openosrs.injector.injection.InjectData.HOOKS;
|
||||||
|
|
||||||
public class RenderDraw extends AbstractInjector
|
public class RenderDraw extends AbstractInjector
|
||||||
{
|
{
|
||||||
@@ -36,7 +36,7 @@ public class RenderDraw extends AbstractInjector
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void inject() throws InjectException
|
public void inject()
|
||||||
{
|
{
|
||||||
int replaced = 0;
|
int replaced = 0;
|
||||||
|
|
||||||
|
|||||||
@@ -30,8 +30,8 @@
|
|||||||
*/
|
*/
|
||||||
package com.openosrs.injector.injectors.raw;
|
package com.openosrs.injector.injectors.raw;
|
||||||
|
|
||||||
import com.openosrs.injector.InjectUtil;
|
|
||||||
import com.openosrs.injector.InjectException;
|
import com.openosrs.injector.InjectException;
|
||||||
|
import com.openosrs.injector.InjectUtil;
|
||||||
import com.openosrs.injector.injection.InjectData;
|
import com.openosrs.injector.injection.InjectData;
|
||||||
import com.openosrs.injector.injectors.AbstractInjector;
|
import com.openosrs.injector.injectors.AbstractInjector;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
@@ -71,7 +71,7 @@ public class ScriptVM extends AbstractInjector
|
|||||||
super(inject);
|
super(inject);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void inject() throws InjectException
|
public void inject()
|
||||||
{
|
{
|
||||||
final ClassGroup vanilla = inject.getVanilla();
|
final ClassGroup vanilla = inject.getVanilla();
|
||||||
|
|
||||||
|
|||||||
@@ -30,8 +30,8 @@
|
|||||||
*/
|
*/
|
||||||
package com.openosrs.injector.injectors.rsapi;
|
package com.openosrs.injector.injectors.rsapi;
|
||||||
|
|
||||||
import com.openosrs.injector.InjectUtil;
|
|
||||||
import com.openosrs.injector.InjectException;
|
import com.openosrs.injector.InjectException;
|
||||||
|
import com.openosrs.injector.InjectUtil;
|
||||||
import com.openosrs.injector.rsapi.RSApiMethod;
|
import com.openosrs.injector.rsapi.RSApiMethod;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import net.runelite.asm.ClassFile;
|
import net.runelite.asm.ClassFile;
|
||||||
@@ -47,8 +47,7 @@ import net.runelite.asm.signature.Signature;
|
|||||||
|
|
||||||
public class InjectGetter
|
public class InjectGetter
|
||||||
{
|
{
|
||||||
public static void inject(ClassFile targetClass, RSApiMethod apiMethod, Field field, Number getter) throws
|
public static void inject(ClassFile targetClass, RSApiMethod apiMethod, Field field, Number getter)
|
||||||
InjectException
|
|
||||||
{
|
{
|
||||||
if (targetClass.findMethod(apiMethod.getName(), apiMethod.getSignature()) != null)
|
if (targetClass.findMethod(apiMethod.getName(), apiMethod.getSignature()) != null)
|
||||||
throw new InjectException("Duplicate getter method " + apiMethod.getMethod().toString());
|
throw new InjectException("Duplicate getter method " + apiMethod.getMethod().toString());
|
||||||
|
|||||||
@@ -30,8 +30,8 @@
|
|||||||
*/
|
*/
|
||||||
package com.openosrs.injector.injectors.rsapi;
|
package com.openosrs.injector.injectors.rsapi;
|
||||||
|
|
||||||
import com.openosrs.injector.InjectUtil;
|
|
||||||
import com.openosrs.injector.InjectException;
|
import com.openosrs.injector.InjectException;
|
||||||
|
import com.openosrs.injector.InjectUtil;
|
||||||
import com.openosrs.injector.rsapi.RSApiMethod;
|
import com.openosrs.injector.rsapi.RSApiMethod;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import net.runelite.asm.ClassFile;
|
import net.runelite.asm.ClassFile;
|
||||||
@@ -51,8 +51,7 @@ import net.runelite.asm.signature.Signature;
|
|||||||
|
|
||||||
public class InjectInvoke
|
public class InjectInvoke
|
||||||
{
|
{
|
||||||
public static void inject(ClassFile targetClass, RSApiMethod apiMethod, Method vanillaMethod, String garbage) throws
|
public static void inject(ClassFile targetClass, RSApiMethod apiMethod, Method vanillaMethod, String garbage)
|
||||||
InjectException
|
|
||||||
{
|
{
|
||||||
if (targetClass.findMethod(apiMethod.getName(), apiMethod.getSignature()) != null)
|
if (targetClass.findMethod(apiMethod.getName(), apiMethod.getSignature()) != null)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -30,8 +30,8 @@
|
|||||||
*/
|
*/
|
||||||
package com.openosrs.injector.injectors.rsapi;
|
package com.openosrs.injector.injectors.rsapi;
|
||||||
|
|
||||||
import com.openosrs.injector.InjectUtil;
|
|
||||||
import com.openosrs.injector.InjectException;
|
import com.openosrs.injector.InjectException;
|
||||||
|
import com.openosrs.injector.InjectUtil;
|
||||||
import com.openosrs.injector.rsapi.RSApiMethod;
|
import com.openosrs.injector.rsapi.RSApiMethod;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import net.runelite.asm.ClassFile;
|
import net.runelite.asm.ClassFile;
|
||||||
@@ -50,8 +50,7 @@ import net.runelite.asm.signature.Signature;
|
|||||||
|
|
||||||
public class InjectSetter
|
public class InjectSetter
|
||||||
{
|
{
|
||||||
public static void inject(ClassFile targetClass, RSApiMethod apiMethod, Field field, Number getter) throws
|
public static void inject(ClassFile targetClass, RSApiMethod apiMethod, Field field, Number getter)
|
||||||
InjectException
|
|
||||||
{
|
{
|
||||||
if (targetClass.findMethod(apiMethod.getName(), apiMethod.getSignature()) != null)
|
if (targetClass.findMethod(apiMethod.getName(), apiMethod.getSignature()) != null)
|
||||||
throw new InjectException("Duplicate setter method " + apiMethod.getMethod().toString());
|
throw new InjectException("Duplicate setter method " + apiMethod.getMethod().toString());
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ public class RSApi implements Iterable<RSApiClass>
|
|||||||
|
|
||||||
private ImmutableMap<String, RSApiClass> map;
|
private ImmutableMap<String, RSApiClass> map;
|
||||||
|
|
||||||
public RSApi(FileTree classes) throws InjectException
|
public RSApi(FileTree classes)
|
||||||
{
|
{
|
||||||
for (File file : classes)
|
for (File file : classes)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -7,8 +7,6 @@
|
|||||||
*/
|
*/
|
||||||
package com.openosrs.injector.rsapi;
|
package com.openosrs.injector.rsapi;
|
||||||
|
|
||||||
import static com.openosrs.injector.rsapi.RSApi.CONSTRUCT;
|
|
||||||
import static com.openosrs.injector.rsapi.RSApi.IMPORT;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
@@ -21,6 +19,8 @@ import net.runelite.asm.pool.Class;
|
|||||||
import net.runelite.asm.pool.Method;
|
import net.runelite.asm.pool.Method;
|
||||||
import net.runelite.asm.signature.Signature;
|
import net.runelite.asm.signature.Signature;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import static com.openosrs.injector.rsapi.RSApi.CONSTRUCT;
|
||||||
|
import static com.openosrs.injector.rsapi.RSApi.IMPORT;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class RSApiClass implements Iterable<RSApiMethod>
|
public class RSApiClass implements Iterable<RSApiMethod>
|
||||||
|
|||||||
Reference in New Issue
Block a user