package gregtech.loaders.misc; import java.util.concurrent.ConcurrentHashMap; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraft.stats.Achievement; import net.minecraft.stats.AchievementList; import net.minecraft.stats.StatBase; import net.minecraftforge.common.AchievementPage; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.entity.player.EntityItemPickupEvent; import net.minecraftforge.fluids.FluidStack; import thaumcraft.api.ThaumcraftApiHelper; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.PlayerEvent.ItemCraftedEvent; import cpw.mods.fml.common.gameevent.PlayerEvent.ItemSmeltedEvent; import gregtech.GT_Mod; import gregtech.api.GregTech_API; import gregtech.api.enums.*; import gregtech.api.objects.ItemData; import gregtech.api.util.GT_Log; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Recipe; import gregtech.common.items.GT_MetaGenerated_Tool_01; import ic2.core.Ic2Items; public class GT_Achievements { public static int oreReg = -1; public static int assReg = -1; public ConcurrentHashMap achievementList; public ConcurrentHashMap issuedAchievements; public int adjX = 5; public int adjY = 9; public GT_Achievements() { this.achievementList = new ConcurrentHashMap<>(); this.issuedAchievements = new ConcurrentHashMap<>(); for (GT_Recipe recipe : GT_Recipe.GT_Recipe_Map.sAssemblylineVisualRecipes.mRecipeList) registerAssAchievement(recipe); registerAchievement( "flintpick", 0, 0, GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(2, 1, Materials.Flint, Materials.Wood, null), "", false); registerAchievement("crops", -4, 0, GT_ModHandler.getIC2Item("crop", 1L), "flintpick", false); registerAchievement("havestlead", -4, 2, ItemList.Crop_Drop_Plumbilia.get(1), "crops", false); registerAchievement("havestcopper", -2, 1, ItemList.Crop_Drop_Coppon.get(1), "crops", false); registerAchievement("havesttin", -2, -1, ItemList.Crop_Drop_Tine.get(1), "crops", false); registerAchievement("havestoil", -4, -4, ItemList.Crop_Drop_OilBerry.get(1), "crops", false); registerAchievement("havestiron", -2, -3, ItemList.Crop_Drop_Ferru.get(1), "crops", false); registerAchievement("havestgold", -2, -6, ItemList.Crop_Drop_Aurelia.get(1), "havestiron", false); registerAchievement("havestsilver", -4, -5, ItemList.Crop_Drop_Argentia.get(1), "havestiron", false); registerAchievement("havestemeralds", -2, -8, ItemList.Crop_Drop_BobsYerUncleRanks.get(1), "havestgold", false); registerAchievement( "tools", 0, 4, GT_MetaGenerated_Tool_01.INSTANCE .getToolWithStats(GT_MetaGenerated_Tool_01.HARDHAMMER, 1, Materials.Iron, Materials.Wood, null), "flintpick", false); registerAchievement( "driltime", 2, 4, GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( GT_MetaGenerated_Tool_01.DRILL_LV, 1, Materials.BlueSteel, Materials.StainlessSteel, null), "tools", false); registerAchievement( "brrrr", 2, 6, GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( GT_MetaGenerated_Tool_01.CHAINSAW_LV, 1, Materials.BlueSteel, Materials.StainlessSteel, null), "driltime", false); registerAchievement( "highpowerdrill", 3, 5, GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( GT_MetaGenerated_Tool_01.DRILL_HV, 1, Materials.TungstenSteel, Materials.TungstenSteel, null), "driltime", false); registerAchievement( "hammertime", 3, 7, GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( GT_MetaGenerated_Tool_01.JACKHAMMER, 1, Materials.TungstenSteel, Materials.TungstenSteel, null), "highpowerdrill", false); registerAchievement("repair", 4, 5, ItemList.Machine_HV_Disassembler.get(1), "highpowerdrill", false); registerAchievement( "unitool", -2, 4, GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( GT_MetaGenerated_Tool_01.UNIVERSALSPADE, 1, Materials.Steel, Materials.Iron, null), "tools", false); registerAchievement("recycling", -4, 4, ItemList.Machine_LV_ArcFurnace.get(1), "unitool", false); registerAchievement( "crushed", 0, 6, GT_OreDictUnificator.get(OrePrefixes.crushed, Materials.Tin, 1L), "tools", false); registerAchievement( "cleandust", 0, 10, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L), "crushed", false); registerAchievement( "washing", -2, 6, GT_OreDictUnificator.get(OrePrefixes.crushedPurified, Materials.Iron, 1L), "crushed", false); registerAchievement( "spinit", -4, 6, GT_OreDictUnificator.get(OrePrefixes.crushedCentrifuged, Materials.Redstone, 1L), "crushed", false); if (!GregTech_API.mIC2Classic) { registerAchievement("newfuel", -4, 8, ItemList.ThoriumCell_4.get(1), "spinit", false); registerAchievement( "newmetal", -4, 10, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lutetium, 1L), "newfuel", false); registerAchievement("reflect", -2, 9, ItemList.Neutron_Reflector.get(1), "newfuel", false); } registerAchievement( "bronze", 2, 0, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Bronze, 1L), "flintpick", false); registerAchievement( "simplyeco", 2, 2, ItemList.Machine_Bronze_Boiler_Solar.get(1, ItemList.Machine_HP_Solar.get(1L)), "bronze", false); registerAchievement("firststeam", 2, -2, ItemList.Machine_Bronze_Boiler.get(1), "bronze", false); registerAchievement("alloysmelter", 2, -4, ItemList.Machine_Bronze_AlloySmelter.get(1), "firststeam", false); registerAchievement("macerator", 0, -2, ItemList.Machine_Bronze_Macerator.get(1), "firststeam", false); registerAchievement("extract", 0, -4, ItemList.Machine_Bronze_Extractor.get(1), "alloysmelter", false); registerAchievement("smallparts", 0, -5, ItemList.Circuit_Primitive.get(1), "alloysmelter", false); registerAchievement("gtbasiccircuit", 0, -8, Ic2Items.electronicCircuit.copy(), "smallparts", false); registerAchievement("bettercircuits", 0, -9, ItemList.Circuit_Good.get(1), "gtbasiccircuit", false); registerAchievement("stepforward", -2, -9, Ic2Items.advancedCircuit.copy(), "bettercircuits", false); registerAchievement("gtmonosilicon", -5, -10, ItemList.Circuit_Silicon_Ingot.get(1), "stepforward", false); registerAchievement("gtlogicwafer", -7, -10, ItemList.Circuit_Wafer_ILC.get(1), "gtmonosilicon", false); registerAchievement("gtlogiccircuit", -9, -10, ItemList.Circuit_Basic.get(1), "gtlogicwafer", false); registerAchievement("gtcleanroom", -11, -10, ItemList.Machine_Multi_Cleanroom.get(1), "gtlogiccircuit", false); registerAchievement("energyflow", -13, -10, ItemList.Circuit_Nanoprocessor.get(1), "gtcleanroom", false); registerAchievement( "gtquantumprocessor", -13, -12, ItemList.Circuit_Quantumprocessor.get(1), "energyflow", false); registerAchievement( "gtcrystalprocessor", -11, -12, ItemList.Circuit_Crystalprocessor.get(1), "gtquantumprocessor", false); registerAchievement("gtwetware", -9, -12, ItemList.Circuit_Neuroprocessor.get(1), "gtcrystalprocessor", false); registerAchievement("gtwetmain", -7, -12, ItemList.Circuit_Wetwaremainframe.get(1), "gtwetware", false); registerAchievement("orbs", -10, -14, ItemList.Energy_LapotronicOrb.get(1), "energyflow", false); registerAchievement("thatspower", -8, -14, ItemList.Energy_LapotronicOrb2.get(1), "orbs", false); registerAchievement("datasaving", -2, -12, ItemList.Tool_DataOrb.get(1), "stepforward", false); registerAchievement("superbuffer", 0, -12, ItemList.Automation_SuperBuffer_LV.get(1), "datasaving", false); registerAchievement("newstorage", -2, -14, ItemList.Quantum_Chest_HV.get(1), "superbuffer", false); registerAchievement("whereistheocean", 2, -14, ItemList.Quantum_Tank_IV.get(1), "superbuffer", false); registerAchievement("luck", 2, -6, ItemList.ZPM.get(1), "", false); registerAchievement( "steel", 4, 0, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steel, 1L), "bronze", false); registerAchievement("highpressure", 4, 2, ItemList.Machine_Steel_Boiler.get(1), "steel", false); registerAchievement( "extremepressure", 4, 4, ItemList.Machine_Multi_LargeBoiler_Steel.get(1), "highpressure", false); registerAchievement("cheapermac", 6, 1, ItemList.Machine_LV_Hammer.get(1), "steel", false); registerAchievement( "complexalloys", 6, 3, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.BlueSteel, 1L), "cheapermac", false); registerAchievement( "magneticiron", 4, -2, GT_OreDictUnificator.get(OrePrefixes.stick, Materials.IronMagnetic, 1L), "steel", false); registerAchievement("lvmotor", 4, -6, ItemList.Electric_Motor_LV.get(1), "magneticiron", false); registerAchievement("pumpcover", 2, -8, ItemList.Electric_Pump_LV.get(1), "lvmotor", false); registerAchievement("closeit", 2, -10, ItemList.Cover_Shutter.get(1), "pumpcover", false); registerAchievement("slurp", 2, -12, ItemList.Pump_HV.get(1), "closeit", false); registerAchievement("transport", 4, -10, ItemList.Conveyor_Module_LV.get(1), "lvmotor", false); registerAchievement("manipulation", 4, -12, ItemList.Cover_Controller.get(1), "transport", false); registerAchievement("buffer", 4, -14, ItemList.Automation_ChestBuffer_LV.get(1), "manipulation", false); registerAchievement("complexmachines", 6, -9, ItemList.Robot_Arm_LV.get(1), "lvmotor", false); registerAchievement("avengers", 8, -11, ItemList.Machine_LV_Assembler.get(1), "complexmachines", false); registerAchievement("filterregulate", 10, -11, ItemList.Component_Filter.get(1), "avengers", false); registerAchievement("steampower", 6, -6, ItemList.Generator_Steam_Turbine_LV.get(1), "lvmotor", false); registerAchievement("batterys", 6, -4, ItemList.Battery_Buffer_2by2_MV.get(1), "steampower", false); registerAchievement("badweather", 6, -8, ItemList.Casing_FireHazard.get(1), "steampower", false); registerAchievement("electricproblems", 7, -7, ItemList.Casing_ExplosionHazard.get(1), "steampower", false); registerAchievement("ebf", 8, -6, ItemList.Machine_Multi_BlastFurnace.get(1), "steampower", false); registerAchievement("energyhatch", 12, -6, ItemList.Hatch_Energy_LV.get(1), "ebf", false); registerAchievement( "gtaluminium", 8, 0, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Aluminium, 1L), "steel", false); registerAchievement("highpowersmelt", 8, 2, ItemList.Machine_Multi_Furnace.get(1), "gtaluminium", false); registerAchievement("oilplant", 8, 4, ItemList.Distillation_Tower.get(1), "highpowersmelt", false); registerAchievement("factory", 8, 6, ItemList.Processing_Array.get(1), "oilplant", false); registerAchievement("upgradeebf", 8, -2, ItemList.Hatch_Energy_MV.get(1), "gtaluminium", false); registerAchievement("maintainance", 10, -2, ItemList.Hatch_Maintenance.get(1), "upgradeebf", false); registerAchievement("upgrade", 10, 0, ItemList.Casing_Coil_Kanthal.get(1), "gtaluminium", false); registerAchievement( "titan", 14, 0, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Titanium, 1L), "upgrade", false); registerAchievement("magic", 14, 3, ItemList.MagicEnergyConverter_LV.get(1), "titan", false); registerAchievement("highmage", 10, 3, ItemList.MagicEnergyAbsorber_HV.get(1), "magic", false); registerAchievement("artificaldia", 12, 2, ItemList.IC2_Industrial_Diamond.get(1), "titan", false); registerAchievement("muchsteam", 13, 1, ItemList.LargeSteamTurbine.get(1), "titan", false); registerAchievement("efficientsteam", 11, 1, ItemList.LargeSteamTurbine.get(1), "muchsteam", false); registerAchievement("upgrade2", 16, 0, ItemList.Casing_Coil_Nichrome.get(1), "titan", false); registerAchievement( "tungsten", 16, 2, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Tungsten, 1L), "upgrade2", false); registerAchievement( "osmium", 16, -2, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Osmium, 1L), "upgrade2", false); registerAchievement("hightech", 15, -3, ItemList.Field_Generator_LV.get(1), "osmium", false); registerAchievement("amplifier", 16, -5, ItemList.Machine_LV_Amplifab.get(1), "hightech", false); registerAchievement("scanning", 13, -3, ItemList.Machine_HV_Scanner.get(1), "hightech", false); registerAchievement("alienpower", 14, -5, ItemList.Generator_Naquadah_Mark_I.get(1), "hightech", false); registerAchievement("universal", 15, -6, ItemList.Machine_LV_Massfab.get(1), "hightech", false); registerAchievement("replication", 17, -6, ItemList.Machine_LV_Replicator.get(1), "universal", false); registerAchievement( "tungstensteel", 16, 4, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.TungstenSteel, 1L), "tungsten", false); registerAchievement("upgrade3", 15, 5, ItemList.Casing_Coil_TungstenSteel.get(1), "tungstensteel", false); registerAchievement( "hssg", 13, 5, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.HSSG, 1L), "upgrade3", false); registerAchievement("upgrade4", 11, 5, ItemList.Casing_Coil_HSSG.get(1), "hssg", false); registerAchievement( "stargatematerial", 11, 7, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Naquadah, 1L), "upgrade4", false); registerAchievement("conducting", 14, 6, ItemList.Casing_Coil_Superconductor.get(1), "upgrade3", false); registerAchievement("fusion", 15, 7, ItemList.FusionComputer_LuV.get(1), "tungstensteel", false); registerAchievement("higherefficency", 15, 9, ItemList.Generator_Plasma_IV.get(1), "fusion", false); registerAchievement("advancing", 13, 7, ItemList.FusionComputer_ZPMV.get(1), "fusion", false); registerAchievement("stargateliquid", 11, 9, ItemList.Generator_Plasma_LuV.get(1), "advancing", false); registerAchievement("tothelimit", 13, 9, ItemList.Generator_Plasma_LuV.get(1), "advancing", false); registerAchievement("fullefficiency", 12, 10, ItemList.Generator_Plasma_ZPMV.get(1), "tothelimit", false); registerAchievement("upgrade5", 9, 9, ItemList.Casing_Coil_Naquadah.get(1), "stargateliquid", false); registerAchievement( "alienmetallurgy", 9, 7, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.NaquadahAlloy, 1L), "upgrade5", false); registerAchievement("over9000", 7, 7, ItemList.Casing_Coil_NaquadahAlloy.get(1), "alienmetallurgy", false); registerAchievement( "finalpreparations", 7, 9, GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Naquadria, 1L), "over9000", false); registerAchievement("denseaspossible", 6, 10, ItemList.FusionComputer_UV.get(1), "finalpreparations", false); if (GregTech_API.sOPStuff.get(ConfigCategories.Recipes.gregtechrecipes, "EnableZPMandUVBatteries", false)) { registerAchievement("zpmage", 8, 10, ItemList.Energy_Module.get(1), "denseaspossible", false); registerAchievement("uvage", 10, 10, ItemList.Energy_Cluster.get(1), "zpmage", false); registerAchievement("whatnow", 12, 10, ItemList.ZPM2.get(1), "uvage", false); } else { registerAchievement("whatnow", 8, 10, ItemList.ZPM2.get(1), "denseaspossible", false); } if (GT_Mod.gregtechproxy.mAchievements) { AchievementPage.registerAchievementPage( new AchievementPage( "GregTech 5", (Achievement[]) this.achievementList.values() .toArray(new Achievement[this.achievementList.size()]))); MinecraftForge.EVENT_BUS.register(this); FMLCommonHandler.instance().bus().register(this); } } public static void registerOre(Materials aMaterial, int min, int max, int chance, boolean overworld, boolean nether, boolean end) {} public Achievement registerAchievement(String textId, int x, int y, ItemStack icon, Achievement requirement, boolean special) { if (!GT_Mod.gregtechproxy.mAchievements) { return null; } Achievement achievement = new Achievement(textId, textId, this.adjX + x, this.adjY + y, icon, requirement); if (special) { achievement.setSpecial(); } ((StatBase) achievement).registerStat(); if (GT_Values.D2) { GT_Log.out.println("achievement." + textId + "="); GT_Log.out.println("achievement." + textId + ".desc="); } this.achievementList.put(textId, achievement); return achievement; } public Achievement registerAchievement(String textId, int x, int y, ItemStack icon, String requirement, boolean special) { if (!GT_Mod.gregtechproxy.mAchievements) { return null; } ; Achievement achievement = new Achievement( textId, textId, this.adjX + x, this.adjY + y, icon, getAchievement(requirement)); if (special) { achievement.setSpecial(); } ((StatBase) achievement).registerStat(); if (GT_Values.D2) { GT_Log.out.println("achievement." + textId + "="); GT_Log.out.println("achievement." + textId + ".desc="); } this.achievementList.put(textId, achievement); return achievement; } public Achievement registerOreAchievement(Materials aMaterial) { return null; } public Achievement registerAssAchievement(GT_Recipe recipe) { if (recipe == null) { GT_Mod.GT_FML_LOGGER.error("Invalid achievement registration attempt for null recipe", new Exception()); return null; } if (recipe.getOutput(0) == null) { GT_Mod.GT_FML_LOGGER .error("Invalid achievement registration attempt for recipe with null output", new Exception()); return null; } if (this.achievementList.get(recipe.getOutput(0).getUnlocalizedName()) == null) { assReg++; return registerAchievement( recipe.getOutput(0).getUnlocalizedName(), -(11 + assReg % 5), ((assReg) / 5) - 8, recipe.getOutput(0), AchievementList.openInventory, false); } return null; } public void issueAchievement(EntityPlayer entityplayer, String textId) { if (entityplayer == null || !GT_Mod.gregtechproxy.mAchievements) { return; } entityplayer.triggerAchievement((StatBase) this.achievementList.get(textId)); } public Achievement getAchievement(String textId) { if (this.achievementList.containsKey(textId)) { return (Achievement) this.achievementList.get(textId); } return null; } public void issueAchivementHatch(EntityPlayer player, ItemStack stack) { if (player == null || stack == null) { return; } ItemData data = GT_OreDictUnificator.getItemData(stack); if ((data != null) && (data.mPrefix == OrePrefixes.ingot)) { if (data.mMaterial.mMaterial == Materials.Aluminium) { issueAchievement(player, "gtaluminium"); } else if (data.mMaterial.mMaterial == Materials.Titanium) { issueAchievement(player, "titan"); } else if (data.mMaterial.mMaterial == Materials.BlueSteel) { issueAchievement(player, "complexalloys"); } else if (data.mMaterial.mMaterial == Materials.Tungsten) { issueAchievement(player, "tungsten"); } else if (data.mMaterial.mMaterial == Materials.Osmium) { issueAchievement(player, "osmium"); } else if (data.mMaterial.mMaterial == Materials.TungstenSteel) { issueAchievement(player, "tungstensteel"); } else if (data.mMaterial.mMaterial == Materials.HSSG) { issueAchievement(player, "hssg"); } else if (data.mMaterial.mMaterial == Materials.Naquadah) { issueAchievement(player, "stargatematerial"); } else if (data.mMaterial.mMaterial == Materials.NaquadahAlloy) { issueAchievement(player, "alienmetallurgy"); } else if (data.mMaterial.mMaterial == Materials.Naquadria) { issueAchievement(player, "finalpreparations"); } } if (stack.getUnlocalizedName().equals("ic2.itemPartIndustrialDiamond")) { issueAchievement(player, "artificaldia"); issueAchievement(player, "buildCoalDiamond"); } } public void issueAchivementHatchFluid(EntityPlayer player, FluidStack fluid) { if (player == null || fluid == null) { return; } switch (fluid.getFluid().getUnlocalizedName()) { case "fluid.plasma.helium": issueAchievement(player, "fusion"); break; case "fluid.molten.europium": issueAchievement(player, "advancing"); break; case "fluid.molten.naquadah": issueAchievement(player, "stargateliquid"); break; case "fluid.molten.americium": issueAchievement(player, "tothelimit"); break; case "fluid.molten.neutronium": issueAchievement(player, "denseaspossible"); break; case "fluid.plasma.nitrogen": issueAchievement(player, "higherefficency"); break; } } @SubscribeEvent public void onCrafting(ItemCraftedEvent event) { EntityPlayer player = event.player; ItemStack stack = event.crafting; if (player == null || stack == null) { return; } ItemData data = GT_OreDictUnificator.getItemData(stack); if (data != null) { if (data.mPrefix == OrePrefixes.dust && data.mMaterial.mMaterial == Materials.Bronze) { issueAchievement(player, "bronze"); } } if (stack.getUnlocalizedName().startsWith("gt.metaitem.")) { switch (stack.getUnlocalizedName()) { case "gt.metaitem.01.2300": issueAchievement(player, "bronze"); break; case "gt.metaitem.01.32700": issueAchievement(player, "smallparts"); break; case "gt.metaitem.01.32702": issueAchievement(player, "bettercircuits"); break; case "gt.metaitem.01.23354": issueAchievement(player, "magneticiron"); break; case "gt.metaitem.01.32600": issueAchievement(player, "lvmotor"); issueAchievement(player, "buildCable"); break; case "gt.metaitem.01.32610": issueAchievement(player, "pumpcover"); break; case "gt.metaitem.01.32630": issueAchievement(player, "transport"); break; case "gt.metaitem.01.32650": issueAchievement(player, "complexmachines"); break; case "gt.metaitem.01.32670": issueAchievement(player, "hightech"); break; } } else if (stack.getUnlocalizedName().equals("ic2.blockCrop")) { issueAchievement(player, "crops"); } else if (stack.getUnlocalizedName().equals("ic2.itemPartCircuit")) { issueAchievement(player, "gtbasiccircuit"); } else if (stack.getUnlocalizedName().equals("ic2.itemPartCircuitAdv")) { issueAchievement(player, "stepforward"); } else if (stack.getUnlocalizedName().startsWith("gt.blockmachines.")) { if (stack.getUnlocalizedName().startsWith("gt.blockmachines.basicmachine.arcfurnace.tier.")) { issueAchievement(player, "recycling"); } else if (stack.getUnlocalizedName().startsWith("gt.blockmachines.basicmachine.disassembler.tier.")) { issueAchievement(player, "repair"); } else if (stack.getUnlocalizedName().equals("gt.blockmachines.boiler.solar")) { issueAchievement(player, "simplyeco"); } else if (stack.getUnlocalizedName().equals("gt.blockmachines.boiler.bronze")) { issueAchievement(player, "firststeam"); } else if (stack.getUnlocalizedName().equals("gt.blockmachines.boiler.steel")) { issueAchievement(player, "highpressure"); } else if (stack.getUnlocalizedName().equals("gt.blockmachines.bronzemachine.macerator")) { issueAchievement(player, "macerator"); issueAchievement(player, "buildMacerator"); } else if (stack.getUnlocalizedName().equals("gt.blockmachines.bronzemachine.alloysmelter")) { issueAchievement(player, "alloysmelter"); issueAchievement(player, "buildElecFurnace"); if (stack.getUnlocalizedName().equals("gt.blockmachines.bronzemachine.alloysmelter.tier.3")) { issueAchievement(player, "buildIndFurnace"); } } else if (stack.getUnlocalizedName().equals("gt.blockmachines.bronzemachine.extractor")) { issueAchievement(player, "extract"); issueAchievement(player, "buildCompressor"); issueAchievement(player, "buildExtractor"); } else if (stack.getUnlocalizedName().startsWith("gt.blockmachines.automation.superbuffer.tier.")) { issueAchievement(player, "superbuffer"); } else if (stack.getUnlocalizedName().startsWith("gt.blockmachines.quantum.tank.tier.")) { issueAchievement(player, "whereistheocean"); } else if (stack.getUnlocalizedName().startsWith("gt.blockmachines.quantum.chest.tier.")) { issueAchievement(player, "newstorage"); } else if (stack.getUnlocalizedName().startsWith("gt.blockmachines.basicmachine.hammer.tier.")) { issueAchievement(player, "cheapermac"); } else if (stack.getUnlocalizedName().startsWith("gt.blockmachines.automation.chestbuffer.tier.")) { issueAchievement(player, "buffer"); issueAchievement(player, "buildBatBox"); if (stack.getUnlocalizedName().startsWith("gt.blockmachines.automation.chestbuffer.tier.3")) { issueAchievement(player, "buildMFE"); } } else if (stack.getUnlocalizedName().startsWith("gt.blockmachines.basicgenerator.steamturbine.tier.")) { issueAchievement(player, "steampower"); issueAchievement(player, "buildGenerator"); } else if (stack.getUnlocalizedName().equals("gt.blockmachines.basicmachine.pump.tier.03")) { issueAchievement(player, "slurp"); } else if (stack.getUnlocalizedName().startsWith("gt.blockmachines.basicmachine.assembler.tier.")) { issueAchievement(player, "avengers"); } else if (stack.getUnlocalizedName().equals("gt.blockmachines.multimachine.blastfurnace")) { issueAchievement(player, "ebf"); } else if (stack.getUnlocalizedName().startsWith("gt.blockmachines.batterybuffer.")) { issueAchievement(player, "batterys"); } else if (stack.getUnlocalizedName().equals("gt.blockmachines.hatch.energy.tier.02")) { issueAchievement(player, "upgradeebf"); } else if (stack.getUnlocalizedName().equals("gt.blockmachines.multimachine.multifurnace")) { issueAchievement(player, "highpowersmelt"); } else if (stack.getUnlocalizedName().equals("gt.blockmachines.hatch.energy.tier.01")) { issueAchievement(player, "energyhatch"); } else if (stack.getUnlocalizedName().equals("gt.blockmachines.multimachine.processingarray")) { issueAchievement(player, "factory"); } else if (stack.getUnlocalizedName().equals("gt.blockmachines.basicgenerator.magicenergyconverter.tier.01")) { issueAchievement(player, "magic"); } else if (stack.getUnlocalizedName() .equals("gt.blockmachines.basicgenerator.magicenergyabsorber.tier.03")) { issueAchievement(player, "highmage"); } else if (stack.getUnlocalizedName().startsWith("gt.blockmachines.basicmachine.amplifab.tier.")) { issueAchievement(player, "amplifier"); } else if (stack.getUnlocalizedName().startsWith("gt.blockmachines.basicmachine.massfab.tier.")) { issueAchievement(player, "universal"); issueAchievement(player, "buildMassFab"); } else if (stack.getUnlocalizedName().startsWith("gt.blockmachines.basicgenerator.naquadah.tier.")) { issueAchievement(player, "alienpower"); } else if (stack.getUnlocalizedName() .startsWith("gt.blockmachines.basicmachine.replicator.tier.")) { issueAchievement(player, "replication"); } else if (stack.getUnlocalizedName() .equals("gt.blockmachines.basicgenerator.plasmagenerator.tier.07")) { issueAchievement(player, "fullefficiency"); } else if (stack.getUnlocalizedName().equals("gt.blockmachines.multimachine.largeturbine")) { issueAchievement(player, "muchsteam"); } else if (stack.getUnlocalizedName() .equals("gt.blockmachines.multimachine.largehpturbine")) { issueAchievement(player, "efficientsteam"); } else if (stack.getUnlocalizedName().equals("gt.blockmachines.multimachine.cleanroom")) { issueAchievement(player, "gtcleanroom"); } } else if (stack.getUnlocalizedName().equals("gt.neutronreflector")) { issueAchievement(player, "reflect"); } else if (stack.getUnlocalizedName().equals("gt.blockcasings5.1")) { issueAchievement(player, "upgrade"); } else if (stack.getUnlocalizedName().equals("gt.blockcasings5.2")) { issueAchievement(player, "upgrade2"); } else if (stack.getUnlocalizedName().equals("gt.blockcasings5.3")) { issueAchievement(player, "upgrade3"); } else if (stack.getUnlocalizedName().equals("gt.blockcasings5.4")) { issueAchievement(player, "upgrade4"); } else if (stack.getUnlocalizedName().equals("gt.blockcasings5.5")) { issueAchievement(player, "upgrade5"); } else if (stack.getUnlocalizedName().equals("gt.blockcasings5.6")) { issueAchievement(player, "over9000"); } else if (stack.getUnlocalizedName().equals("gt.blockcasings.15")) { issueAchievement(player, "conducting"); } } @SubscribeEvent public void onSmelting(ItemSmeltedEvent event) { EntityPlayer player = event.player; ItemStack stack = event.smelting; if (player == null || stack == null) { return; } if (stack.getItem() == Items.bread) { event.player.triggerAchievement(AchievementList.makeBread); } } @SubscribeEvent public void onItemPickup(EntityItemPickupEvent event) { EntityPlayer player = event.entityPlayer; ItemStack stack = event.item.getEntityItem(); if (player == null || stack == null) { return; } ItemData data = GT_OreDictUnificator.getItemData(stack); if (data != null && data.mPrefix != null) { if (data.mPrefix == OrePrefixes.dust) { if (data.mMaterial.mMaterial == Materials.Lutetium) { issueAchievement(player, "newmetal"); } if (data.mMaterial.mMaterial != Materials.Gunpowder) { issueAchievement(player, "cleandust"); } } else if (data.mPrefix.name().startsWith("ore")) { int data_getAllMaterialStacks_sS = data.getAllMaterialStacks().size(); for (int i = 0; i < data_getAllMaterialStacks_sS; i++) { issueAchievement(player, data.getAllMaterialStacks().get(i).mMaterial.mName); if (data.getAllMaterialStacks().get(i).mMaterial == Materials.AnyIron) { issueAchievement(player, "iron"); } if (data.getAllMaterialStacks().get(i).mMaterial == Materials.Copper || data.getAllMaterialStacks().get(i).mMaterial == Materials.Tin) { issueAchievement(event.entityPlayer, "mineOre"); } } } else if (data.mPrefix == OrePrefixes.crushed) { issueAchievement(player, "crushed"); } else if (data.mPrefix == OrePrefixes.crushedPurified) { issueAchievement(player, "washing"); } else if (data.mPrefix == OrePrefixes.crushedCentrifuged) { issueAchievement(player, "spinit"); } else if (data.mMaterial.mMaterial == Materials.Steel) { if (data.mPrefix == OrePrefixes.ingot && stack.stackSize == stack.getMaxStackSize()) { issueAchievement(player, "steel"); } else if (data.mPrefix == OrePrefixes.nugget && Loader.isModLoaded("Thaumcraft") && ThaumcraftApiHelper.isResearchComplete(player.getDisplayName(), "GT_IRON_TO_STEEL")) { issueAchievement(player, "steel"); } // } else if (data.mPrefix == OrePrefixes.circuit && data.mMaterial.mMaterial == // Materials.Advanced) { // issueAchievement(player, "stepforward"); } } // GT_FML_LOGGER.info(stack.getUnlocalizedName()); if (stack.getUnlocalizedName().startsWith("gt.metaitem.")) { switch (stack.getUnlocalizedName()) { case "gt.metaitem.02.32500": issueAchievement(player, "havestlead"); break; case "gt.metaitem.02.32501": issueAchievement(player, "havestsilver"); break; case "gt.metaitem.02.32503": issueAchievement(player, "havestiron"); break; case "gt.metaitem.02.32504": issueAchievement(player, "havestgold"); break; case "gt.metaitem.02.32530": issueAchievement(player, "havestcopper"); break; case "gt.metaitem.02.32540": issueAchievement(player, "havesttin"); break; case "gt.metaitem.02.32510": issueAchievement(player, "havestoil"); break; case "gt.metaitem.02.32511": issueAchievement(player, "havestemeralds"); break; case "gt.metaitem.03.32082": issueAchievement(player, "energyflow"); break; case "gt.metaitem.01.32702": issueAchievement(player, "bettercircuits"); break; case "gt.metaitem.01.32707": issueAchievement(player, "datasaving"); break; case "gt.metaitem.01.32597": issueAchievement(player, "orbs"); break; case "gt.metaitem.01.32599": issueAchievement(player, "thatspower"); break; case "gt.metaitem.01.32598": issueAchievement(player, "luck"); break; case "gt.metaitem.01.32749": issueAchievement(player, "closeit"); break; case "gt.metaitem.01.32730": issueAchievement(player, "manipulation"); break; case "gt.metaitem.01.32729": issueAchievement(player, "filterregulate"); break; case "gt.metaitem.01.32605": issueAchievement(player, "whatnow"); break; case "gt.metaitem.01.32736": issueAchievement(player, "zpmage"); break; case "gt.metaitem.01.32737": issueAchievement(player, "uvage"); break; case "gt.metaitem.03.32030": issueAchievement(player, "gtmonosilicon"); break; case "gt.metaitem.03.32036": issueAchievement(player, "gtlogicwafer"); break; case "gt.metaitem.01.32701": issueAchievement(player, "gtlogiccircuit"); break; case "gt.metaitem.03.32085": issueAchievement(player, "gtquantumprocessor"); break; case "gt.metaitem.03.32089": issueAchievement(player, "gtcrystalprocessor"); break; case "gt.metaitem.03.32092": issueAchievement(player, "gtwetware"); break; case "gt.metaitem.03.32095": issueAchievement(player, "gtwetmain"); break; } } else if (stack.getUnlocalizedName().equals("gt.Thoriumcell")) { issueAchievement(player, "newfuel"); } else if ((stack.getItem() == Ic2Items.quantumBodyarmor.getItem()) || (stack.getItem() == Ic2Items.quantumBoots.getItem()) || (stack.getItem() == Ic2Items.quantumHelmet.getItem()) || (stack.getItem() == Ic2Items.quantumLeggings.getItem())) { issueAchievement(player, "buildQArmor"); } else if (stack.getUnlocalizedName().equals("ic2.itemPartCircuitAdv")) { issueAchievement(player, "stepforward"); } else if (stack.getUnlocalizedName().equals("gt.blockcasings5.1")) { issueAchievement(player, "upgrade"); } else if (stack.getUnlocalizedName().equals("gt.blockcasings5.2")) { issueAchievement(player, "upgrade2"); } else if (stack.getUnlocalizedName().equals("gt.blockcasings5.3")) { issueAchievement(player, "upgrade3"); } else if (stack.getUnlocalizedName().equals("gt.blockcasings5.4")) { issueAchievement(player, "upgrade4"); } else if (stack.getUnlocalizedName().equals("gt.blockcasings5.5")) { issueAchievement(player, "upgrade5"); } else if (stack.getUnlocalizedName().equals("gt.blockcasings5.6")) { issueAchievement(player, "over9000"); } else if (stack.getUnlocalizedName().equals("gt.blockcasings.15")) { issueAchievement(player, "conducting"); } if (player.capabilities.isCreativeMode && stack.getUnlocalizedName().equals("gt.metaitem.01.32761")) { // Debug // Scanner // pickup // shows // all // assline // recipes. for (GT_Recipe recipe : GT_Recipe.GT_Recipe_Map.sAssemblylineVisualRecipes.mRecipeList) { issueAchievement(player, recipe.getOutput(0).getUnlocalizedName()); recipe.mHidden = false; } } for (GT_Recipe recipe : GT_Recipe.GT_Recipe_Map.sAssemblylineVisualRecipes.mRecipeList) { if (recipe.getOutput(0).getUnlocalizedName().equals(stack.getUnlocalizedName())) { issueAchievement(player, recipe.getOutput(0).getUnlocalizedName()); recipe.mHidden = false; } } } }