package codechicken.nei.handler; import codechicken.lib.util.ItemUtils; import codechicken.nei.api.IInfiniteItemHandler; import codechicken.nei.util.NEIServerUtils; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; public class InfiniteStackSizeHandler implements IInfiniteItemHandler { @Override public void onPickup(ItemStack heldItem) { heldItem.setCount(1); } @Override public void onPlaceInfinite(ItemStack heldItem) { heldItem.setCount(111); } @Override public boolean canHandleItem(ItemStack stack) { return !stack.isItemStackDamageable(); } @Override public boolean isItemInfinite(ItemStack stack) { return stack.getCount() == -1 || stack.getCount() > 100; } @Override public void replenishInfiniteStack(InventoryPlayer inv, int slotNo) { ItemStack stack = inv.getStackInSlot(slotNo); stack.setCount(111); for (int i = 0; i < inv.getSizeInventory(); i++) { if (i == slotNo) { continue; } if (NEIServerUtils.areStacksSameType(stack, inv.getStackInSlot(i))) { inv.setInventorySlotContents(i, null); } } } @Override public ItemStack getInfiniteItem(ItemStack typeStack) { return ItemUtils.copyStack(typeStack, -1); } }