post line 2936 (prefer 2930-2960) in item assistant
|
Hello, this error i have been getting for a few days now, what is this?
Just reply if you need me to post any code.
Code:[5/16/13 12:29 PM]: java.lang.ArrayIndexOutOfBound***ception: -1 [5/16/13 12:29 PM]: at server.model.items.ItemAssistant.bankItem(ItemAssista nt.java:2936) [5/16/13 12:29 PM]: at server.model.items.ItemAssistant.depositInventory(Ite mAssistant.java:3831) [5/16/13 12:29 PM]: at server.model.players.packets.clicking.ClickingButtons .processPacket(ClickingButtons.java:753) [5/16/13 12:29 PM]: at server.model.players.PacketHandler.processPacket(Pack etHandler.java:157) [5/16/13 12:29 PM]: at server.model.players.Client.processPacket(Client.java :2182) [5/16/13 12:29 PM]: at server.model.players.Client$2.add(Client.java:2097) [5/16/13 12:29 PM]: at server.model.players.Client$2.add(Client.java:2093) [5/16/13 12:29 PM]: at server.model.players.Client.queueMessage(Client.java: 2323) [5/16/13 12:29 PM]: at server.net.ConnectionHandler.messageReceived(Connecti onHandler.java:31) [5/16/13 12:29 PM]: at org.apache.mina.common.support.AbstractIoFilterChain$ TailFilter.messageReceived(AbstractIoFilterChain.java:570) [5/16/13 12:29 PM]: at org.apache.mina.common.support.AbstractIoFilterChain. callNextMessageReceived(AbstractIoFilterChain.java:299) [5/16/13 12:29 PM]: at org.apache.mina.common.support.AbstractIoFilterChain. access$1100(AbstractIoFilterChain.java:53) [5/16/13 12:29 PM]: at org.apache.mina.common.support.AbstractIoFilterChain$ EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648) [5/16/13 12:29 PM]: at org.apache.mina.common.IoFilterAdapter.messageReceive d(IoFilterAdapter.java:80) [5/16/13 12:29 PM]: at org.apache.mina.common.support.AbstractIoFilterChain. callNextMessageReceived(AbstractIoFilterChain.java:299) [5/16/13 12:29 PM]: at org.apache.mina.common.support.AbstractIoFilterChain. access$1100(AbstractIoFilterChain.java:53) [5/16/13 12:29 PM]: at org.apache.mina.common.support.AbstractIoFilterChain$ EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648) [5/16/13 12:29 PM]: at org.apache.mina.filter.executor.ExecutorFilter.proces sEvent(ExecutorFilter.java:220) [5/16/13 12:29 PM]: at org.apache.mina.filter.executor.ExecutorFilter$Proces sEventsRunnable.run(ExecutorFilter.java:264) [5/16/13 12:29 PM]: at java.util.concurrent.ThreadPoolExecutor.runWorker(Unk nown Source) [5/16/13 12:29 PM]: at java.util.concurrent.ThreadPoolExecutor$Worker.run(Un known Source) [5/16/13 12:29 PM]: at org.apache.mina.util.NamePreservingRunnable.run(NameP reservingRunnable.java:51) [5/16/13 12:29 PM]: at java.lang.Thread.run(Unknown Source)
post line 2936 (prefer 2930-2960) in item assistant
Haha this is funny: its my bankitem method but here you go - Do you have a working method ill use it
Code:public boolean bankItem(int itemID, int fromSlot, int amount){ if(c.inTrade) { c.sendMessage("You can't store items while trading!"); return false; } if (c.playerItemsN[fromSlot] <= 0){ return false; } if (!Item.itemIsNote[c.playerItems[fromSlot]-1]) { if (c.playerItems[fromSlot] <= 0) { return false; } if (Item.itemStackable[c.playerItems[fromSlot]-1] || c.playerItemsN[fromSlot] > 1) { int toBankSlot = 0; boolean alreadyInBank=false; for (int i=0; i< Config.BANK_SIZE; i++) { if (c.bankItems[i] == c.playerItems[fromSlot]) { if (c.playerItemsN[fromSlot]<amount) amount = c.playerItemsN[fromSlot]; alreadyInBank = true; toBankSlot = i; i=Config.BANK_SIZE+1; } } if (!alreadyInBank && freeBankSlots() > 0) { for (int i=0; i<Config.BANK_SIZE; i++) { if (c.bankItems[i] <= 0) { toBankSlot = i; i=Config.BANK_SIZE+1; } } c.bankItems[toBankSlot] = c.playerItems[fromSlot]; if (c.playerItemsN[fromSlot]<amount){ amount = c.playerItemsN[fromSlot]; } if ((c.bankItemsN[toBankSlot] + amount) <= Config.MAXITEM_AMOUNT && (c.bankItemsN[toBankSlot] + amount) > -1) { c.bankItemsN[toBankSlot] += amount; } else { c.sendMessage("Bank full!"); return false; } deleteItem((c.playerItems[fromSlot]-1), fromSlot, amount); resetTempItems(); resetBank(); return true; } else if (alreadyInBank) { if ((c.bankItemsN[toBankSlot] + amount) <= Config.MAXITEM_AMOUNT && (c.bankItemsN[toBankSlot] + amount) > -1) { c.bankItemsN[toBankSlot] += amount; } else { c.sendMessage("Bank full!"); return false; } deleteItem((c.playerItems[fromSlot]-1), fromSlot, amount); resetTempItems(); resetBank(); return true; } else { c.sendMessage("Bank full!"); return false; } } else { itemID = c.playerItems[fromSlot]; int toBankSlot = 0; boolean alreadyInBank=false; for (int i=0; i<Config.BANK_SIZE; i++) { if (c.bankItems[i] == c.playerItems[fromSlot]) { alreadyInBank = true; toBankSlot = i; i=Config.BANK_SIZE+1; } } if (!alreadyInBank && freeBankSlots() > 0) { for (int i=0; i<Config.BANK_SIZE; i++) { if (c.bankItems[i] <= 0) { toBankSlot = i; i=Config.BANK_SIZE+1; } } int firstPossibleSlot=0; boolean itemExists = false; while (amount > 0) { itemExists = false; for (int i=firstPossibleSlot; i<c.playerItems.length; i++) { if ((c.playerItems[i]) == itemID) { firstPossibleSlot = i; itemExists = true; i=30; } } if (itemExists) { c.bankItems[toBankSlot] = c.playerItems[firstPossibleSlot]; c.bankItemsN[toBankSlot] += 1; deleteItem((c.playerItems[firstPossibleSlot]-1), firstPossibleSlot, 1); amount--; } else { amount=0; } } resetTempItems(); resetBank(); return true; } else if (alreadyInBank) { int firstPossibleSlot=0; boolean itemExists = false; while (amount > 0) { itemExists = false; for (int i=firstPossibleSlot; i<c.playerItems.length; i++) { if ((c.playerItems[i]) == itemID) { firstPossibleSlot = i; itemExists = true; i=30; } } if (itemExists) { c.bankItemsN[toBankSlot] += 1; deleteItem((c.playerItems[firstPossibleSlot]-1), firstPossibleSlot, 1); amount--; } else { amount=0; } } resetTempItems(); resetBank(); return true; } else { c.sendMessage("Bank full!"); return false; } } } else if (Item.itemIsNote[c.playerItems[fromSlot]-1] && !Item.itemIsNote[c.playerItems[fromSlot]-2]) { if (c.playerItems[fromSlot] <= 0) { return false; } if (Item.itemStackable[c.playerItems[fromSlot]-1] || c.playerItemsN[fromSlot] > 1) { int toBankSlot = 0; boolean alreadyInBank=false; for (int i=0; i<Config.BANK_SIZE; i++) { if (c.bankItems[i] == (c.playerItems[fromSlot]-1)) { if (c.playerItemsN[fromSlot]<amount) amount = c.playerItemsN[fromSlot]; alreadyInBank = true; toBankSlot = i; i=Config.BANK_SIZE+1; } } if (!alreadyInBank && freeBankSlots() > 0) { for (int i=0; i<Config.BANK_SIZE; i++) { if (c.bankItems[i] <= 0) { toBankSlot = i; i=Config.BANK_SIZE+1; } } c.bankItems[toBankSlot] = (c.playerItems[fromSlot]-1); if (c.playerItemsN[fromSlot]<amount){ amount = c.playerItemsN[fromSlot]; } if ((c.bankItemsN[toBankSlot] + amount) <= Config.MAXITEM_AMOUNT && (c.bankItemsN[toBankSlot] + amount) > -1) { c.bankItemsN[toBankSlot] += amount; } else { return false; } deleteItem((c.playerItems[fromSlot]-1), fromSlot, amount); resetTempItems(); resetBank(); return true; } else if (alreadyInBank) { if ((c.bankItemsN[toBankSlot] + amount) <= Config.MAXITEM_AMOUNT && (c.bankItemsN[toBankSlot] + amount) > -1) { c.bankItemsN[toBankSlot] += amount; } else { return false; } deleteItem((c.playerItems[fromSlot]-1), fromSlot, amount); resetTempItems(); resetBank(); return true; } else { c.sendMessage("Bank full!"); return false; } } else { itemID = c.playerItems[fromSlot]; int toBankSlot = 0; boolean alreadyInBank=false; for (int i=0; i<Config.BANK_SIZE; i++) { if (c.bankItems[i] == (c.playerItems[fromSlot]-1)) { alreadyInBank = true; toBankSlot = i; i=Config.BANK_SIZE+1; } } if (!alreadyInBank && freeBankSlots() > 0) { for (int i=0; i<Config.BANK_SIZE; i++) { if (c.bankItems[i] <= 0){ toBankSlot = i; i=Config.BANK_SIZE+1; } } int firstPossibleSlot=0; boolean itemExists = false; while (amount > 0) { itemExists = false; for (int i=firstPossibleSlot; i<c.playerItems.length; i++) { if ((c.playerItems[i]) == itemID) { firstPossibleSlot = i; itemExists = true; i=30; } } if (itemExists) { c.bankItems[toBankSlot] = (c.playerItems[firstPossibleSlot]-1); c.bankItemsN[toBankSlot] += 1; deleteItem((c.playerItems[firstPossibleSlot]-1), firstPossibleSlot, 1); amount--; } else { amount=0; } } resetTempItems(); resetBank(); return true; } else if (alreadyInBank) { int firstPossibleSlot=0; boolean itemExists = false; while (amount > 0) { itemExists = false; for (int i=firstPossibleSlot; i<c.playerItems.length; i++) { if ((c.playerItems[i]) == itemID) { firstPossibleSlot = i; itemExists = true; i=30; } } if (itemExists) { c.bankItemsN[toBankSlot] += 1; deleteItem((c.playerItems[firstPossibleSlot]-1), firstPossibleSlot, 1); amount--; } else { amount=0; } } resetTempItems(); resetBank(); return true; } else { c.sendMessage("Bank full!"); return false; } } } else { c.sendMessage("Item not supported "+(c.playerItems[fromSlot]-1)); return false; } }
this is mine?
Code:public boolean bankItem(int itemID, int fromSlot, int amount) { // Misc.println("its being used..."); if (c.playerItemsN[fromSlot] <= 0) { return false; } if (!Item.itemIsNote[c.playerItems[fromSlot] - 1]) { if (c.playerItems[fromSlot] <= 0) { return false; } if (Item.itemStackable[c.playerItems[fromSlot] - 1] || c.playerItemsN[fromSlot] > 1) { int toBankSlot = 0; boolean alreadyInBank = false; for (int i = 0; i < Config.BANK_SIZE; i++) { if (c.bankItems[i] == c.playerItems[fromSlot]) { if (c.playerItemsN[fromSlot] < amount) amount = c.playerItemsN[fromSlot]; alreadyInBank = true; toBankSlot = i; i = Config.BANK_SIZE + 1; } } if (!alreadyInBank && freeBankSlots() > 0) { for (int i = 0; i < Config.BANK_SIZE; i++) { if (c.bankItems[i] <= 0) { toBankSlot = i; i = Config.BANK_SIZE + 1; } } c.bankItems[toBankSlot] = c.playerItems[fromSlot]; if (c.playerItemsN[fromSlot] < amount) { amount = c.playerItemsN[fromSlot]; } if ((c.bankItemsN[toBankSlot] + amount) <= Config.MAXITEM_AMOUNT && (c.bankItemsN[toBankSlot] + amount) > -1) { c.bankItemsN[toBankSlot] += amount; } else { c.sendMessage("Bank full!"); return false; } deleteItem((c.playerItems[fromSlot] - 1), fromSlot, amount); resetTempItems(); resetBank(); return true; } else if (alreadyInBank) { if ((c.bankItemsN[toBankSlot] + amount) <= Config.MAXITEM_AMOUNT && (c.bankItemsN[toBankSlot] + amount) > -1) { c.bankItemsN[toBankSlot] += amount; } else { c.sendMessage("Bank full!"); return false; } deleteItem((c.playerItems[fromSlot] - 1), fromSlot, amount); resetTempItems(); resetBank(); return true; } else { c.sendMessage("Bank full!"); return false; } } else { itemID = c.playerItems[fromSlot]; int toBankSlot = 0; boolean alreadyInBank = false; for (int i = 0; i < Config.BANK_SIZE; i++) { if (c.bankItems[i] == c.playerItems[fromSlot]) { alreadyInBank = true; toBankSlot = i; i = Config.BANK_SIZE + 1; } } if (!alreadyInBank && freeBankSlots() > 0) { for (int i = 0; i < Config.BANK_SIZE; i++) { if (c.bankItems[i] <= 0) { toBankSlot = i; i = Config.BANK_SIZE + 1; } } int firstPossibleSlot = 0; boolean itemExists = false; while (amount > 0) { itemExists = false; for (int i = firstPossibleSlot; i < c.playerItems.length; i++) { if ((c.playerItems[i]) == itemID) { firstPossibleSlot = i; itemExists = true; i = 30; } } if (itemExists) { c.bankItems[toBankSlot] = c.playerItems[firstPossibleSlot]; c.bankItemsN[toBankSlot] += 1; deleteItem((c.playerItems[firstPossibleSlot] - 1), firstPossibleSlot, 1); amount--; } else { amount = 0; } } resetTempItems(); resetBank(); return true; } else if (alreadyInBank) { int firstPossibleSlot = 0; boolean itemExists = false; while (amount > 0) { itemExists = false; for (int i = firstPossibleSlot; i < c.playerItems.length; i++) { if ((c.playerItems[i]) == itemID) { firstPossibleSlot = i; itemExists = true; i = 30; } } if (itemExists) { c.bankItemsN[toBankSlot] += 1; deleteItem((c.playerItems[firstPossibleSlot] - 1), firstPossibleSlot, 1); amount--; } else { amount = 0; } } resetTempItems(); resetBank(); return true; } else { c.sendMessage("Bank full!"); return false; } } } else if (Item.itemIsNote[c.playerItems[fromSlot] - 1] && !Item.itemIsNote[c.playerItems[fromSlot] - 2]) { if (c.playerItems[fromSlot] <= 0) { return false; } if (Item.itemStackable[c.playerItems[fromSlot] - 1] || c.playerItemsN[fromSlot] > 1) { int toBankSlot = 0; boolean alreadyInBank = false; for (int i = 0; i < Config.BANK_SIZE; i++) { if (c.bankItems[i] == (c.playerItems[fromSlot] - 1)) { if (c.playerItemsN[fromSlot] < amount) amount = c.playerItemsN[fromSlot]; alreadyInBank = true; toBankSlot = i; i = Config.BANK_SIZE + 1; } } if (!alreadyInBank && freeBankSlots() > 0) { for (int i = 0; i < Config.BANK_SIZE; i++) { if (c.bankItems[i] <= 0) { toBankSlot = i; i = Config.BANK_SIZE + 1; } } c.bankItems[toBankSlot] = (c.playerItems[fromSlot] - 1); if (c.playerItemsN[fromSlot] < amount) { amount = c.playerItemsN[fromSlot]; } if ((c.bankItemsN[toBankSlot] + amount) <= Config.MAXITEM_AMOUNT && (c.bankItemsN[toBankSlot] + amount) > -1) { c.bankItemsN[toBankSlot] += amount; } else { return false; } deleteItem((c.playerItems[fromSlot] - 1), fromSlot, amount); resetTempItems(); resetBank(); return true; } else if (alreadyInBank) { if ((c.bankItemsN[toBankSlot] + amount) <= Config.MAXITEM_AMOUNT && (c.bankItemsN[toBankSlot] + amount) > -1) { c.bankItemsN[toBankSlot] += amount; } else { return false; } deleteItem((c.playerItems[fromSlot] - 1), fromSlot, amount); resetTempItems(); resetBank(); return true; } else { c.sendMessage("Bank full!"); return false; } } else { itemID = c.playerItems[fromSlot]; int toBankSlot = 0; boolean alreadyInBank = false; for (int i = 0; i < Config.BANK_SIZE; i++) { if (c.bankItems[i] == (c.playerItems[fromSlot] - 1)) { alreadyInBank = true; toBankSlot = i; i = Config.BANK_SIZE + 1; } } if (!alreadyInBank && freeBankSlots() > 0) { for (int i = 0; i < Config.BANK_SIZE; i++) { if (c.bankItems[i] <= 0) { toBankSlot = i; i = Config.BANK_SIZE + 1; } } int firstPossibleSlot = 0; boolean itemExists = false; while (amount > 0) { itemExists = false; for (int i = firstPossibleSlot; i < c.playerItems.length; i++) { if ((c.playerItems[i]) == itemID) { firstPossibleSlot = i; itemExists = true; i = 30; } } if (itemExists) { c.bankItems[toBankSlot] = (c.playerItems[firstPossibleSlot] - 1); c.bankItemsN[toBankSlot] += 1; deleteItem((c.playerItems[firstPossibleSlot] - 1), firstPossibleSlot, 1); amount--; } else { amount = 0; } } resetTempItems(); resetBank(); return true; } else if (alreadyInBank) { int firstPossibleSlot = 0; boolean itemExists = false; while (amount > 0) { itemExists = false; for (int i = firstPossibleSlot; i < c.playerItems.length; i++) { if ((c.playerItems[i]) == itemID) { firstPossibleSlot = i; itemExists = true; i = 30; } } if (itemExists) { c.bankItemsN[toBankSlot] += 1; deleteItem((c.playerItems[firstPossibleSlot] - 1), firstPossibleSlot, 1); amount--; } else { amount = 0; } } resetTempItems(); resetBank(); return true; } else { c.sendMessage("Bank full!"); return false; } } } else { c.sendMessage("Item not supported " + (c.playerItems[fromSlot] - 1)); return false; } }
Thanks karma no nullpointers so far!
« Previous Thread | Next Thread » |
Thread Information |
Users Browsing this ThreadThere are currently 1 users browsing this thread. (0 members and 1 guests) |