Posted August 26, 201411 yr After googling around a bit, this seems to to be the go to way to check if a specific item has been picked up. @SubscribeEvent(priority=EventPriority.HIGHEST, receiveCanceled=true) public void onEvent(EntityItemPickupEvent event) { if (event.entity instanceof EntityPlayer) { System.out.println(entityItem); if (Item.getIdFromItem(event.item) == Item.getIdFromItem(MODITEM)) { } } } However, Item.getIdFromItem takes Item as an input, and event.item outputs ItemStack. Nothing in event.item.* outputs Item either. Have I just been finding outdated snippets of code, or am I doing something wrong? The only other way I can seem to find from poking around event.item.*, is to convert event.item.getEntityItem() to a string, and then remove the beginning and end of it so it's just the unlocalized name and comparing those, but that seems clunky.
August 26, 201411 yr First of all you can compare Items simply by using == without IDs. if(item == YourItem) would work as there is only one instance of the Item. Secondly ItemStack#getItem() results in an Item. IDs are no longer used in 1.7+ BEFORE ASKING FOR HELP READ THE EAQ! I'll help if I can. Apologies if I do something obviously stupid. If you don't know basic Java yet, go and follow these tutorials.
August 26, 201411 yr Also, if you bothered to read the event that you are using or check the type of 'item', you'll see it is an EntityItem, not an Item. Change your code accordingly. http://i.imgur.com/NdrFdld.png[/img]
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.