From 598309d06e0e9a9ea0777b02477b5567b79d4fbc Mon Sep 17 00:00:00 2001 From: glowredman <35727266+glowredman@users.noreply.github.com> Date: Tue, 12 Dec 2023 10:04:53 +0100 Subject: [PATCH] Handle Unbreakable TCon Tool achievement via code (#776) --- .../amazingtrophies/AchievementHandler.java | 13 +++++++++++++ .../java/com/dreammaster/main/MainRegistry.java | 5 ++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/dreammaster/amazingtrophies/AchievementHandler.java b/src/main/java/com/dreammaster/amazingtrophies/AchievementHandler.java index ab62c3d68..2c66f0b3d 100644 --- a/src/main/java/com/dreammaster/amazingtrophies/AchievementHandler.java +++ b/src/main/java/com/dreammaster/amazingtrophies/AchievementHandler.java @@ -16,10 +16,12 @@ import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.eventhandler.EventPriority; import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.common.gameevent.PlayerEvent.ItemPickupEvent; import cpw.mods.fml.common.gameevent.TickEvent.Phase; import cpw.mods.fml.common.gameevent.TickEvent.PlayerTickEvent; import cpw.mods.fml.relauncher.Side; import fox.spiteful.avaritia.items.LudicrousItems; +import tconstruct.library.tools.ToolCore; public class AchievementHandler { @@ -32,6 +34,7 @@ public class AchievementHandler { public static StatBase eternityBeaconAchievement; private static StatBase allEffects; private static StatBase hearts; + private static StatBase unbreakableTool; private static int numberPotions = 0; public static void init() { @@ -41,6 +44,7 @@ public static void init() { eternityBeaconAchievement = StatList.func_151177_a("eternity_beacon"); allEffects = StatList.func_151177_a("all_effects"); hearts = StatList.func_151177_a("100_hearts"); + unbreakableTool = StatList.func_151177_a("unbreakable_tconstruct_tool"); for (Potion potion : Potion.potionTypes) { if (potion != null && !potion.isInstant()) { @@ -124,6 +128,15 @@ public void onLivingHurt(LivingAttackEvent event) { } + @SubscribeEvent + public void onItemPickup(ItemPickupEvent event) { + ItemStack stack = event.pickedUp.getEntityItem(); + if (stack.getItem() instanceof ToolCore && stack.hasTagCompound() + && stack.getTagCompound().getCompoundTag("InfiTool").getInteger("Unbreaking") >= 10) { + event.player.triggerAchievement(unbreakableTool); + } + } + private static boolean hasArmor(ItemStack[] armor, Item helmet, Item chestplate, Item leggins, Item boots) { ItemStack equippedHelmet = armor[3]; ItemStack equippedChestplate = armor[2]; diff --git a/src/main/java/com/dreammaster/main/MainRegistry.java b/src/main/java/com/dreammaster/main/MainRegistry.java index 2fc567c93..424c64771 100644 --- a/src/main/java/com/dreammaster/main/MainRegistry.java +++ b/src/main/java/com/dreammaster/main/MainRegistry.java @@ -486,7 +486,10 @@ public void CompleteLoad(FMLLoadCompleteEvent event) { BW_RadHatchMaterial.runRadHatchAdder(); } if (Thaumcraft.isModLoaded()) TCLoader.checkRecipeProblems(); - if (Loader.isModLoaded("amazingtrophies") && BloodMagic.isModLoaded() && Avaritia.isModLoaded()) { + if (Loader.isModLoaded("amazingtrophies") && BloodMagic.isModLoaded() + && Avaritia.isModLoaded() + && SGCraft.isModLoaded() + && TinkerConstruct.isModLoaded()) { AchievementHandler.init(); AchievementHandler handler = new AchievementHandler(); MinecraftForge.EVENT_BUS.register(handler);