Posted March 5, 20205 yr Hello everyone! I'm trying to implement an event where players receive an item upon eating an apple. My code works fine unless there is only one apple in hand, then It doesn't work at all. I have a feeling it's detecting the item in the player's hand after it's been eaten, and not the item being eaten itself... Spoiler 0 Advanced issue found ▲ 0 Advanced issue found ▲ 0 Advanced issue found ▲ Spoiler 0 Advanced issue found ▲ Spoiler @SubscribeEvent public static void getAppleCore(LivingEntityUseItemEvent.Finish event) { if(event.getEntityLiving() instanceof PlayerEntity){ Main.LOGGER.info("It's the player"); Entity EntityLiving = event.getEntityLiving(); PlayerEntity Player = (PlayerEntity)EntityLiving; if (Player.getHeldItem(Player.getActiveHand()).getItem().equals(Items.APPLE)) { Main.LOGGER.info("Eating Apple"); ItemHandlerHelper.giveItemToPlayer(Player, new ItemStack(ItemInit.apple_core_item)); } } } I've also tried: But this doesn't give the second message or the item at all. Spoiler 0 Advanced issue found ▲ Spoiler @SubscribeEvent public static void getAppleCore(LivingEntityUseItemEvent.Finish event) { if(event.getEntityLiving() instanceof PlayerEntity){ Main.LOGGER.info("It's the player"); Entity EntityLiving = event.getEntityLiving(); PlayerEntity Player = (PlayerEntity)EntityLiving; if (event.getItem().equals(new ItemStack(Items.APPLE))) { Main.LOGGER.info("Eating Apple"); ItemHandlerHelper.giveItemToPlayer(Player, new ItemStack(ItemInit.apple_core_item)); } } } I really appreciate any help I can get on this. Sorry if this is an easy fix and I didn't catch it. Cheers! Edited March 5, 20205 yr by xxWhatsherfacex
March 5, 20205 yr Author Ah! thank you so much! That makes a lot of sense. For anyone in a similar situation, I changed it to this and it works beautifully. 0 Advanced issue found ▲ Spoiler @SubscribeEvent public static void getAppleCore(LivingEntityUseItemEvent.Finish event) { if(event.getEntityLiving() instanceof PlayerEntity){ Main.LOGGER.info("It's the player"); Entity EntityLiving = event.getEntityLiving(); PlayerEntity Player = (PlayerEntity)EntityLiving; if (event.getItem().getStack().getItem() == Items.APPLE) { Main.LOGGER.info("Eating Apple"); ItemHandlerHelper.giveItemToPlayer(Player, new ItemStack(ItemInit.apple_core_item)); } } }
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.