diff options
author | â€huajijam <strhuaji@gmail.com> | 2019-04-24 17:26:22 +0800 |
---|---|---|
committer | â€huajijam <strhuaji@gmail.com> | 2019-04-24 17:26:22 +0800 |
commit | de9f7710d6f32af0d941085e1029a106b5bc22ff (patch) | |
tree | 71918df2e7294d96a2c3dd81dd02cc4b872fe111 /src/Java/gtPlusPlus/preloader/asm | |
parent | f004369537bf82a3318f2d315af530944433dac5 (diff) | |
parent | ea049ad62ba64a414fccfa5cbb875d72e7e94d00 (diff) | |
download | GT5-Unofficial-de9f7710d6f32af0d941085e1029a106b5bc22ff.tar.gz GT5-Unofficial-de9f7710d6f32af0d941085e1029a106b5bc22ff.tar.bz2 GT5-Unofficial-de9f7710d6f32af0d941085e1029a106b5bc22ff.zip |
Automatic synchronization
Diffstat (limited to 'src/Java/gtPlusPlus/preloader/asm')
-rw-r--r-- | src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_IC2_Hazmat.java | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_IC2_Hazmat.java b/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_IC2_Hazmat.java index 4bb7ef7d46..59edf8dec0 100644 --- a/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_IC2_Hazmat.java +++ b/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_IC2_Hazmat.java @@ -20,7 +20,7 @@ public class ClassTransformer_IC2_Hazmat { private final ClassWriter writer; private final String className; - public boolean hasCompleteHazmat(EntityLivingBase living) { + public static boolean hasCompleteHazmat(EntityLivingBase living) { return HazmatUtils.hasCompleteHazmat(living); } @@ -79,11 +79,14 @@ public class ClassTransformer_IC2_Hazmat { if (isObf) { aEntityLivingBase = "sv"; } + FMLRelaunchLog.log("[GT++ ASM] IC2 Hazmat Patch", Level.INFO, "Method Handler: "+aEntityLivingBase); FMLRelaunchLog.log("[GT++ ASM] IC2 Hazmat Patch", Level.INFO, "Injecting " + aMethodName + "."); if (aMethodName.equals("hasCompleteHazmat")) { - mv = cw.visitMethod(ACC_PUBLIC, "hasCompleteHazmat", "(L"+aEntityLivingBase+";)Z", null, null); + + //Bad Local Variable - https://pastebin.com/TUCfdHqS + /*mv = cw.visitMethod(ACC_PUBLIC + ACC_STATIC, "hasCompleteHazmat", "(L"+aEntityLivingBase+";)Z", null, null); mv.visitCode(); Label l0 = new Label(); mv.visitLabel(l0); @@ -96,6 +99,21 @@ public class ClassTransformer_IC2_Hazmat { mv.visitLocalVariable("this", "Lic2/core/item/armor/ItemArmorHazmat;", null, l0, l1, 0); mv.visitLocalVariable("living", "L"+aEntityLivingBase+";", null, l0, l1, 1); mv.visitMaxs(1, 2); + mv.visitEnd();*/ + + + mv = cw.visitMethod(ACC_PUBLIC + ACC_STATIC, "hasCompleteHazmat", "(L"+aEntityLivingBase+";)Z", null, null); + mv.visitCode(); + Label l0 = new Label(); + mv.visitLabel(l0); + mv.visitLineNumber(24, l0); + mv.visitVarInsn(ALOAD, 0); + mv.visitMethodInsn(INVOKESTATIC, "gtPlusPlus/core/util/minecraft/HazmatUtils", "hasCompleteHazmat", "(L"+aEntityLivingBase+";)Z", false); + mv.visitInsn(IRETURN); + Label l1 = new Label(); + mv.visitLabel(l1); + mv.visitLocalVariable("living", "L"+aEntityLivingBase+";", null, l0, l1, 0); + mv.visitMaxs(1, 1); mv.visitEnd(); } FMLRelaunchLog.log("[GT++ ASM] IC2 Hazmat Patch", Level.INFO, "Method injection complete."); |