/** * This class was created by <Vazkii>. It's distributed as * part of the Botania Mod. Get the Source Code in github: * https://github.com/Vazkii/Botania * * Botania is Open Source and distributed under the * Botania License: http://botaniamod.net/license.php * * File Created @ [Jan 28, 2015, 5:57:07 PM (GMT)] */ package vazkii.botania.common.achievement; import net.minecraft.item.ItemStack; import net.minecraft.stats.Achievement; import net.minecraftforge.event.entity.player.EntityItemPickupEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.gameevent.PlayerEvent.ItemCraftedEvent; import net.minecraftforge.fml.common.gameevent.PlayerEvent.ItemPickupEvent; public final class AchievementTriggerer { private AchievementTriggerer() {} @SubscribeEvent public static void onItemPickedUp(EntityItemPickupEvent event) { ItemStack stack = event.getItem().getEntityItem(); if(!stack.isEmpty() && stack.getItem() instanceof IPickupAchievement) { Achievement achievement = ((IPickupAchievement) stack.getItem()).getAchievementOnPickup(stack, event.getEntityPlayer(), event.getItem()); if(achievement != null) event.getEntityPlayer().addStat(achievement, 1); } } @SubscribeEvent public static void onItemCrafted(ItemCraftedEvent event) { if(!event.crafting.isEmpty() && event.crafting.getItem() instanceof ICraftAchievement) { Achievement achievement = ((ICraftAchievement) event.crafting.getItem()).getAchievementOnCraft(event.crafting, event.player, event.craftMatrix); if(achievement != null) event.player.addStat(achievement, 1); } } }