@@ -35,21 +35,25 @@ private void patchPlayerControllerMP(ClassNode classNode) {
3535 .getMethod (classNode , "clickSlot" );
3636 InsnList earlyInject = new InsnList ();
3737 LabelNode labelNode = new LabelNode ();
38- earlyInject .insert (new VarInsnNode (ILOAD , 1 ));
39- earlyInject .insert (new InsnNode (ICONST_M1 ));
40- earlyInject .insert (new JumpInsnNode (IF_ICMPNE , labelNode ));
41- earlyInject .insert (new VarInsnNode (ALOAD , 0 ));
42- earlyInject .insert (new VarInsnNode (ILOAD , 1 ));
43- earlyInject .insert (new VarInsnNode (ILOAD , 2 ));
44- earlyInject .insert (new VarInsnNode (ILOAD , 3 ));
45- earlyInject .insert (new VarInsnNode (ILOAD , 4 ));
46- earlyInject .insert (new VarInsnNode (ALOAD , 5 ));
47- earlyInject .insert (new MethodInsnNode (INVOKESPECIAL ,
38+ earlyInject .add (new VarInsnNode (ILOAD , 1 ));
39+ earlyInject .add (new InsnNode (ICONST_M1 ));
40+ earlyInject .add (new JumpInsnNode (IF_ICMPNE , labelNode ));
41+ earlyInject .add (new VarInsnNode (ALOAD , 0 ));
42+ earlyInject .add (new VarInsnNode (ILOAD , 1 ));
43+ earlyInject .add (new VarInsnNode (ILOAD , 2 ));
44+ earlyInject .add (new VarInsnNode (ILOAD , 3 ));
45+ earlyInject .add (new VarInsnNode (ILOAD , 4 ));
46+ earlyInject .add (new VarInsnNode (ALOAD , 5 ));
47+ earlyInject .add (new MethodInsnNode (INVOKESPECIAL ,
4848 "net/minecraft/src/client/player/PlayerController" , "clickSlot" ,
4949 "(IIIILnet/minecraft/src/game/entity/player/EntityPlayer;)Lnet/minecraft/src/game/item/ItemStack;" ));
50- earlyInject .insert (new InsnNode (ARETURN ));
51- earlyInject .insert (labelNode );
52- sendClickSlot .instructions .insert (earlyInject );
50+ earlyInject .add (new InsnNode (ARETURN ));
51+ earlyInject .add (labelNode );
52+ AbstractInsnNode firstCodeNode =
53+ sendClickSlot .instructions .getFirst ();
54+ while (firstCodeNode .getOpcode () == -1 )
55+ firstCodeNode = firstCodeNode .getNext ();
56+ sendClickSlot .instructions .insertBefore (firstCodeNode , earlyInject );
5357 }
5458
5559 private void patchNetClientHandler (ClassNode classNode ) {
0 commit comments