Posted October 20, 20159 yr I'm currently working on pathfinding algorithm mod, when i decrease the inventory like this: @SubscribeEvent public void onPlayerTick(TickEvent.PlayerTickEvent event) { InventoryPlayer inventory = event.player.inventory; ItemStack itemStack = null; for (ItemStack stack : inventory.mainInventory){ if (stack != null && stack.getItem() != null && stack.getItem() instanceof ItemBlock){ itemStack = stack; event.player.setItemInUse(stack, stack.getItem().getMaxItemUseDuration(stack)); } } ItemBlock blockItem = (ItemBlock)itemStack.getItem(); inventory.consumeInventoryItem(blockItem); inventory.markDirty(); event.player.inventoryContainer.detectAndSendChanges(); } The stack size is decreasing, but only locally - because next time I mine the same type of block the number is jumping back to its value before the decreasing. Another question is how do I change to held item to the block that I'm using? I found the property: inventory.currentItem (int) but I don't know how to get in which slot my itemstack is... Thanks in advance.
October 20, 20159 yr Author Only do things on the server. Also check event.phase, otherwise your code runs twice per tick. inventory.currentItem is the slot. Hey, for the first answer, can you explain how? I thought that when I use event.player it would run on server. I know that currentItem is the slot, but I want to set it to itemStack field, and I don't know its slot. Thank you for the answer
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.