Browse Source

removed debug message, implemented not used setEntityState hook

Kajetan Johannes Hammerle 6 years ago
parent
commit
1b44619dce

+ 35 - 1
src/main/java/me/kcm/KajetansTransformer.java

@@ -34,7 +34,7 @@ public class KajetansTransformer implements IClassTransformer
         {
             obfuscated = !ldev;
         }
-        System.out.println(obfuscated);
+        //System.out.println(obfuscated);
     }
     
     private void printPatch(String s)
@@ -163,6 +163,40 @@ public class KajetansTransformer implements IClassTransformer
                     "onGetTabListDisplayName", "(Lnet/minecraft/entity/player/EntityPlayerMP;)Lnet/minecraft/util/text/ITextComponent;", false));
             }
             
+            
+            // patching setEntityActionState
+            // MD: net/minecraft/entity/player/EntityPlayerMP/setEntityActionState (FFZZ)V oq/a (FFZZ)V
+            /*if(obfuscated)
+            {
+                mn = classNode.methods.stream().filter(me -> me.name.equals("a")).filter(me -> "(FFZZ)V".equals(me.desc)).findAny().get();
+            }
+            else
+            {
+                mn = classNode.methods.stream().filter(me -> me.name.equals("setEntityActionState")).findAny().get();
+            }
+            ins = mn.instructions;
+            
+            if(obfuscated)
+            {
+                ins.insert(ins.get(1), new MethodInsnNode(Opcodes.INVOKESTATIC, "me/kcm/events/Hooks", "onSetEntityActionState", "(Loq;FFZZ)V", false));
+            }
+            else
+            {
+                ins.insert(ins.get(1), new MethodInsnNode(Opcodes.INVOKESTATIC, "me/kcm/events/Hooks", 
+                    "onSetEntityActionState", "(Lnet/minecraft/entity/player/EntityPlayerMP;FFZZ)V", false));
+            }
+            ins.insert(ins.get(1), new VarInsnNode(Opcodes.ILOAD, 4));
+            ins.insert(ins.get(1), new VarInsnNode(Opcodes.ILOAD, 3));
+            ins.insert(ins.get(1), new VarInsnNode(Opcodes.FLOAD, 2));
+            ins.insert(ins.get(1), new VarInsnNode(Opcodes.FLOAD, 1));
+            ins.insert(ins.get(1), new VarInsnNode(Opcodes.ALOAD, 0));
+            
+            java.util.ListIterator<AbstractInsnNode> list = ins.iterator();
+            while(list.hasNext())
+            {
+                System.out.println(getString(list.next()));
+            }*/
+            
             ClassWriter writer = new ClassWriter(ClassWriter.COMPUTE_MAXS | ClassWriter.COMPUTE_FRAMES);
             classNode.accept(writer);
             return writer.toByteArray();

+ 5 - 0
src/main/java/me/kcm/events/Hooks.java

@@ -36,6 +36,11 @@ public class Hooks
         return e.getName();
     }
     
+    public static void onSetEntityActionState(EntityPlayerMP p, float strafe, float forward, boolean jumping, boolean sneaking)
+    {
+        System.out.println("WUSI");
+    }
+    
     public static boolean onEntityCanTrample(Entity ent, World w, Block b, BlockPos pos, float fallDistance)
     {
         return !MinecraftForge.EVENT_BUS.post(new FarmlandTrampleEvent(w, pos, w.getBlockState(pos), fallDistance, ent));