Example #1
0
  @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;
  }
Example #2
0
 private static void checkExist(String playerName) {
   Accounts acc = new Accounts();
   if (!acc.exists(playerName)) {
     acc.create(playerName);
   }
 }