@Override public boolean perform(CommandSender sender, LinkedHashMap<String, Argument> arguments) throws InvalidUsage { if (!hasPermissions(sender, "take")) { template.noPermission(sender); return false; } String name = arguments.get("name").getStringValue(); String tag = template.color(Template.Node.TAG_MONEY); Double amount; if (name.equals("0")) throw new InvalidUsage("Missing name parameter: /money take <name> <amount>"); if (arguments.get("amount").getStringValue().equals("empty")) throw new InvalidUsage("Missing amount parameter: /money take <name> <amount>"); try { amount = arguments.get("amount").getDoubleValue(); } catch (NumberFormatException e) { throw new InvalidUsage("Invalid amount parameter, must be double."); } if (Double.isInfinite(amount) || Double.isNaN(amount)) throw new InvalidUsage("Invalid amount parameter, must be double."); if (!Accounts.exists(name)) { template.set(Template.Node.ERROR_ACCOUNT); template.add("name", name); Messaging.send(sender, tag + template.parse()); return false; } Account account = new Account(name); account.getHoldings().subtract(amount); template.set(Template.Node.PLAYER_DEBIT); template.add("name", name); template.add("amount", iConomy.format(amount)); Messaging.send(sender, tag + template.parse()); return false; }
private static void checkExist(String playerName) { Accounts acc = new Accounts(); if (!acc.exists(playerName)) { acc.create(playerName); } }