Originally Posted by
xNova
public boolean tradeItem(int itemID, int fromSlot, int amount) {
Client o = (Client) PlayerHandler.players[c.tradeWith];
if (o == null || c.playerItems[fromSlot] - 1 != itemID) {
return false;
}
if(!((c.playerItems[fromSlot] == itemID+1) && (c.playerItemsN[fromSlot] >= amount))) {
c.sendMessage("You don't have that amount!");
return false;
}
if (!((c.playerItems[fromSlot] == itemID + 1) && (c.playerItemsN[fromSlot] >= amount))) {
return false;
}
for (int i : Config.ITEM_TRADEABLE) {
if (i == itemID && c.playerRights >= 3) {
c.sendMessage("You can't trade this item.");
return false;
}
}
c.tradeConfirmed = false;
o.tradeConfirmed = false;
if (!Item.itemStackable[itemID] && !Item.itemIsNote[itemID]) {
for (int a = 0; a < amount; a++) {
if (c.getItems().playerHasItem(itemID, 1)) {
offeredItems.add(new GameItem(itemID, 1));
c.getItems().deleteItem(itemID,
c.getItems().getItemSlot(itemID), 1);
}
}
c.getItems().resetItems(3322);
resetTItems(3415);
o.getTradeAndDuel().resetOTItems(3416);
displayWAndI(c);
c.getPA().sendFrame126("", 3431);
o.getPA().sendFrame126("", 3431);
}
if (c.getItems().getItemCount(itemID) < amount) {
amount = c.getItems().getItemCount(itemID);
if (amount == 0 || !c.getItems().playerHasItem(itemID, amount)) {
return false;
}
}
if (!c.inTrade || !c.canOffer) {
declineTrade();
return false;
}
if (Item.itemStackable[itemID] || Item.itemIsNote[itemID]) {
boolean inTrade = false;
for (GameItem item : offeredItems) {
if (item.id == itemID) {
inTrade = true;
item.amount += amount;
c.getItems().deleteItem(itemID,
c.getItems().getItemSlot(itemID), amount);
break;
}
}
if (!inTrade) {
offeredItems.add(new GameItem(itemID, amount));
c.getItems().deleteItem(itemID, fromSlot, amount);
}
}
c.getItems().resetItems(3322);
resetTItems(3415);
o.getTradeAndDuel().resetOTItems(3416);
displayWAndI(c);
c.getPA().sendFrame126("", 3431);
o.getPA().sendFrame126("", 3431);
return true;
}[SPOIL][/SPOIL]