summaryrefslogtreecommitdiff
path: root/src/main/java/bscv/asm/patches/TestPatch.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/bscv/asm/patches/TestPatch.java')
-rw-r--r--src/main/java/bscv/asm/patches/TestPatch.java53
1 files changed, 37 insertions, 16 deletions
diff --git a/src/main/java/bscv/asm/patches/TestPatch.java b/src/main/java/bscv/asm/patches/TestPatch.java
index b1454ab..3d1a9a2 100644
--- a/src/main/java/bscv/asm/patches/TestPatch.java
+++ b/src/main/java/bscv/asm/patches/TestPatch.java
@@ -1,30 +1,51 @@
package bscv.asm.patches;
-import bscv.asm.api.annotations.Inject;
-import bscv.asm.api.annotations.Patch;
import org.objectweb.asm.Opcodes;
+import org.objectweb.asm.tree.ClassNode;
import org.objectweb.asm.tree.InsnList;
import org.objectweb.asm.tree.InsnNode;
import org.objectweb.asm.tree.MethodNode;
+import bscv.asm.api.IInjector;
+
/**
* When working as intended, this patch will crash the game
* as soon it finished loading with a NegativeArraySizeException.
*/
-@Patch("net.minecraft.client.Minecraft")
-public class TestPatch implements Opcodes {
+public class TestPatch {
+
+ public static class FramerateFix implements IInjector, Opcodes {
+ public String name() { return "FramerateFix"; }
+ public String targetClass() { return "net.minecraft.client.Minecraft"; }
+ public String methodName() { return "func_213243_aC"; } // getFramerateLimit()
+ public String methodDesc() { return "()I"; }
+
+ public void inject(ClassNode clazz, MethodNode main) {
+ InsnList insnList = new InsnList();
+ insnList.add(new InsnNode(POP));
+ main.instructions.insert(insnList);
+ }
+ }
+
- @Inject(methodName = "tick", returnType = void.class, parameters = {}, description = "Test injection!")
- public void inject(MethodNode main) {
- InsnList insnList = new InsnList();
- insnList.add(new InsnNode(POP));
- insnList.add(new InsnNode(POP));
- insnList.add(new InsnNode(POP));
- insnList.add(new InsnNode(POP));
- insnList.add(new InsnNode(POP));
- insnList.add(new InsnNode(POP));
- insnList.add(new InsnNode(POP));
- insnList.add(new InsnNode(POP));
- main.instructions.insert(insnList);
+ public static class TickPatch implements IInjector, Opcodes {
+ public String name() { return "TickPatch"; }
+ public String targetClass() { return "net.minecraft.client.Minecraft"; }
+ public String methodName() { return "func_71407_l"; } // tick()
+ public String methodDesc() { return "()V"; }
+
+ public void inject(ClassNode clazz, MethodNode main) {
+ InsnList insnList = new InsnList();
+ insnList.add(new InsnNode(POP));
+ insnList.add(new InsnNode(POP));
+ insnList.add(new InsnNode(POP));
+ insnList.add(new InsnNode(POP));
+ insnList.add(new InsnNode(POP));
+ insnList.add(new InsnNode(POP));
+ insnList.add(new InsnNode(POP));
+ insnList.add(new InsnNode(POP));
+ main.instructions.insert(insnList);
+ }
}
+
}