Posted February 12, 201411 yr Is there an event or something I could use to detect when a player crafts an item? One that gives the player and what item/block crafted? Kain
February 12, 201411 yr Author Am I doing something wrong? It's not being called: package tlhpoe.fs.handler; import net.minecraft.item.Item; import net.minecraftforge.event.world.BlockEvent.HarvestDropsEvent; import tlhpoe.fs.achievement.AchievementPageFS; import tlhpoe.fs.helper.BlockHelper; import tlhpoe.fs.world.WorldFSGenerator; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.PlayerEvent.ItemCraftedEvent; public class ServerEventHandler { @SubscribeEvent public void breakBlock(HarvestDropsEvent event) { if(WorldFSGenerator.getOreList().contains(event.block)) { event.harvester.triggerAchievement(AchievementPageFS.ore); } } @SubscribeEvent public void itemCrafted(ItemCraftedEvent event) { System.err.println("1"); if(!event.player.worldObj.isRemote) { System.err.println("2"); if(event.crafting.getItem() == Item.getItemFromBlock(BlockHelper.monkeysaurAltar)) { System.err.println("3"); event.player.triggerAchievement(AchievementPageFS.monkeysaurAltar); } } } } The first method is being called as normal. How I'm registering them: package tlhpoe.fs.helper; import net.minecraftforge.common.MinecraftForge; import tlhpoe.fs.handler.ClientEventHandler; import tlhpoe.fs.handler.ServerEventHandler; import cpw.mods.fml.common.eventhandler.EventBus; public class EventHelper { public static final EventBus FUN_BUS = MinecraftForge.EVENT_BUS; //Also tried FMLCommonHandler.instance().bus(); public static void doServer() { FUN_BUS.register(new ServerEventHandler()); } public static void doClient() { FUN_BUS.register(new ClientEventHandler()); } } Kain
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.