diff options
Diffstat (limited to 'src/main/java/bscv/asm/patches/TestPatch.java')
-rw-r--r-- | src/main/java/bscv/asm/patches/TestPatch.java | 53 |
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); + } } + } |