- public boolean stakeItem(int itemID, int fromSlot, int amount) {
- for (int i : Config.ITEM_TRADEABLE) {
- if(i == itemID) {
- c.sendMessage("You can't stake this item.");
- return false;
- }
- }
- if(!c.getItems().playerHasItem(itemID, fromSlot, amount)) {
- return false;
- }
- if (amount <= 0)
- return false;
- Client o = (Client) Server.playerHandler.players[c.duelingWith];
- if (o == null ) {
- declineDuel();
- return false;
- }
- if (o.duelStatus <= 0 || c.duelStatus <= 0) {
- declineDuel();
- o.getTradeAndDuel().declineDuel();
- return false;
- }
- if (!c.canOffer) {
- return false;
- }
- changeDuelStuff();
- if(!Item.itemStackable[itemID]) {
- for(int a = 0; a < amount; a++) {
- if(c.getItems().playerHasItem(itemID, 1)) {
- stakedItems.add(new GameItem(itemID, 1));
- c.getItems().deleteItem(itemID, c.getItems().getItemSlot(itemID), 1);
- }
- }
- c.getItems().resetItems(3214);
- c.getItems().resetItems(3322);
- o.getItems().resetItems(3214);
- o.getItems().resetItems(3322);
- refreshDuelScreen();
- o.getTradeAndDuel().refreshDuelScreen();
- c.getPA().sendFrame126("", 6684);
- o.getPA().sendFrame126("", 6684);
- }
- if(!c.getItems().playerHasItem(itemID, amount)) {
- return false;
- }
- if (Item.itemStackable[itemID] || Item.itemIsNote[itemID]) {
- boolean found = false;
- for (GameItem item : stakedItems) {
- if (item.id == itemID) {
- found = true;
- item.amount += amount;
- c.getItems().deleteItem(itemID, fromSlot, amount);
- break;
- }
- }
- if (!found) {
- c.getItems().deleteItem(itemID, fromSlot, amount);
- stakedItems.add(new GameItem(itemID, amount));
- }
- }
- c.getItems().resetItems(3214);
- c.getItems().resetItems(3322);
- o.getItems().resetItems(3214);
- o.getItems().resetItems(3322);
- refreshDuelScreen();
- o.getTradeAndDuel().refreshDuelScreen();
- c.getPA().sendFrame126("", 6684);
- o.getPA().sendFrame126("", 6684);
- return true;
- }
