]> git.lizzy.rs Git - LightOverlay.git/blob - forge/src/main/resources/META-INF/Connection.js
1.18-rc3
[LightOverlay.git] / forge / src / main / resources / META-INF / Connection.js
1 var Opcodes = Java.type("org.objectweb.asm.Opcodes");
2 var VarInsnNode = Java.type("org.objectweb.asm.tree.VarInsnNode");
3 var MethodInsnNode = Java.type("org.objectweb.asm.tree.MethodInsnNode");
4 var ASMAPI = Java.type("net.minecraftforge.coremod.api.ASMAPI");
5
6 function transformMethod(method) {
7     var instructions = method.instructions;
8     instructions.insert(new MethodInsnNode(Opcodes.INVOKESTATIC, "me/shedaniel/lightoverlay/forge/mixin/MixinClientConnection", "handlePacket", "(Lnet/minecraft/network/protocol/Packet;Lnet/minecraft/network/PacketListener;)V", false));
9     instructions.insert(new VarInsnNode(Opcodes.ALOAD, 1));
10     instructions.insert(new VarInsnNode(Opcodes.ALOAD, 0));
11 }
12
13 function initializeCoreMod() {
14     return {
15         "lightoverlay": {
16             'target': {
17                 'type': 'CLASS',
18                 'name': 'net.minecraft.network.Connection'
19             },
20             'transformer': function (classNode) {
21                 var genericsFtw = ASMAPI.mapMethod("m_129517_");
22                 for (i in classNode.methods) {
23                     var method = classNode.methods[i];
24                     if (method.name === genericsFtw) {
25                         transformMethod(method)
26                         break;
27                     }
28                 }
29                 return classNode;
30             }
31         }
32     }
33 }