public boolean addItem(int item, int amount) {
try {
if(item == -1)
return false;
if (!Item.itemStackable[item] || amount < 1) {
amount = 1;
}
if ((freeSlots() >= amount && !Item.itemStackable[item]) || freeSlots() > 0) {
for (int i = 0; i < playerItems.length; i++) {
if (playerItems[i] == (item+1) && Item.itemStackable[item] && playerItems[i] > 0) {
playerItems[i] = (item + 1);
if ((playerItemsN[i] + amount) < maxItemAmount && (playerItemsN[i] + amount) > -1) {
playerItemsN[i] += amount;
} else {
playerItemsN[i] = maxItemAmount;
}
outStream.createFrameVarSizeWord(34);
outStream.writeWord(3214);
outStream.writeByte(i);
outStream.writeWord(playerItems[i]);
if (playerItemsN[i] > 254) {
outStream.writeByte(255);
outStream.writeDWord(playerItemsN[i]);
} else {
outStream.writeByte(playerItemsN[i]); //amount
}
outStream.endFrameVarSizeWord();
i = 30;
return true;
}
}
for (int i = 0; i < playerItems.length; i++) {
if (playerItems[i] <= 0) {
playerItems[i] = item+1;
if (amount < maxItemAmount && amount > -1) {
playerItemsN[i] = amount;
} else {
playerItemsN[i] = maxItemAmount;
}
outStream.createFrameVarSizeWord(34);
outStream.writeWord(3214);
outStream.writeByte(i);
outStream.writeWord(playerItems[i]);
if (playerItemsN[i] > 254) {
outStream.writeByte(255);
outStream.writeDWord(playerItemsN[i]);
} else {
outStream.writeByte(playerItemsN[i]); //amount
}
outStream.endFrameVarSizeWord();
i = 30;
return true;
}
}
return false;
} else {
if (!IsBanking) {
ItemHandler.addItem(item, absX, absY, amount, playerId, false);
}
sendMessage("Not enough space in your inventory.");
return false;
}
} catch (Exception E) { return false; }
}