1 var Opcodes = Java.type("org.objectweb.asm.Opcodes");
2 var LabelNode = Java.type("org.objectweb.asm.tree.LabelNode");
3 var VarInsnNode = Java.type("org.objectweb.asm.tree.VarInsnNode");
4 var MethodInsnNode = Java.type("org.objectweb.asm.tree.MethodInsnNode");
5 var ASMAPI = Java.type("net.minecraftforge.coremod.api.ASMAPI");
7 function initializeCoreMod() {
9 "light-overlay-forge": {
12 'name': 'net.minecraft.client.renderer.debug.DebugRenderer'
14 'transformer': function (classNode) {
15 var render = ASMAPI.mapMethod("func_229019_a_");
16 for (i in classNode.methods) {
17 var method = classNode.methods[i];
18 if (method.name === render) {
19 var instructions = method.instructions;
20 var insnArray = instructions.toArray();
21 for (j in insnArray) {
22 var instruction = insnArray[j];
23 if (instruction instanceof LabelNode) {
24 instructions.insertBefore(instruction, new LabelNode());
25 instructions.insertBefore(instruction, new VarInsnNode(Opcodes.ALOAD, 0));
26 instructions.insertBefore(instruction, new MethodInsnNode(Opcodes.INVOKESTATIC, "me/shedaniel/lightoverlay/forge/LightOverlayClient", "renderWorldLast", "()V", false));