Posted January 31, 20169 yr So, I am relatively new to Forge modding... bear with me please I'm wondering how to check if a player as x amount of an item, then remove x amount of that item from their inventory. any help would be appreciated. thank you. EDIT: I know there is the consumeInventoryItem but that is only 1 at a time. is there a way to do more than 1?
January 31, 20169 yr Well: int count = 0; for (int i; i < 36; ++i) { ItemStack stack = player.inventory.mainInventory[i]; if (stack != null && stack.getItem() == Item.someItem) count += stack.stackSize; } if (count >= requiredToRemove) { int i = 0; while (requiredToRemove > 0) { ItemStack stack = player.inventory.mainInventory[i]; if (stack != null && stack.getItem() == Item.someItem) { if (requiredToRemove >= stack.stackSize) player.inventory.mainInventory[i] = null; else stack.stackSize -= requiredToRemove; requiredToRemove -= stack.stackSize; } ++i; } Something like this. Wrote it here so probably forgot something. This can be done better. 1.7.10 is no longer supported by forge, you are on your own.
January 31, 20169 yr Author It's something to work with, thanks for the help, I'll see what I can do with it. Well: int count = 0; for (int i; i < 36; ++i) { ItemStack stack = player.inventory.mainInventory[i]; if (stack != null && stack.getItem() == Item.someItem) count += stack.stackSize; } if (count >= requiredToRemove) { int i = 0; while (requiredToRemove > 0) { ItemStack stack = player.inventory.mainInventory[i]; if (stack != null && stack.getItem() == Item.someItem) { if (requiredToRemove >= stack.stackSize) player.inventory.mainInventory[i] = null; else stack.stackSize -= requiredToRemove; requiredToRemove -= stack.stackSize; } ++i; } Something like this. Wrote it here so probably forgot something. This can be done better.
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.