Posted June 2, 20196 yr I have an item that I would like to give the player poison when it is in their main or offhand, and nothing if it is not. Is there any way to achieve this effect?
June 2, 20196 yr Author 21 minutes ago, diesieben07 said: Override Item#inventoryTick. Cool, but where would I override this? And how? I set up a class called PoisonIvyLeaf to check if this item is in the hand, but I'm not sure where to implement inventoryTick to check for that. Should I set up a SubscribeEvent?
June 2, 20196 yr Author 10 hours ago, diesieben07 said: You override this method in the item class for the item you want to have this effect. here's what I have so far package item; import mmyron.mmyronsqol.lists.ItemList; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; public class ItemPoisonIvyLeaf extends Item{ public ItemPoisonIvyLeaf(Properties properties) { super(properties); } private void onPlayerTick(EntityPlayer player) { ItemStack itemInSlot = player.inventory.getStackInSlot(0); if(itemInSlot.getItem() == ItemList.poison_ivy_leaf) { player.addPotionEffect(new PotionEffect(Potion.getPotionById(19), 5, 0)); } } } I feel like this would work, but now I'm clueless as to how to register the item in the registry lol How would I call this item class in the registry in my main class? Edited June 3, 20196 yr by mmyron
June 3, 20196 yr 9 hours ago, diesieben07 said: Override Item#inventoryTick. 8 hours ago, mmyron said: private void onPlayerTick(EntityPlayer player) One of these things is not like the other. Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given.
June 3, 20196 yr Author 2 hours ago, Draco18s said: One of these things is not like the other. Right, so I changed that to override inventoryTick (it wasn't showing up correctly for me earlier), and i got this @Override public void inventoryTick(ItemStack stack, World worldIn, Entity entityIn, int itemSlot, boolean isSelected) { if(stack.getItem() == ItemList.poison_ivy_leaf && isSelected) { } } However, I'm unable to use the addPotionEffect, since the entityIn doesn't seem to be a player? EDIT: Figured it out. Spoiler @Override public void inventoryTick(ItemStack stack, World worldIn, Entity entityIn, int itemSlot, boolean isSelected) { if(stack.getItem() == ItemList.poison_ivy_leaf && isSelected) { if(entityIn instanceof EntityPlayer && !entityIn.has) { ((EntityPlayer) entityIn).addPotionEffect(new PotionEffect(MobEffects.POISON, 20, 0)); } } } Edited June 3, 20196 yr by mmyron
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.