]> git.lizzy.rs Git - LightOverlay.git/blob - forge/src/main/resources/META-INF/NetworkManager.js
4.7.0
[LightOverlay.git] / forge / src / main / resources / META-INF / NetworkManager.js
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");
6
7 function initializeCoreMod() {
8     return {
9         "light-overlay-forge": {
10             'target': {
11                 'type': 'CLASS',
12                 'name': 'net.minecraft.network.NetworkManager'
13             },
14             'transformer': function (classNode) {
15                 var processPacket = ASMAPI.mapMethod("func_197664_a");
16                 for (i in classNode.methods) {
17                     var method = classNode.methods[i];
18                     if (method.name === processPacket) {
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/LightOverlay", "processPacket", "(Lnet/minecraft/network/IPacket;)V", false));
27                                 break;
28                             }
29                         }
30                         break;
31                     }
32                 }
33                 return classNode;
34             }
35         }
36     }
37 }