Originally Posted by
Ch3ck it S0n
If this is what you're asking...
Code:
private/*or public*/ int[][] spawningItems() {
int[][] result;
result = new int[Config.ITEM_LIMIT][2];
for(int i = 0; i < result.length; i++) {
result[i][0] = i;
result[i][1] = Server.itemHandler.ItemList[i].ShopValue;
} return result;
}
private/*or public*/ boolean canSpawnItem(int itemId) {
return (c.getItems().playerHasItem(995, spawningItems()[itemId][1]);
}
//put this in appropriate place:
if(playerCommand.startsWith("item")) {
if(c.inWild()) c.sendMessage("You cannot spawn items in the wild"); return;
try {
String[] args = playerCommand.split(" ");
if(args.length == 3) {
int itemId = Integer.parseInt(args[1]);
int itemAmount = Integer.parseInt(args[2]);
if(canSpawnItem(itemId)) {
if(itemId <= Config.ITEM_LIMIT && itemId >= 0) {
c.getItems().addItem(itemId, itemAmount);
}
} else {
c.sendMessage("You need " + spawningItems()[itemId][1] + " coins to spawn this item.");
}
} else {
c.sendMessage("Wrong usage. Use as: \"::pickup ID Amount\".");
}
} catch(Exception e) {}
}
Damn that code looks ugly...
Code:
if (playerCommand.startsWith("item")) {
final String[] args = playerCommand.split(" ");
final int itemID = Integer.parseInt(args[1]), amount = (Integer.parseInt(args[2]) > c.getItems().freeSlots() ? c.getItems().freeSlots() : Integer.parseInt(args[2]));
final int price = Server.itemHandler.ItemList[itemID].ShopValue * amount;
//final String itemName = ItemAssistant.getItemName(itemID); //use if you want item name in sendMessage
if (amount <= 0)
return;
if (!c.getItems().playerHasItem(995, price)) {
c.sendMessage("You need " + price + " gold pieces to spawn this item."); //to spawn " + amount + itemName + (amount > 1 ? "s" : ""));
break;
}
c.getItems().deleteItem(995, c.getItems().getItemSlot(995), price);
c.getItems().addItem(itemID, amount);
}