Posted November 12, 20186 yr Hello! I am made an item that uses a random number generator to generate a number, then to test it I made it send a chat message to the player. However, when the item is used, it sends two chat messages, meaning it is generating two numbers. I want it to only generate one; could someone help me? public class QuirkGiver extends ItemBase { public QuirkGiver(String name) { super(name); } public ActionResult<ItemStack> onItemRightClick(World worldIn, EntityPlayer playerIn, EnumHand handIn) { ItemStack itemstack = playerIn.getHeldItem(handIn); if (!playerIn.capabilities.isCreativeMode); { itemstack.shrink(1); } int number = ((int) (Math.random()*100))+1; playerIn.sendMessage(new TextComponentString("you got " + number)); return new ActionResult<ItemStack>(EnumActionResult.SUCCESS, itemstack); } }
November 12, 20186 yr This happens because Item#onItemRightClick is executed once for each side - once for client, once for server. You need to check for the side you are on before doing actions. As a sidenote: 16 minutes ago, Creleb said: ItemBase ItemBase is an antipattern. There is already an ItemBase, it's called Item.
November 12, 20186 yr Author 16 minutes ago, V0idWa1k3r said: You need to check for the side you are on before doing actions. Do I do that with @SideOnly.CLIENT or no? I tried adding it but it doesn't seem to work where ever I put. Where would it go?
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.