diff options
| author | Glease <4586901+Glease@users.noreply.github.com> | 2022-09-04 00:14:55 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-09-03 18:14:55 +0200 |
| commit | 908d0ccaf9ecb15d97c60b6c8088740c3f53316d (patch) | |
| tree | 5e70d92dab8e45d7dae51608aa76aca805a23c02 /src/main | |
| parent | 5c58462ba6fd5b5a31b000f05599c7e722091d1e (diff) | |
| download | GT5-Unofficial-908d0ccaf9ecb15d97c60b6c8088740c3f53316d.tar.gz GT5-Unofficial-908d0ccaf9ecb15d97c60b6c8088740c3f53316d.tar.bz2 GT5-Unofficial-908d0ccaf9ecb15d97c60b6c8088740c3f53316d.zip | |
Remove GT asm (#333)
* remove GT asm
* Spotless apply for branch no-gt-asm for #333 (#334)
Co-authored-by: Glease <4586901+Glease@users.noreply.github.com>
Co-authored-by: GitHub GTNH Actions <>
* Update dependencies.gradle
* Update dependencies.gradle
* Update dependencies.gradle
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Martin Robertz <dream-master@gmx.net>
Diffstat (limited to 'src/main')
18 files changed, 5 insertions, 5562 deletions
diff --git a/src/main/java/gtPlusPlus/GTplusplus.java b/src/main/java/gtPlusPlus/GTplusplus.java index e3272e21ea..caeafa99bf 100644 --- a/src/main/java/gtPlusPlus/GTplusplus.java +++ b/src/main/java/gtPlusPlus/GTplusplus.java @@ -11,6 +11,7 @@ import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.IFMLLoadingPlugin.MCVersion; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import gregtech.api.GregTech_API; import gregtech.api.enums.Materials; import gregtech.api.enums.Textures; import gregtech.api.enums.Textures.BlockIcons; @@ -135,6 +136,10 @@ public class GTplusplus implements ActionListener { public GTplusplus() { super(); INIT_PHASE.SUPER.setPhaseActive(true); + + for (int i = 12; i < 16; i++) { + GregTech_API.registerTileEntityConstructor(i, Meta_GT_Proxy::constructCustomGregtechMetaTileEntityByMeta); + } } // Pre-Init diff --git a/src/main/java/gtPlusPlus/preloader/asm/helpers/MethodHelper_CC.java b/src/main/java/gtPlusPlus/preloader/asm/helpers/MethodHelper_CC.java deleted file mode 100644 index baffcd5e78..0000000000 --- a/src/main/java/gtPlusPlus/preloader/asm/helpers/MethodHelper_CC.java +++ /dev/null @@ -1,28 +0,0 @@ -package gtPlusPlus.preloader.asm.helpers; - -import codechicken.nei.guihook.GuiContainerManager; -import codechicken.nei.guihook.IContainerInputHandler; -import net.minecraft.client.gui.inventory.GuiContainer; - -public class MethodHelper_CC { - - public void mouseUp2(int mousex, int mousey, int button) { - MethodHelper_CC.mouseUp(mousex, mousey, button); - } - - public static void mouseUp(int mousex, int mousey, int button) { - GuiContainerManager aManager = codechicken.nei.guihook.GuiContainerManager.getManager(); - if (aManager != null) { - GuiContainer aWindow = aManager.window; - for (IContainerInputHandler inputhander : GuiContainerManager.inputHandlers) { - // Preloader_Logger.INFO("Found Handler: "+aWindow.getClass().getName() + " | - // "+inputhander.getClass().getName()); - } - for (IContainerInputHandler inputhander : GuiContainerManager.inputHandlers) { - // Preloader_Logger.INFO("Trying to handle events for "+aWindow.getClass().getName() + " | - // "+inputhander.getClass().getName()); - inputhander.onMouseUp(aWindow, mousex, mousey, button); - } - } - } -} diff --git a/src/main/java/gtPlusPlus/preloader/asm/helpers/MethodHelper_GT.java b/src/main/java/gtPlusPlus/preloader/asm/helpers/MethodHelper_GT.java deleted file mode 100644 index ab53e93ae7..0000000000 --- a/src/main/java/gtPlusPlus/preloader/asm/helpers/MethodHelper_GT.java +++ /dev/null @@ -1,24 +0,0 @@ -package gtPlusPlus.preloader.asm.helpers; - -import gregtech.api.enums.Materials; -import gregtech.api.items.GT_MetaGenerated_Tool; -import java.util.List; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - -public class MethodHelper_GT { - - public static final void getSubItems( - GT_MetaGenerated_Tool aTool, Item var1, CreativeTabs aCreativeTab, List aList) { - for (int i = 0; i < 32766; i += 2) { - if (aTool.getToolStats(new ItemStack(aTool, 1, i)) != null) { - ItemStack tStack = new ItemStack(aTool, 1, i); - aTool.isItemStackUsable(tStack); - aList.add(tStack); - aList.add(aTool.getToolWithStats(i, 1, Materials.TungstenSteel, Materials.TungstenSteel, null)); - aList.add(aTool.getToolWithStats(i, 1, Materials.Neutronium, Materials.Neutronium, null)); - } - } - } -} diff --git a/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_CC_GuiContainerManager.java b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_CC_GuiContainerManager.java deleted file mode 100644 index ee463d6cca..0000000000 --- a/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_CC_GuiContainerManager.java +++ /dev/null @@ -1,122 +0,0 @@ -package gtPlusPlus.preloader.asm.transformers; - -import static org.objectweb.asm.Opcodes.*; - -import gtPlusPlus.preloader.Preloader_Logger; -import org.apache.logging.log4j.Level; -import org.objectweb.asm.*; - -public class ClassTransformer_CC_GuiContainerManager { - - private final boolean isValid; - private final ClassReader reader; - private final ClassWriter writer; - - public ClassTransformer_CC_GuiContainerManager(byte[] basicClass) { - - ClassReader aTempReader = null; - ClassWriter aTempWriter = null; - - aTempReader = new ClassReader(basicClass); - aTempWriter = new ClassWriter(aTempReader, ClassWriter.COMPUTE_FRAMES); - localClassVisitor aTempMethodRemover = new localClassVisitor(aTempWriter); - aTempReader.accept(aTempMethodRemover, 0); - - if (aTempReader != null && aTempWriter != null) { - isValid = true; - } else { - isValid = false; - } - - Preloader_Logger.LOG("CodeChicken GuiContainerManager Patch", Level.INFO, "Valid patch? " + isValid + "."); - reader = aTempReader; - writer = aTempWriter; - - if (reader != null && writer != null) { - Preloader_Logger.LOG("CodeChicken GuiContainerManager Patch", Level.INFO, "Attempting Method Injection."); - injectMethod("mouseUp"); - } - } - - public boolean isValidTransformer() { - return isValid; - } - - public ClassReader getReader() { - return reader; - } - - public ClassWriter getWriter() { - return writer; - } - - public boolean injectMethod(String aMethodName) { - MethodVisitor mv; - boolean didInject = false; - String aClassName = "codechicken/nei/guihook/GuiContainerManager"; - ClassWriter cw = getWriter(); - if (aMethodName.equals("mouseUp")) { - Preloader_Logger.LOG( - "CodeChicken GuiContainerManager Patch", - Level.INFO, - "Injecting " + aMethodName + ", static replacement call to " + aClassName + "."); - mv = cw.visitMethod(ACC_PUBLIC, "mouseUp", "(III)V", null, null); - mv.visitCode(); - Label l0 = new Label(); - mv.visitLabel(l0); - mv.visitLineNumber(12, l0); - mv.visitVarInsn(ILOAD, 1); - mv.visitVarInsn(ILOAD, 2); - mv.visitVarInsn(ILOAD, 3); - mv.visitMethodInsn( - INVOKESTATIC, "gtPlusPlus/preloader/asm/helpers/MethodHelper_CC", "mouseUp", "(III)V", false); - Label l1 = new Label(); - mv.visitLabel(l1); - mv.visitLineNumber(13, l1); - mv.visitInsn(RETURN); - Label l2 = new Label(); - mv.visitLabel(l2); - mv.visitLocalVariable("this", "L+aClassName+;", null, l0, l2, 0); - mv.visitLocalVariable("mousex", "I", null, l0, l2, 1); - mv.visitLocalVariable("mousey", "I", null, l0, l2, 2); - mv.visitLocalVariable("button", "I", null, l0, l2, 3); - mv.visitMaxs(3, 4); - mv.visitEnd(); - didInject = true; - } - - Preloader_Logger.LOG("CodeChicken GuiContainerManager Patch", Level.INFO, "Method injection complete."); - return didInject; - } - - public final class localClassVisitor extends ClassVisitor { - - boolean obfuscated = false; - - public localClassVisitor(ClassVisitor cv) { - super(ASM5, cv); - } - - public boolean getObfuscatedRemoval() { - return obfuscated; - } - - @Override - public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) { - MethodVisitor methodVisitor; - - if (name.equals("mouseUp")) { - methodVisitor = null; - } else { - methodVisitor = super.visitMethod(access, name, desc, signature, exceptions); - } - - if (methodVisitor == null) { - Preloader_Logger.LOG( - "CodeChicken GuiContainerManager Patch", Level.INFO, "Found method " + name + ", removing."); - Preloader_Logger.LOG("CodeChicken GuiContainerManager Patch", Level.INFO, "Descriptor: " + desc); - } - return methodVisitor; - } - } -} diff --git a/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_Forge_EntityLivingBase_SetHealth.java b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_Forge_EntityLivingBase_SetHealth.java deleted file mode 100644 index e3821e8865..0000000000 --- a/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_Forge_EntityLivingBase_SetHealth.java +++ /dev/null @@ -1,109 +0,0 @@ -package gtPlusPlus.preloader.asm.transformers; - -import cpw.mods.fml.relauncher.FMLRelaunchLog; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.util.DamageSource; -import org.objectweb.asm.ClassReader; -import org.objectweb.asm.ClassVisitor; -import org.objectweb.asm.ClassWriter; -import org.objectweb.asm.MethodVisitor; -import org.objectweb.asm.Opcodes; - -public class ClassTransformer_Forge_EntityLivingBase_SetHealth { - - private boolean isValid = false; - private ClassReader mReader = null; - private ClassWriter mWriter = null; - private boolean didPatch = false; - - public ClassTransformer_Forge_EntityLivingBase_SetHealth(String aClassName, byte[] basicClass) { - if (basicClass == null) { - return; - } - - ClassReader reader = new ClassReader(basicClass); - ClassWriter writer = new ClassWriter(reader, ClassWriter.COMPUTE_MAXS); - ClassVisitor visitor = writer; - SetHealthVisitor aVisitor = new SetHealthVisitor(visitor); - visitor = aVisitor; - reader.accept(visitor, 0); - if (reader != null && writer != null) { - isValid = true; - } else { - isValid = false; - } - mReader = reader; - mWriter = writer; - didPatch = aVisitor.didPatchInternal; - } - - public boolean isValidTransformer() { - return isValid; - } - - public ClassReader getReader() { - return mReader; - } - - public ClassWriter getWriter() { - return mWriter; - } - - public static class SetHealthVisitor extends ClassVisitor { - private String clsName = null; - private boolean didPatchInternal = false; - private static final String callbackOwner = org.objectweb.asm.Type.getInternalName(SetHealthVisitor.class); - - private SetHealthVisitor(ClassVisitor cv) { - super(Opcodes.ASM5, cv); - } - - @Override - public void visit( - int version, int access, String name, String signature, String superName, String[] interfaces) { - super.visit(version, access, name, signature, superName, interfaces); - this.clsName = name; - } - - @Override - public MethodVisitor visitMethod( - int mAccess, final String mName, final String mDesc, String mSignature, String[] mExceptions) { - final boolean warn = !(clsName.equals("net/minecraft/entity/EntityLivingBase")); - - return new MethodVisitor(Opcodes.ASM5, super.visitMethod(mAccess, mName, mDesc, mSignature, mExceptions)) { - @Override - public void visitMethodInsn(int opcode, String owner, String name, String desc, boolean isIntf) { - if (owner.equals("net/minecraft/entity/EntityLivingBase") - && name.equals("setHealth") - && desc.equals("(F)V")) { - if (warn) { - FMLRelaunchLog.warning("============================================================="); - FMLRelaunchLog.warning("MOD HAS DIRECT REFERENCE Entity.setHealth() THIS IS NOT ALLOWED!"); - FMLRelaunchLog.warning("Offendor: %s.%s%s", SetHealthVisitor.this.clsName, mName, mDesc); - FMLRelaunchLog.warning( - "Use EntityLiving.attackEntityFrom(DamageSource, damageDealt) instead"); - FMLRelaunchLog.warning("============================================================="); - } - didPatchInternal = true; - // opcode = Opcodes.INVOKESTATIC; // Set it static - // owner = SetHealthVisitor.callbackOwner; - // name = "setHealthGeneric"; // Replace the method name - // desc = "(Lnet/minecraft/entity/EntityLivingBase;F)V"; // Replace the method desc - - } - super.visitMethodInsn(opcode, owner, name, desc, isIntf); - } - }; - } - - private static final DamageSource mGenericDamageSource = new DamageSource("gtpp.generic"); - - public static void setHealthGeneric(EntityLivingBase aEntity, float aValue) { - aEntity.attackEntityFrom(mGenericDamageSource, aValue); - } - } - - public boolean didPatchClass() { - return didPatch; - } -} diff --git a/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_Achievements.java b/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_Achievements.java deleted file mode 100644 index 0ee90e43a7..0000000000 --- a/src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_Achievements.java +++ /dev/null @@ -1,2452 +0,0 @@ -package gtPlusPlus.preloader.asm.transformers; - -import static org.objectweb.asm.Opcodes.*; - -import cpw.mods.fml.relauncher.FMLRelaunchLog; -import org.apache.logging.log4j.Level; -import org.objectweb.asm.AnnotationVisitor; -import org.objectweb.asm.ClassReader; -import org.objectweb.asm.ClassVisitor; -import org.objectweb.asm.ClassWriter; -import org.objectweb.asm.Label; -import org.objectweb.asm.MethodVisitor; - -public class ClassTransformer_GT_Achievements { - - private final boolean isValid; - private final ClassReader reader; - private final ClassWriter writer; - private static boolean mDidRemoveAssLineRecipeAdder = false; - - public ClassTransformer_GT_Achievements(byte[] basicClass) { - - ClassReader aTempReader = null; - ClassWriter aTempWriter = null; - - aTempReader = new ClassReader(basicClass); - aTempWriter = new ClassWriter(aTempReader, ClassWriter.COMPUTE_FRAMES); - - aTempReader.accept(new MethodAdaptor(aTempWriter), 0); - - if (mDidRemoveAssLineRecipeAdder) { - FMLRelaunchLog.log("[GT++ ASM] Gregtech Achievements Patch", Level.INFO, "Patching GT .09"); - injectMethod(aTempWriter); - patchOnItemPickup09(aTempWriter); - } else { - FMLRelaunchLog.log("[GT++ ASM] Gregtech Achievements Patch", Level.INFO, "Patching GT .08"); - patchOnItemPickup08(aTempWriter); - } - - if (aTempReader != null && aTempWriter != null) { - isValid = true; - } else { - isValid = false; - } - - FMLRelaunchLog.log("[GT++ ASM] Gregtech Achievements Patch", Level.INFO, "Valid? " + isValid + "."); - reader = aTempReader; - writer = aTempWriter; - } - - public boolean isValidTransformer() { - return isValid; - } - - public ClassReader getReader() { - return reader; - } - - public ClassWriter getWriter() { - return writer; - } - - public boolean injectMethod(ClassWriter cw) { - MethodVisitor mv; - boolean didInject = false; - FMLRelaunchLog.log( - "[GT++ ASM] Gregtech Achievements Patch", Level.INFO, "Injecting " + "registerAssAchievement" + "."); - - /** - * Inject new, safer code - */ - - /*mv = cw.visitMethod(ACC_PUBLIC, "registerAssAchievement", "(Lgregtech/api/util/GT_Recipe;)Lnet/minecraft/stats/Achievement;", null, null); - mv.visitCode(); - Label l0 = new Label(); - Label l1 = new Label(); - Label l2 = new Label(); - mv.visitTryCatchBlock(l0, l1, l2, "java/lang/Throwable"); - Label l3 = new Label(); - mv.visitLabel(l3); - mv.visitLineNumber(291, l3); - mv.visitVarInsn(ALOAD, 1); - Label l4 = new Label(); - mv.visitJumpInsn(IFNONNULL, l4); - Label l5 = new Label(); - mv.visitLabel(l5); - mv.visitLineNumber(292, l5); - mv.visitLdcInsn("Someone tried to register an achievement for an invalid recipe. Please report this to Alkalus."); - mv.visitMethodInsn(INVOKESTATIC, "gtPlusPlus/api/objects/Logger", "INFO", "(Ljava/lang/String;)V", false); - Label l6 = new Label(); - mv.visitLabel(l6); - mv.visitLineNumber(293, l6); - mv.visitInsn(ACONST_NULL); - mv.visitInsn(ARETURN); - mv.visitLabel(l4); - mv.visitLineNumber(295, l4); - mv.visitFrame(F_SAME, 0, null, 0, null); - mv.visitVarInsn(ALOAD, 1); - mv.visitInsn(ICONST_0); - mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/api/util/GT_Recipe", "getOutput", "(I)Lnet/minecraft/item/ItemStack;", false); - Label l7 = new Label(); - mv.visitJumpInsn(IFNONNULL, l7); - Label l8 = new Label(); - mv.visitLabel(l8); - mv.visitLineNumber(296, l8); - mv.visitLdcInsn("Someone tried to register an achievement for a recipe with null output. Please report this to Alkalus."); - mv.visitMethodInsn(INVOKESTATIC, "gtPlusPlus/api/objects/Logger", "INFO", "(Ljava/lang/String;)V", false); - Label l9 = new Label(); - mv.visitLabel(l9); - mv.visitLineNumber(297, l9); - mv.visitInsn(ACONST_NULL); - mv.visitInsn(ARETURN); - mv.visitLabel(l7); - mv.visitLineNumber(299, l7); - mv.visitFrame(F_SAME, 0, null, 0, null); - mv.visitVarInsn(ALOAD, 1); - mv.visitInsn(ICONST_0); - mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/api/util/GT_Recipe", "getOutput", "(I)Lnet/minecraft/item/ItemStack;", false); - mv.visitVarInsn(ASTORE, 3); - mv.visitLabel(l0); - mv.visitLineNumber(301, l0); - mv.visitVarInsn(ALOAD, 3); - mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false); - mv.visitVarInsn(ASTORE, 2); - mv.visitLabel(l1); - mv.visitLineNumber(302, l1); - Label l10 = new Label(); - mv.visitJumpInsn(GOTO, l10); - mv.visitLabel(l2); - mv.visitLineNumber(303, l2); - mv.visitFrame(F_FULL, 4, new Object[] {"gregtech/loaders/misc/GT_Achievements", "gregtech/api/util/GT_Recipe", TOP, "net/minecraft/item/ItemStack"}, 1, new Object[] {"java/lang/Throwable"}); - mv.visitVarInsn(ASTORE, 4); - Label l11 = new Label(); - mv.visitLabel(l11); - mv.visitLineNumber(304, l11); - mv.visitVarInsn(ALOAD, 3); - mv.visitMethodInsn(INVOKESTATIC, "gtPlusPlus/core/util/minecraft/ItemUtils", "getUnlocalizedItemName", "(Lnet/minecraft/item/ItemStack;)Ljava/lang/String;", false); - mv.visitVarInsn(ASTORE, 2); - mv.visitLabel(l10); - mv.visitLineNumber(306, l10); - mv.visitFrame(F_FULL, 4, new Object[] {"gregtech/loaders/misc/GT_Achievements", "gregtech/api/util/GT_Recipe", "java/lang/String", "net/minecraft/item/ItemStack"}, 0, new Object[] {}); - mv.visitVarInsn(ALOAD, 0); - mv.visitFieldInsn(GETFIELD, "gregtech/loaders/misc/GT_Achievements", "achievementList", "Ljava/util/concurrent/ConcurrentHashMap;"); - mv.visitVarInsn(ALOAD, 2); - mv.visitMethodInsn(INVOKEVIRTUAL, "java/util/concurrent/ConcurrentHashMap", "get", "(Ljava/lang/Object;)Ljava/lang/Object;", false); - Label l12 = new Label(); - mv.visitJumpInsn(IFNONNULL, l12); - Label l13 = new Label(); - mv.visitLabel(l13); - mv.visitLineNumber(307, l13); - mv.visitFieldInsn(GETSTATIC, "gregtech/loaders/misc/GT_Achievements", "assReg", "I"); - mv.visitInsn(ICONST_1); - mv.visitInsn(IADD); - mv.visitFieldInsn(PUTSTATIC, "gregtech/loaders/misc/GT_Achievements", "assReg", "I"); - Label l14 = new Label(); - mv.visitLabel(l14); - mv.visitLineNumber(308, l14); - mv.visitVarInsn(ALOAD, 0); - mv.visitVarInsn(ALOAD, 2); - mv.visitIntInsn(BIPUSH, 11); - mv.visitFieldInsn(GETSTATIC, "gregtech/loaders/misc/GT_Achievements", "assReg", "I"); - mv.visitInsn(ICONST_5); - mv.visitInsn(IREM); - mv.visitInsn(IADD); - mv.visitInsn(INEG); - mv.visitFieldInsn(GETSTATIC, "gregtech/loaders/misc/GT_Achievements", "assReg", "I"); - mv.visitInsn(ICONST_5); - mv.visitInsn(IDIV); - mv.visitIntInsn(BIPUSH, 8); - mv.visitInsn(ISUB); - mv.visitVarInsn(ALOAD, 1); - mv.visitInsn(ICONST_0); - mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/api/util/GT_Recipe", "getOutput", "(I)Lnet/minecraft/item/ItemStack;", false); - mv.visitFieldInsn(GETSTATIC, "net/minecraft/stats/AchievementList", "openInventory", "Lnet/minecraft/stats/Achievement;"); - mv.visitInsn(ICONST_0); - mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/loaders/misc/GT_Achievements", "registerAchievement", "(Ljava/lang/String;IILnet/minecraft/item/ItemStack;Lnet/minecraft/stats/Achievement;Z)Lnet/minecraft/stats/Achievement;", false); - mv.visitInsn(ARETURN); - mv.visitLabel(l12); - mv.visitLineNumber(310, l12); - mv.visitFrame(F_SAME, 0, null, 0, null); - mv.visitInsn(ACONST_NULL); - mv.visitInsn(ARETURN); - Label l15 = new Label(); - mv.visitLabel(l15); - mv.visitLocalVariable("this", "Lgregtech/loaders/misc/GT_Achievements;", null, l3, l15, 0); - mv.visitLocalVariable("recipe", "Lgregtech/api/util/GT_Recipe;", null, l3, l15, 1); - mv.visitLocalVariable("aSafeUnlocalName", "Ljava/lang/String;", null, l1, l2, 2); - mv.visitLocalVariable("aSafeUnlocalName", "Ljava/lang/String;", null, l10, l15, 2); - mv.visitLocalVariable("aStack", "Lnet/minecraft/item/ItemStack;", null, l0, l15, 3); - mv.visitLocalVariable("t", "Ljava/lang/Throwable;", null, l11, l10, 4); - mv.visitMaxs(7, 5); - mv.visitEnd();*/ - - // Lets just static call my replacement function - mv = cw.visitMethod( - ACC_PUBLIC, - "registerAssAchievement", - "(Lgregtech/api/util/GT_Recipe;)Lnet/minecraft/stats/Achievement;", - null, - null); - mv.visitCode(); - Label l0 = new Label(); - mv.visitLabel(l0); - mv.visitLineNumber(291, l0); - mv.visitVarInsn(ALOAD, 1); - mv.visitMethodInsn( - INVOKESTATIC, - "gtPlusPlus/xmod/gregtech/loaders/misc/AssLineAchievements", - "registerAssAchievement", - "(Lgregtech/api/util/GT_Recipe;)Lnet/minecraft/stats/Achievement;", - false); - mv.visitInsn(ARETURN); - Label l1 = new Label(); - mv.visitLabel(l1); - mv.visitLocalVariable("this", "Lgregtech/loaders/misc/GT_Achievements;", null, l0, l1, 0); - mv.visitLocalVariable("recipe", "Lgregtech/api/util/GT_Recipe;", null, l0, l1, 1); - mv.visitMaxs(1, 2); - mv.visitEnd(); - - didInject = true; - FMLRelaunchLog.log("[GT++ ASM] Gregtech Achievements Patch", Level.INFO, "Method injection complete."); - return didInject; - } - - public boolean patchOnItemPickup08(ClassWriter cw) { - MethodVisitor mv; - boolean didInject = false; - FMLRelaunchLog.log("[GT++ ASM] Gregtech Achievements Patch", Level.INFO, "Injecting " + "onItemPickup" + "."); - - AnnotationVisitor av0; - mv = cw.visitMethod( - ACC_PUBLIC, - "onItemPickup", - "(Lnet/minecraftforge/event/entity/player/EntityItemPickupEvent;)V", - null, - null); - av0 = mv.visitAnnotation("Lcpw/mods/fml/common/eventhandler/SubscribeEvent;", true); - av0.visitEnd(); - mv.visitCode(); - Label l0 = new Label(); - mv.visitLabel(l0); - mv.visitLineNumber(418, l0); - mv.visitVarInsn(ALOAD, 1); - mv.visitFieldInsn( - GETFIELD, - "net/minecraftforge/event/entity/player/EntityItemPickupEvent", - "entityPlayer", - "Lnet/minecraft/entity/player/EntityPlayer;"); - mv.visitVarInsn(ASTORE, 2); - Label l1 = new Label(); - mv.visitLabel(l1); - mv.visitLineNumber(419, l1); - mv.visitVarInsn(ALOAD, 1); - mv.visitFieldInsn( - GETFIELD, - "net/minecraftforge/event/entity/player/EntityItemPickupEvent", - "item", - "Lnet/minecraft/entity/item/EntityItem;"); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "net/minecraft/entity/item/EntityItem", - "getEntityItem", - "()Lnet/minecraft/item/ItemStack;", - false); - mv.visitVarInsn(ASTORE, 3); - Label l2 = new Label(); - mv.visitLabel(l2); - mv.visitLineNumber(420, l2); - mv.visitVarInsn(ALOAD, 2); - Label l3 = new Label(); - mv.visitJumpInsn(IFNULL, l3); - mv.visitVarInsn(ALOAD, 3); - Label l4 = new Label(); - mv.visitJumpInsn(IFNONNULL, l4); - mv.visitLabel(l3); - mv.visitLineNumber(421, l3); - mv.visitFrame( - F_APPEND, - 2, - new Object[] {"net/minecraft/entity/player/EntityPlayer", "net/minecraft/item/ItemStack"}, - 0, - null); - mv.visitInsn(RETURN); - mv.visitLabel(l4); - mv.visitLineNumber(424, l4); - mv.visitFrame(F_SAME, 0, null, 0, null); - mv.visitVarInsn(ALOAD, 3); - mv.visitMethodInsn( - INVOKESTATIC, - "gregtech/api/util/GT_OreDictUnificator", - "getItemData", - "(Lnet/minecraft/item/ItemStack;)Lgregtech/api/objects/ItemData;", - false); - mv.visitVarInsn(ASTORE, 4); - Label l5 = new Label(); - mv.visitLabel(l5); - mv.visitLineNumber(425, l5); - mv.visitVarInsn(ALOAD, 4); - Label l6 = new Label(); - mv.visitJumpInsn(IFNULL, l6); - Label l7 = new Label(); - mv.visitLabel(l7); - mv.visitLineNumber(426, l7); - mv.visitVarInsn(ALOAD, 4); - mv.visitFieldInsn(GETFIELD, "gregtech/api/objects/ItemData", "mPrefix", "Lgregtech/api/enums/OrePrefixes;"); - mv.visitFieldInsn(GETSTATIC, "gregtech/api/enums/OrePrefixes", "dust", "Lgregtech/api/enums/OrePrefixes;"); - Label l8 = new Label(); - mv.visitJumpInsn(IF_ACMPNE, l8); - Label l9 = new Label(); - mv.visitLabel(l9); - mv.visitLineNumber(427, l9); - mv.visitVarInsn(ALOAD, 4); - mv.visitFieldInsn( - GETFIELD, "gregtech/api/objects/ItemData", "mMaterial", "Lgregtech/api/objects/MaterialStack;"); - mv.visitFieldInsn( - GETFIELD, "gregtech/api/objects/MaterialStack", "mMaterial", "Lgregtech/api/enums/Materials;"); - mv.visitFieldInsn(GETSTATIC, "gregtech/api/enums/Materials", "Lutetium", "Lgregtech/api/enums/Materials;"); - Label l10 = new Label(); - mv.visitJumpInsn(IF_ACMPNE, l10); - Label l11 = new Label(); - mv.visitLabel(l11); - mv.visitLineNumber(428, l11); - mv.visitVarInsn(ALOAD, 0); - mv.visitVarInsn(ALOAD, 2); - mv.visitLdcInsn("newmetal"); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "gregtech/loaders/misc/GT_Achievements", - "issueAchievement", - "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", - false); - mv.visitLabel(l10); - mv.visitLineNumber(430, l10); - mv.visitFrame(F_APPEND, 1, new Object[] {"gregtech/api/objects/ItemData"}, 0, null); - mv.visitVarInsn(ALOAD, 0); - mv.visitVarInsn(ALOAD, 2); - mv.visitLdcInsn("cleandust"); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "gregtech/loaders/misc/GT_Achievements", - "issueAchievement", - "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", - false); - Label l12 = new Label(); - mv.visitLabel(l12); - mv.visitLineNumber(431, l12); - mv.visitJumpInsn(GOTO, l6); - mv.visitLabel(l8); - mv.visitFrame(F_SAME, 0, null, 0, null); - mv.visitVarInsn(ALOAD, 4); - mv.visitFieldInsn(GETFIELD, "gregtech/api/objects/ItemData", "mPrefix", "Lgregtech/api/enums/OrePrefixes;"); - mv.visitFieldInsn(GETSTATIC, "gregtech/api/enums/OrePrefixes", "ore", "Lgregtech/api/enums/OrePrefixes;"); - Label l13 = new Label(); - mv.visitJumpInsn(IF_ACMPEQ, l13); - mv.visitVarInsn(ALOAD, 4); - mv.visitFieldInsn(GETFIELD, "gregtech/api/objects/ItemData", "mPrefix", "Lgregtech/api/enums/OrePrefixes;"); - mv.visitFieldInsn( - GETSTATIC, "gregtech/api/enums/OrePrefixes", "oreBlackgranite", "Lgregtech/api/enums/OrePrefixes;"); - mv.visitJumpInsn(IF_ACMPEQ, l13); - mv.visitVarInsn(ALOAD, 4); - mv.visitFieldInsn(GETFIELD, "gregtech/api/objects/ItemData", "mPrefix", "Lgregtech/api/enums/OrePrefixes;"); - mv.visitFieldInsn( - GETSTATIC, "gregtech/api/enums/OrePrefixes", "oreEndstone", "Lgregtech/api/enums/OrePrefixes;"); - mv.visitJumpInsn(IF_ACMPEQ, l13); - Label l14 = new Label(); - mv.visitLabel(l14); - mv.visitLineNumber(432, l14); - mv.visitVarInsn(ALOAD, 4); - mv.visitFieldInsn(GETFIELD, "gregtech/api/objects/ItemData", "mPrefix", "Lgregtech/api/enums/OrePrefixes;"); - mv.visitFieldInsn( - GETSTATIC, "gregtech/api/enums/OrePrefixes", "oreNetherrack", "Lgregtech/api/enums/OrePrefixes;"); - mv.visitJumpInsn(IF_ACMPEQ, l13); - mv.visitVarInsn(ALOAD, 4); - mv.visitFieldInsn(GETFIELD, "gregtech/api/objects/ItemData", "mPrefix", "Lgregtech/api/enums/OrePrefixes;"); - mv.visitFieldInsn( - GETSTATIC, "gregtech/api/enums/OrePrefixes", "oreRedgranite", "Lgregtech/api/enums/OrePrefixes;"); - Label l15 = new Label(); - mv.visitJumpInsn(IF_ACMPNE, l15); - mv.visitLabel(l13); - mv.visitLineNumber(433, l13); - mv.visitFrame(F_SAME, 0, null, 0, null); - mv.visitInsn(ICONST_0); - mv.visitVarInsn(ISTORE, 5); - Label l16 = new Label(); - mv.visitLabel(l16); - Label l17 = new Label(); - mv.visitJumpInsn(GOTO, l17); - Label l18 = new Label(); - mv.visitLabel(l18); - mv.visitLineNumber(434, l18); - mv.visitFrame(F_APPEND, 1, new Object[] {INTEGER}, 0, null); - mv.visitVarIns |
