示例#1
0
  @Override
  public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
    if (args.length > 0) {
      if (args[0].equalsIgnoreCase("pay")) {
        if (args.length >= 3) {
          if (plugin.getServer().getPlayer(args[1]) != null) {
            Player player = plugin.getServer().getPlayer(args[1]);
            if (((Player) sender).getWorld().equals(player.getWorld())) {
              if (((Player) sender).getLocation().distance(player.getLocation()) <= 8) {
                Currency currency = plugin.getPrimaryCurrency();
                if (args.length >= 4) {
                  if (plugin.getCurrency(args[3]) != null) {
                    currency = plugin.getCurrency(args[3]);
                  }
                }
                if (Integer.parseInt(args[2]) > 0) {
                  try {
                    plugin.transferMoney(
                        (Player) sender, player, currency, Integer.parseInt(args[2]));
                    sender.sendMessage(
                        plugin.getPrefix()
                            + ChatColor.GREEN
                            + ((Player) sender).getDisplayName()
                            + ChatColor.GREEN
                            + " gave "
                            + args[2]
                            + " "
                            + (Integer.parseInt(args[2]) == 1
                                ? currency.getNameSingular()
                                : currency.getNamePlural())
                            + " to "
                            + player.getDisplayName());
                    player.sendMessage(
                        plugin.getPrefix()
                            + ChatColor.GREEN
                            + ((Player) sender).getDisplayName()
                            + ChatColor.GREEN
                            + " gave "
                            + args[2]
                            + " "
                            + (Integer.parseInt(args[2]) == 1
                                ? currency.getNameSingular()
                                : currency.getNamePlural())
                            + " to "
                            + player.getDisplayName());
                  } catch (NumberFormatException exception) {
                    sender.sendMessage(
                        plugin.getPrefix()
                            + ChatColor.RED
                            + "You must specify a number for the amount of money to send.");
                  }
                } else {
                  sender.sendMessage(
                      plugin.getPrefix()
                          + ChatColor.RED
                          + "You must pay at least 1 "
                          + currency.getNameSingular()
                          + "!");
                }
              } else {
                sender.sendMessage(
                    plugin.getPrefix()
                        + ChatColor.RED
                        + ((Player) sender).getDisplayName()
                        + ChatColor.RED
                        + " must be standing a little closer to "
                        + player.getDisplayName()
                        + ChatColor.RED
                        + " in order to give them any money.");
              }
            }

          } else {
            sender.sendMessage(
                plugin.getPrefix()
                    + ChatColor.RED
                    + "Usage: /money pay [player] [amount] (currency)");
          }
        }
      } else if (args[0].equalsIgnoreCase("set")) {
        if (sender.hasPermission("wayward.economy.command.money.set")) {
          if (args.length >= 3) {
            if (plugin.getServer().getPlayer(args[1]) != null) {
              Player player = plugin.getServer().getPlayer(args[1]);
              Currency currency = plugin.getPrimaryCurrency();
              if (args.length >= 4) {
                if (plugin.getCurrency(args[3]) != null) {
                  currency = plugin.getCurrency(args[3]);
                }
              }
              try {
                plugin.setMoney(player, currency, Integer.parseInt(args[2]));
                sender.sendMessage(
                    plugin.getPrefix()
                        + ChatColor.GREEN
                        + "Set "
                        + player.getDisplayName()
                        + ChatColor.GREEN
                        + "'s "
                        + currency.getNameSingular()
                        + " balance to "
                        + args[2]);
                player.sendMessage(
                    plugin.getPrefix()
                        + ChatColor.GREEN
                        + "Your "
                        + currency.getNameSingular()
                        + " balance was set to "
                        + args[2]);
              } catch (NumberFormatException exception) {
                sender.sendMessage(
                    plugin.getPrefix()
                        + ChatColor.RED
                        + "You must specify a number for the amount of money to set.");
              }
            } else {
              sender.sendMessage(plugin.getPrefix() + ChatColor.RED + "That player is not online.");
            }
          } else {
            sender.sendMessage(
                plugin.getPrefix()
                    + ChatColor.RED
                    + "Usage: /money set [player] [amount] (currency)");
          }
        } else {
          sender.sendMessage(plugin.getPrefix() + ChatColor.RED + "You do not have permission.");
        }
      } else if (args[0].equalsIgnoreCase("add")) {
        if (sender.hasPermission("wayward.economy.command.money.set")) {
          if (args.length >= 3) {
            if (plugin.getServer().getPlayer(args[1]) != null) {
              Player player = plugin.getServer().getPlayer(args[1]);
              Currency currency = plugin.getPrimaryCurrency();
              if (args.length >= 4) {
                if (plugin.getCurrency(args[3]) != null) {
                  currency = plugin.getCurrency(args[3]);
                }
              }
              try {
                plugin.addMoney(player, currency, Integer.parseInt(args[2]));
                sender.sendMessage(
                    plugin.getPrefix()
                        + ChatColor.GREEN
                        + "Set "
                        + player.getDisplayName()
                        + ChatColor.GREEN
                        + "'s "
                        + currency.getNameSingular()
                        + " balance to "
                        + plugin.getMoney(player));
                player.sendMessage(
                    plugin.getPrefix()
                        + ChatColor.GREEN
                        + "Your "
                        + currency.getNameSingular()
                        + " balance was set to "
                        + plugin.getMoney(player));
              } catch (NumberFormatException exception) {
                sender.sendMessage(
                    plugin.getPrefix()
                        + ChatColor.RED
                        + "You must specify a number for the amount of money to add.");
              }
            } else {
              sender.sendMessage(plugin.getPrefix() + ChatColor.RED + "That player is not online.");
            }
          } else {
            sender.sendMessage(
                plugin.getPrefix()
                    + ChatColor.RED
                    + "Usage: /money add [player] [amount] (currency)");
          }
        } else {
          sender.sendMessage(plugin.getPrefix() + ChatColor.RED + "You do not have permission.");
        }
      } else if (args[0].equalsIgnoreCase("top")) {
        sender.sendMessage(plugin.getPrefix() + ChatColor.GREEN + "Top balances: ");
        int i = 1;
        for (Character character : plugin.getRichestCharacters()) {
          if (character != null) {
            sender.sendMessage(
                ChatColor.GRAY
                    + ""
                    + i
                    + ". "
                    + (character.isDead() ? ChatColor.RED : ChatColor.GREEN)
                    + (character.isNameHidden()
                        ? ChatColor.MAGIC + character.getName() + ChatColor.RESET
                        : character.getName())
                    + ChatColor.GRAY
                    + " ("
                    + (character.isDead() ? ChatColor.RED + "Dead" : ChatColor.GREEN + "Alive")
                    + ChatColor.GRAY
                    + "): "
                    + plugin.getMoney(character)
                    + " "
                    + (plugin.getMoney(character) == 1
                        ? plugin.getPrimaryCurrency().getNameSingular()
                        : plugin.getPrimaryCurrency().getNamePlural()));
          } else {
            break;
          }
          i++;
        }
      } else if (plugin.getCurrency(args[0]) != null) {
        Currency currency = plugin.getCurrency(args[0]);
        sender.sendMessage(
            plugin.getPrefix()
                + ChatColor.GREEN
                + currency.getNameSingular()
                + " balance: "
                + plugin.getMoney((Player) sender, currency));
      } else if (plugin.getServer().getPlayer(args[0]) != null) {
        Player player = plugin.getServer().getPlayer(args[0]);
        sender.sendMessage(plugin.getPrefix() + ChatColor.GREEN + "Balance: ");
        for (Currency currency : plugin.getCurrencies()) {
          sender.sendMessage(
              ChatColor.GREEN
                  + ""
                  + plugin.getMoney(player, currency)
                  + " "
                  + (plugin.getMoney(player, currency) == 1
                      ? currency.getNameSingular()
                      : currency.getNamePlural()));
        }
      } else {
        sender.sendMessage(plugin.getPrefix() + ChatColor.RED + "Unknown command!");
      }
    } else {
      sender.sendMessage(plugin.getPrefix() + ChatColor.GREEN + "Balance: ");
      for (Currency currency : plugin.getCurrencies()) {
        sender.sendMessage(
            ChatColor.GREEN
                + ""
                + plugin.getMoney((Player) sender, currency)
                + " "
                + (plugin.getMoney((Player) sender, currency) == 1
                    ? currency.getNameSingular()
                    : currency.getNamePlural()));
      }
    }
    return true;
  }