@Override public void run( final Server server, final User user, final String commandLabel, final String[] args) throws Exception { if (args.length < 1) { throw new NotEnoughArgumentsException(); } if (args[0].equalsIgnoreCase("hand")) { final ItemStack item = user.getItemInHand(); if (item == null) { throw new Exception(Util.i18n("repairInvalidType")); } final String itemName = item.getType().toString().toLowerCase(); final Trade charge = new Trade("repair-" + itemName.replace('_', '-'), ess); charge.isAffordableFor(user); repairItem(item); charge.charge(user); user.sendMessage(Util.format("repair", itemName.replace('_', ' '))); } else if (args[0].equalsIgnoreCase("all")) { final List<String> repaired = new ArrayList<String>(); repairItems(user.getInventory().getContents(), user, repaired); repairItems(user.getInventory().getArmorContents(), user, repaired); if (repaired.isEmpty()) { throw new Exception(Util.format("repairNone")); } else { user.sendMessage(Util.format("repair", Util.joinList(repaired))); } } else { throw new NotEnoughArgumentsException(); } }