From 908d0ccaf9ecb15d97c60b6c8088740c3f53316d Mon Sep 17 00:00:00 2001 From: Glease <4586901+Glease@users.noreply.github.com> Date: Sun, 4 Sep 2022 00:14:55 +0800 Subject: 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 --- src/main/java/gtPlusPlus/GTplusplus.java | 5 + .../preloader/asm/helpers/MethodHelper_CC.java | 28 - .../preloader/asm/helpers/MethodHelper_GT.java | 24 - .../ClassTransformer_CC_GuiContainerManager.java | 122 - ...ansformer_Forge_EntityLivingBase_SetHealth.java | 109 - .../ClassTransformer_GT_Achievements.java | 2452 -------------------- .../ClassTransformer_GT_Achievements_CrashFix.java | 244 -- .../ClassTransformer_GT_BaseMetaTileEntity.java | 179 -- ...ransformer_GT_BlockMachines_MetaPipeEntity.java | 312 --- .../ClassTransformer_GT_BlockMachines_NBT.java | 218 -- .../ClassTransformer_GT_CharcoalPit.java | 201 -- .../transformers/ClassTransformer_GT_Client.java | 417 ---- .../ClassTransformer_GT_ItemMachines_Tooltip.java | 153 -- .../ClassTransformer_GT_MetaGenerated_Tool.java | 124 - .../ClassTransformer_GT_Packet_TileEntity.java | 373 --- .../transformers/ClassTransformer_GT_Utility.java | 337 --- .../transformers/ClassTransformer_IC2_Hazmat.java | 147 -- .../Preloader_Transformer_Handler.java | 122 - 18 files changed, 5 insertions(+), 5562 deletions(-) delete mode 100644 src/main/java/gtPlusPlus/preloader/asm/helpers/MethodHelper_CC.java delete mode 100644 src/main/java/gtPlusPlus/preloader/asm/helpers/MethodHelper_GT.java delete mode 100644 src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_CC_GuiContainerManager.java delete mode 100644 src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_Forge_EntityLivingBase_SetHealth.java delete mode 100644 src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_Achievements.java delete mode 100644 src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_Achievements_CrashFix.java delete mode 100644 src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_BaseMetaTileEntity.java delete mode 100644 src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_BlockMachines_MetaPipeEntity.java delete mode 100644 src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_BlockMachines_NBT.java delete mode 100644 src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_CharcoalPit.java delete mode 100644 src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_Client.java delete mode 100644 src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_ItemMachines_Tooltip.java delete mode 100644 src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_MetaGenerated_Tool.java delete mode 100644 src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_Packet_TileEntity.java delete mode 100644 src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_Utility.java delete mode 100644 src/main/java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_IC2_Hazmat.java (limited to 'src/main/java') 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.visitVarInsn(ALOAD, 0); - mv.visitVarInsn(ALOAD, 2); - mv.visitVarInsn(ALOAD, 4); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "gregtech/api/objects/ItemData", - "getAllMaterialStacks", - "()Ljava/util/ArrayList;", - false); - mv.visitVarInsn(ILOAD, 5); - mv.visitMethodInsn(INVOKEVIRTUAL, "java/util/ArrayList", "get", "(I)Ljava/lang/Object;", false); - mv.visitTypeInsn(CHECKCAST, "gregtech/api/objects/MaterialStack"); - mv.visitFieldInsn( - GETFIELD, "gregtech/api/objects/MaterialStack", "mMaterial", "Lgregtech/api/enums/Materials;"); - mv.visitMethodInsn(INVOKEVIRTUAL, "gregtech/api/enums/Materials", "name", "()Ljava/lang/String;", false); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "gregtech/loaders/misc/GT_Achievements", - "issueAchievement", - "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", - false); - Label l19 = new Label(); - mv.visitLabel(l19); - mv.visitLineNumber(435, l19); - mv.visitVarInsn(ALOAD, 4); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "gregtech/api/objects/ItemData", - "getAllMaterialStacks", - "()Ljava/util/ArrayList;", - false); - mv.visitVarInsn(ILOAD, 5); - mv.visitMethodInsn(INVOKEVIRTUAL, "java/util/ArrayList", "get", "(I)Ljava/lang/Object;", false); - mv.visitTypeInsn(CHECKCAST, "gregtech/api/objects/MaterialStack"); - mv.visitFieldInsn( - GETFIELD, "gregtech/api/objects/MaterialStack", "mMaterial", "Lgregtech/api/enums/Materials;"); - mv.visitFieldInsn(GETSTATIC, "gregtech/api/enums/Materials", "AnyIron", "Lgregtech/api/enums/Materials;"); - Label l20 = new Label(); - mv.visitJumpInsn(IF_ACMPNE, l20); - Label l21 = new Label(); - mv.visitLabel(l21); - mv.visitLineNumber(436, l21); - mv.visitVarInsn(ALOAD, 0); - mv.visitVarInsn(ALOAD, 2); - mv.visitLdcInsn("iron"); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "gregtech/loaders/misc/GT_Achievements", - "issueAchievement", - "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", - false); - mv.visitLabel(l20); - mv.visitLineNumber(433, l20); - mv.visitFrame(F_SAME, 0, null, 0, null); - mv.visitIincInsn(5, 1); - mv.visitLabel(l17); - mv.visitFrame(F_SAME, 0, null, 0, null); - mv.visitVarInsn(ILOAD, 5); - mv.visitVarInsn(ALOAD, 4); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "gregtech/api/objects/ItemData", - "getAllMaterialStacks", - "()Ljava/util/ArrayList;", - false); - mv.visitMethodInsn(INVOKEVIRTUAL, "java/util/ArrayList", "size", "()I", false); - mv.visitJumpInsn(IF_ICMPLT, l18); - Label l22 = new Label(); - mv.visitLabel(l22); - mv.visitLineNumber(439, l22); - mv.visitJumpInsn(GOTO, l6); - mv.visitLabel(l15); - mv.visitFrame(F_CHOP, 1, 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", "crushed", "Lgregtech/api/enums/OrePrefixes;"); - Label l23 = new Label(); - mv.visitJumpInsn(IF_ACMPNE, l23); - Label l24 = new Label(); - mv.visitLabel(l24); - mv.visitLineNumber(440, l24); - mv.visitVarInsn(ALOAD, 0); - mv.visitVarInsn(ALOAD, 2); - mv.visitLdcInsn("crushed"); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "gregtech/loaders/misc/GT_Achievements", - "issueAchievement", - "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", - false); - Label l25 = new Label(); - mv.visitLabel(l25); - mv.visitLineNumber(441, l25); - mv.visitJumpInsn(GOTO, l6); - mv.visitLabel(l23); - 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", "crushedPurified", "Lgregtech/api/enums/OrePrefixes;"); - Label l26 = new Label(); - mv.visitJumpInsn(IF_ACMPNE, l26); - Label l27 = new Label(); - mv.visitLabel(l27); - mv.visitLineNumber(442, l27); - mv.visitVarInsn(ALOAD, 0); - mv.visitVarInsn(ALOAD, 2); - mv.visitLdcInsn("washing"); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "gregtech/loaders/misc/GT_Achievements", - "issueAchievement", - "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", - false); - Label l28 = new Label(); - mv.visitLabel(l28); - mv.visitLineNumber(443, l28); - mv.visitJumpInsn(GOTO, l6); - mv.visitLabel(l26); - 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", "crushedCentrifuged", "Lgregtech/api/enums/OrePrefixes;"); - Label l29 = new Label(); - mv.visitJumpInsn(IF_ACMPNE, l29); - Label l30 = new Label(); - mv.visitLabel(l30); - mv.visitLineNumber(444, l30); - mv.visitVarInsn(ALOAD, 0); - mv.visitVarInsn(ALOAD, 2); - mv.visitLdcInsn("spinit"); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "gregtech/loaders/misc/GT_Achievements", - "issueAchievement", - "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", - false); - Label l31 = new Label(); - mv.visitLabel(l31); - mv.visitLineNumber(445, l31); - mv.visitJumpInsn(GOTO, l6); - mv.visitLabel(l29); - mv.visitFrame(F_SAME, 0, null, 0, null); - 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", "Steel", "Lgregtech/api/enums/Materials;"); - Label l32 = new Label(); - mv.visitJumpInsn(IF_ACMPNE, l32); - Label l33 = new Label(); - mv.visitLabel(l33); - mv.visitLineNumber(446, l33); - mv.visitVarInsn(ALOAD, 4); - mv.visitFieldInsn(GETFIELD, "gregtech/api/objects/ItemData", "mPrefix", "Lgregtech/api/enums/OrePrefixes;"); - mv.visitFieldInsn(GETSTATIC, "gregtech/api/enums/OrePrefixes", "ingot", "Lgregtech/api/enums/OrePrefixes;"); - Label l34 = new Label(); - mv.visitJumpInsn(IF_ACMPNE, l34); - mv.visitVarInsn(ALOAD, 3); - mv.visitFieldInsn(GETFIELD, "net/minecraft/item/ItemStack", "stackSize", "I"); - mv.visitVarInsn(ALOAD, 3); - mv.visitMethodInsn(INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getMaxStackSize", "()I", false); - mv.visitJumpInsn(IF_ICMPNE, l34); - Label l35 = new Label(); - mv.visitLabel(l35); - mv.visitLineNumber(447, l35); - mv.visitVarInsn(ALOAD, 0); - mv.visitVarInsn(ALOAD, 2); - mv.visitLdcInsn("steel"); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "gregtech/loaders/misc/GT_Achievements", - "issueAchievement", - "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", - false); - Label l36 = new Label(); - mv.visitLabel(l36); - mv.visitLineNumber(448, l36); - mv.visitJumpInsn(GOTO, l6); - mv.visitLabel(l34); - 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", "nugget", "Lgregtech/api/enums/OrePrefixes;"); - mv.visitJumpInsn(IF_ACMPNE, l6); - mv.visitLdcInsn("Thaumcraft"); - mv.visitMethodInsn(INVOKESTATIC, "cpw/mods/fml/common/Loader", "isModLoaded", "(Ljava/lang/String;)Z", false); - mv.visitJumpInsn(IFEQ, l6); - Label l37 = new Label(); - mv.visitLabel(l37); - mv.visitLineNumber(449, l37); - mv.visitVarInsn(ALOAD, 2); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "net/minecraft/entity/player/EntityPlayer", - "getDisplayName", - "()Ljava/lang/String;", - false); - mv.visitLdcInsn("GT_IRON_TO_STEEL"); - mv.visitMethodInsn( - INVOKESTATIC, - "thaumcraft/api/ThaumcraftApiHelper", - "isResearchComplete", - "(Ljava/lang/String;Ljava/lang/String;)Z", - false); - mv.visitJumpInsn(IFEQ, l6); - Label l38 = new Label(); - mv.visitLabel(l38); - mv.visitLineNumber(450, l38); - mv.visitVarInsn(ALOAD, 0); - mv.visitVarInsn(ALOAD, 2); - mv.visitLdcInsn("steel"); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "gregtech/loaders/misc/GT_Achievements", - "issueAchievement", - "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", - false); - Label l39 = new Label(); - mv.visitLabel(l39); - mv.visitLineNumber(453, l39); - mv.visitJumpInsn(GOTO, l6); - mv.visitLabel(l32); - 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", "circuit", "Lgregtech/api/enums/OrePrefixes;"); - mv.visitJumpInsn(IF_ACMPNE, l6); - 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", "Advanced", "Lgregtech/api/enums/Materials;"); - mv.visitJumpInsn(IF_ACMPNE, l6); - Label l40 = new Label(); - mv.visitLabel(l40); - mv.visitLineNumber(454, l40); - mv.visitVarInsn(ALOAD, 0); - mv.visitVarInsn(ALOAD, 2); - mv.visitLdcInsn("stepforward"); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "gregtech/loaders/misc/GT_Achievements", - "issueAchievement", - "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", - false); - mv.visitLabel(l6); - mv.visitLineNumber(457, l6); - mv.visitFrame(F_SAME, 0, null, 0, null); - mv.visitVarInsn(ALOAD, 3); - mv.visitMethodInsn( - INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false); - mv.visitLdcInsn("gt.metaitem."); - mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "startsWith", "(Ljava/lang/String;)Z", false); - Label l41 = new Label(); - mv.visitJumpInsn(IFEQ, l41); - Label l42 = new Label(); - mv.visitLabel(l42); - mv.visitLineNumber(458, l42); - mv.visitVarInsn(ALOAD, 3); - mv.visitMethodInsn( - INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false); - mv.visitLdcInsn("gt.metaitem.02.32500"); - mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false); - Label l43 = new Label(); - mv.visitJumpInsn(IFEQ, l43); - Label l44 = new Label(); - mv.visitLabel(l44); - mv.visitLineNumber(459, l44); - mv.visitVarInsn(ALOAD, 0); - mv.visitVarInsn(ALOAD, 2); - mv.visitLdcInsn("havestlead"); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "gregtech/loaders/misc/GT_Achievements", - "issueAchievement", - "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", - false); - Label l45 = new Label(); - mv.visitLabel(l45); - mv.visitLineNumber(460, l45); - mv.visitJumpInsn(GOTO, l41); - mv.visitLabel(l43); - mv.visitFrame(F_SAME, 0, null, 0, null); - mv.visitVarInsn(ALOAD, 3); - mv.visitMethodInsn( - INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false); - mv.visitLdcInsn("gt.metaitem.02.32501"); - mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false); - Label l46 = new Label(); - mv.visitJumpInsn(IFEQ, l46); - Label l47 = new Label(); - mv.visitLabel(l47); - mv.visitLineNumber(461, l47); - mv.visitVarInsn(ALOAD, 0); - mv.visitVarInsn(ALOAD, 2); - mv.visitLdcInsn("havestsilver"); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "gregtech/loaders/misc/GT_Achievements", - "issueAchievement", - "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", - false); - Label l48 = new Label(); - mv.visitLabel(l48); - mv.visitLineNumber(462, l48); - mv.visitJumpInsn(GOTO, l41); - mv.visitLabel(l46); - mv.visitFrame(F_SAME, 0, null, 0, null); - mv.visitVarInsn(ALOAD, 3); - mv.visitMethodInsn( - INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false); - mv.visitLdcInsn("gt.metaitem.02.32503"); - mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false); - Label l49 = new Label(); - mv.visitJumpInsn(IFEQ, l49); - Label l50 = new Label(); - mv.visitLabel(l50); - mv.visitLineNumber(463, l50); - mv.visitVarInsn(ALOAD, 0); - mv.visitVarInsn(ALOAD, 2); - mv.visitLdcInsn("havestiron"); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "gregtech/loaders/misc/GT_Achievements", - "issueAchievement", - "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", - false); - Label l51 = new Label(); - mv.visitLabel(l51); - mv.visitLineNumber(464, l51); - mv.visitJumpInsn(GOTO, l41); - mv.visitLabel(l49); - mv.visitFrame(F_SAME, 0, null, 0, null); - mv.visitVarInsn(ALOAD, 3); - mv.visitMethodInsn( - INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false); - mv.visitLdcInsn("gt.metaitem.02.32504"); - mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false); - Label l52 = new Label(); - mv.visitJumpInsn(IFEQ, l52); - Label l53 = new Label(); - mv.visitLabel(l53); - mv.visitLineNumber(465, l53); - mv.visitVarInsn(ALOAD, 0); - mv.visitVarInsn(ALOAD, 2); - mv.visitLdcInsn("havestgold"); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "gregtech/loaders/misc/GT_Achievements", - "issueAchievement", - "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", - false); - Label l54 = new Label(); - mv.visitLabel(l54); - mv.visitLineNumber(466, l54); - mv.visitJumpInsn(GOTO, l41); - mv.visitLabel(l52); - mv.visitFrame(F_SAME, 0, null, 0, null); - mv.visitVarInsn(ALOAD, 3); - mv.visitMethodInsn( - INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false); - mv.visitLdcInsn("gt.metaitem.02.32530"); - mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false); - Label l55 = new Label(); - mv.visitJumpInsn(IFEQ, l55); - Label l56 = new Label(); - mv.visitLabel(l56); - mv.visitLineNumber(467, l56); - mv.visitVarInsn(ALOAD, 0); - mv.visitVarInsn(ALOAD, 2); - mv.visitLdcInsn("havestcopper"); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "gregtech/loaders/misc/GT_Achievements", - "issueAchievement", - "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", - false); - Label l57 = new Label(); - mv.visitLabel(l57); - mv.visitLineNumber(468, l57); - mv.visitJumpInsn(GOTO, l41); - mv.visitLabel(l55); - mv.visitFrame(F_SAME, 0, null, 0, null); - mv.visitVarInsn(ALOAD, 3); - mv.visitMethodInsn( - INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false); - mv.visitLdcInsn("gt.metaitem.02.32540"); - mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false); - Label l58 = new Label(); - mv.visitJumpInsn(IFEQ, l58); - Label l59 = new Label(); - mv.visitLabel(l59); - mv.visitLineNumber(469, l59); - mv.visitVarInsn(ALOAD, 0); - mv.visitVarInsn(ALOAD, 2); - mv.visitLdcInsn("havesttin"); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "gregtech/loaders/misc/GT_Achievements", - "issueAchievement", - "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", - false); - Label l60 = new Label(); - mv.visitLabel(l60); - mv.visitLineNumber(470, l60); - mv.visitJumpInsn(GOTO, l41); - mv.visitLabel(l58); - mv.visitFrame(F_SAME, 0, null, 0, null); - mv.visitVarInsn(ALOAD, 3); - mv.visitMethodInsn( - INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false); - mv.visitLdcInsn("gt.metaitem.02.32510"); - mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false); - Label l61 = new Label(); - mv.visitJumpInsn(IFEQ, l61); - Label l62 = new Label(); - mv.visitLabel(l62); - mv.visitLineNumber(471, l62); - mv.visitVarInsn(ALOAD, 0); - mv.visitVarInsn(ALOAD, 2); - mv.visitLdcInsn("havestoil"); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "gregtech/loaders/misc/GT_Achievements", - "issueAchievement", - "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", - false); - Label l63 = new Label(); - mv.visitLabel(l63); - mv.visitLineNumber(472, l63); - mv.visitJumpInsn(GOTO, l41); - mv.visitLabel(l61); - mv.visitFrame(F_SAME, 0, null, 0, null); - mv.visitVarInsn(ALOAD, 3); - mv.visitMethodInsn( - INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false); - mv.visitLdcInsn("gt.metaitem.02.32511"); - mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false); - Label l64 = new Label(); - mv.visitJumpInsn(IFEQ, l64); - Label l65 = new Label(); - mv.visitLabel(l65); - mv.visitLineNumber(473, l65); - mv.visitVarInsn(ALOAD, 0); - mv.visitVarInsn(ALOAD, 2); - mv.visitLdcInsn("havestemeralds"); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "gregtech/loaders/misc/GT_Achievements", - "issueAchievement", - "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", - false); - Label l66 = new Label(); - mv.visitLabel(l66); - mv.visitLineNumber(474, l66); - mv.visitJumpInsn(GOTO, l41); - mv.visitLabel(l64); - mv.visitFrame(F_SAME, 0, null, 0, null); - mv.visitVarInsn(ALOAD, 3); - mv.visitMethodInsn( - INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false); - mv.visitLdcInsn("gt.metaitem.01.32706"); - mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false); - Label l67 = new Label(); - mv.visitJumpInsn(IFEQ, l67); - Label l68 = new Label(); - mv.visitLabel(l68); - mv.visitLineNumber(475, l68); - mv.visitVarInsn(ALOAD, 0); - mv.visitVarInsn(ALOAD, 2); - mv.visitLdcInsn("energyflow"); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "gregtech/loaders/misc/GT_Achievements", - "issueAchievement", - "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", - false); - Label l69 = new Label(); - mv.visitLabel(l69); - mv.visitLineNumber(476, l69); - mv.visitJumpInsn(GOTO, l41); - mv.visitLabel(l67); - mv.visitFrame(F_SAME, 0, null, 0, null); - mv.visitVarInsn(ALOAD, 3); - mv.visitMethodInsn( - INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false); - mv.visitLdcInsn("gt.metaitem.01.32702"); - mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false); - Label l70 = new Label(); - mv.visitJumpInsn(IFEQ, l70); - Label l71 = new Label(); - mv.visitLabel(l71); - mv.visitLineNumber(477, l71); - mv.visitVarInsn(ALOAD, 0); - mv.visitVarInsn(ALOAD, 2); - mv.visitLdcInsn("bettercircuits"); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "gregtech/loaders/misc/GT_Achievements", - "issueAchievement", - "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", - false); - Label l72 = new Label(); - mv.visitLabel(l72); - mv.visitLineNumber(478, l72); - mv.visitJumpInsn(GOTO, l41); - mv.visitLabel(l70); - mv.visitFrame(F_SAME, 0, null, 0, null); - mv.visitVarInsn(ALOAD, 3); - mv.visitMethodInsn( - INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false); - mv.visitLdcInsn("gt.metaitem.01.32707"); - mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false); - Label l73 = new Label(); - mv.visitJumpInsn(IFEQ, l73); - Label l74 = new Label(); - mv.visitLabel(l74); - mv.visitLineNumber(479, l74); - mv.visitVarInsn(ALOAD, 0); - mv.visitVarInsn(ALOAD, 2); - mv.visitLdcInsn("datasaving"); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "gregtech/loaders/misc/GT_Achievements", - "issueAchievement", - "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", - false); - Label l75 = new Label(); - mv.visitLabel(l75); - mv.visitLineNumber(480, l75); - mv.visitJumpInsn(GOTO, l41); - mv.visitLabel(l73); - mv.visitFrame(F_SAME, 0, null, 0, null); - mv.visitVarInsn(ALOAD, 3); - mv.visitMethodInsn( - INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false); - mv.visitLdcInsn("gt.metaitem.01.32597"); - mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false); - Label l76 = new Label(); - mv.visitJumpInsn(IFEQ, l76); - Label l77 = new Label(); - mv.visitLabel(l77); - mv.visitLineNumber(481, l77); - mv.visitVarInsn(ALOAD, 0); - mv.visitVarInsn(ALOAD, 2); - mv.visitLdcInsn("orbs"); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "gregtech/loaders/misc/GT_Achievements", - "issueAchievement", - "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", - false); - Label l78 = new Label(); - mv.visitLabel(l78); - mv.visitLineNumber(482, l78); - mv.visitJumpInsn(GOTO, l41); - mv.visitLabel(l76); - mv.visitFrame(F_SAME, 0, null, 0, null); - mv.visitVarInsn(ALOAD, 3); - mv.visitMethodInsn( - INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false); - mv.visitLdcInsn("gt.metaitem.01.32599"); - mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false); - Label l79 = new Label(); - mv.visitJumpInsn(IFEQ, l79); - Label l80 = new Label(); - mv.visitLabel(l80); - mv.visitLineNumber(483, l80); - mv.visitVarInsn(ALOAD, 0); - mv.visitVarInsn(ALOAD, 2); - mv.visitLdcInsn("thatspower"); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "gregtech/loaders/misc/GT_Achievements", - "issueAchievement", - "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", - false); - Label l81 = new Label(); - mv.visitLabel(l81); - mv.visitLineNumber(484, l81); - mv.visitJumpInsn(GOTO, l41); - mv.visitLabel(l79); - mv.visitFrame(F_SAME, 0, null, 0, null); - mv.visitVarInsn(ALOAD, 3); - mv.visitMethodInsn( - INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false); - mv.visitLdcInsn("gt.metaitem.01.32598"); - mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false); - Label l82 = new Label(); - mv.visitJumpInsn(IFEQ, l82); - Label l83 = new Label(); - mv.visitLabel(l83); - mv.visitLineNumber(485, l83); - mv.visitVarInsn(ALOAD, 0); - mv.visitVarInsn(ALOAD, 2); - mv.visitLdcInsn("luck"); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "gregtech/loaders/misc/GT_Achievements", - "issueAchievement", - "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", - false); - Label l84 = new Label(); - mv.visitLabel(l84); - mv.visitLineNumber(486, l84); - mv.visitJumpInsn(GOTO, l41); - mv.visitLabel(l82); - mv.visitFrame(F_SAME, 0, null, 0, null); - mv.visitVarInsn(ALOAD, 3); - mv.visitMethodInsn( - INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false); - mv.visitLdcInsn("gt.metaitem.01.32749"); - mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false); - Label l85 = new Label(); - mv.visitJumpInsn(IFEQ, l85); - Label l86 = new Label(); - mv.visitLabel(l86); - mv.visitLineNumber(487, l86); - mv.visitVarInsn(ALOAD, 0); - mv.visitVarInsn(ALOAD, 2); - mv.visitLdcInsn("closeit"); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "gregtech/loaders/misc/GT_Achievements", - "issueAchievement", - "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", - false); - Label l87 = new Label(); - mv.visitLabel(l87); - mv.visitLineNumber(488, l87); - mv.visitJumpInsn(GOTO, l41); - mv.visitLabel(l85); - mv.visitFrame(F_SAME, 0, null, 0, null); - mv.visitVarInsn(ALOAD, 3); - mv.visitMethodInsn( - INVOKEVIRTUAL, "net/minecraft/item/ItemStack", "getUnlocalizedName", "()Ljava/lang/String;", false); - mv.visitLdcInsn("gt.metaitem.01.32730"); - mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/String", "equals", "(Ljava/lang/Object;)Z", false); - Label l88 = new Label(); - mv.visitJumpInsn(IFEQ, l88); - Label l89 = new Label(); - mv.visitLabel(l89); - mv.visitLineNumber(489, l89); - mv.visitVarInsn(ALOAD, 0); - mv.visitVarInsn(ALOAD, 2); - mv.visitLdcInsn("manipulation"); - mv.visitMethodInsn( - INVOKEVIRTUAL, - "gregtech/loaders/misc/GT_Achievements", - "issueAchievement", - "(Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;)V", - false); - Label l90 = new Label(); - mv.visitLabel(l90); -