I'm trying to collect items from the grand exchange.
For example, these sharks; As you can see I have a full inventory, however, I have SHOULD be able to collect these sharks as I have some noted in my inventory already.
Picture: https://prnt.sc/nti1qn
Code:
public boolean collectItems(int slot, int option) {
if (getOwner() == null)
return false;
int freeSlots = getOwner().getInventory().getFreeSlots();
if (freeSlots == 0) {
getOwner().getPackets().sendGameMessage("You don't have enough room in your inventory.");
return false;
}
Item item = receivedItems.get(slot);
if (item == null)
return false;
ItemDefinitions defs = item.getDefinitions();
if (defs.isStackable() && getOwner().getInventory().getNumberOf(item.getId()) + item.getAmount() < 0) {
Item add = new Item(item.getId(), Integer.MAX_VALUE - getOwner().getInventory().getNumberOf(item.getId()));
Item add1 = new Item(item.getId(), Integer.MAX_VALUE);
receivedItems.remove(add);
getOwner().getInventory().deleteItem(add1);
getOwner().getInventory().addItem(add1);
getOwner().getPackets().sendGameMessage("You don't have enough room in your inventory.");
} else if (!defs.isStackable() && option == (item.getAmount() == 1 ? 0 : 1)) {
Item add = new Item(item.getId(), item.getAmount() > freeSlots ? freeSlots : item.getAmount());
getOwner().getInventory().addItem(add);
receivedItems.remove(add);
} else {
getOwner().getInventory().addItem(new Item(defs.certId != -1 ? defs.certId : item.getId(), item.getAmount()));
receivedItems.remove(item);
}
update();
return true;
}