コード例 #1
0
  @Override
  protected String getReply(Bot bot, JBotSender sender, String[] args) {
    if (args.length < 1) {
      throw new IllegalArgumentException();
    } else if (args.length == 1) {
      Map<String, AliasCommand> aliases = bot.getAliases();
      if (aliases.isEmpty()) {
        return "Defined aliases: none";
      } else {
        StringBuilder msg = new StringBuilder("Defined aliases:");
        for (Map.Entry<String, AliasCommand> entry : aliases.entrySet()) {
          msg.append("\n\t").append(entry.getKey()).append(entry.getValue().getHelp());
        }
        return msg.toString();
      }
    } else if (args.length < 3) {
      String alias = args[1];
      AliasCommand aliasCmd = bot.removeAlias(alias);
      if (aliasCmd != null) {
        return "deleted alias: " + alias + aliasCmd.getHelp();
      } else {
        return sender.getNickname() + ": don't know an alias called '" + alias + "'";
      }
    } else {
      String alias = args[1];
      String cmdName = args[2];
      JBotCommand cmd = bot.getCommand(cmdName);
      if (cmd == null) {
        return sender.getNickname()
            + ": sorry don't know a command or alias called '"
            + cmdName
            + "'";
      }
      String[] cmdArguments = ArrayUtils.EMPTY_STRING_ARRAY;
      if (args.length > 3) {
        cmdArguments = MessageHelper.copyOfRange(args, 3, args.length);
      }

      AliasCommand aliasCmd = new AliasCommand(cmd, cmdName, cmdArguments);
      try {
        bot.addAlias(alias, aliasCmd);
      } catch (IllegalArgumentException e) {
        return sender.getNickname() + ": " + e.getMessage();
      }
      return "created alias: " + alias + aliasCmd.getHelp();
    }
  }