Posted May 1, 20169 yr I've been at this for a while now, and I try to not ask for help usually, but this time I'm at an impasse. I've created the command "count" which I want to get the item that the player is currently holding, then count the amount of that item in the players inventory, then send the player a message with the amount of that item. ItemStack heldStack = player.inventory.getCurrentItem(); if (heldStack != null) { for (int i = 0; i < player.inventory.getSizeInventory(); i++) { ItemStack cycledStack = player.inventory.getStackInSlot(i); if (cycledStack.getItem().equals(heldStack)) { itemCount = itemCount + cycledStack.stackSize; } } } I'm still fairly new to Java, so I'm assuming it's some stupid mistake that I somehow made. I don't want to be spoonfed code, I want to learn, so if you guys could help me out by pointing me in the right direction, that would be awesome. I apologize if I've forgotten anything in this post, please let me know if I have. Thanks!
May 1, 20169 yr So what's the problem? Are you getting NullPointerException (i.e. because you don't check if cycledStack is null before calling a method with it)? Is your count not incrementing (i.e. because your condition is never true - ItemStack != Item)? Is the message not getting sent (I don't see any code to send a chat message...)? http://i.imgur.com/NdrFdld.png[/img]
May 1, 20169 yr Author Wow, forgot the error... Sorry... Yes, it's a NullPointerException, and I feel more like an idiot because checking if it was null or not fixed that issue, and then it wasn't counting which I fixed by changing: if (cycledStack.getItem().equals(heldStack)) To: if (cycledStack.getItem().equals(heldStack.getItem())) Thank you!
May 1, 20169 yr Np. Rookie mistakes (that every one of us has made) Btw, since Items are all instantiated as singletons, you can compare using identity '==' rather than the #equals method (which does check identity, but also potentially a lot of other stuff e.g. for complex objects that are separate instances but may still considered equal). // this is the typical way of comparing Items and Blocks (but NOT ItemStacks if you care about damage value and/or NBT data) if (cycledStack.getItem() == heldStack.getItem()) 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.