package cn.citycraft.CTZServer.commands; import java.util.ArrayList; import java.util.List; import org.bukkit.ChatColor; import cn.citycraft.CTZServer.CTZServer; import cn.citycraft.CTZServer.ServerThread; import cn.citycraft.CTZServer.utils.StringUtil; public class HandlerCommand { ServerThread serverThread; /** * 已注册命令列表(包括别名) */ List RegisterCommandList = new ArrayList(); /** * 命令监听类列表 */ private List commandlist = new ArrayList(); public HandlerCommand(ServerThread serverThread) { this.serverThread = serverThread; registerCommand(new CommandStop(serverThread)); } public boolean execute(String cmd, String[] args) { String subcmd = args[0]; String[] subargs = StringUtil.moveStrings(args, 1); for (BaseCommand command : commandlist) if (command.isValidTrigger(subcmd)) if (subargs.length >= command.getMinimumArguments()) { command.execute(subcmd, subargs); return true; } else CTZServer.getLogger().info(ChatColor.RED + "错误的参数 " + ChatColor.YELLOW + "使用方法 /yum " + command.getName() + command.getPossibleArguments()); CTZServer.getLogger().info("未知命令 请使用help查看帮助..."); return false; } /** * 注册命令 * * @param command * - 被注册的命令类 */ public void registerCommand(BaseCommand command) { if (command != null) commandlist.add(command); } }