package cn.citycraft.CTZServer.commands; import java.util.ArrayList; import java.util.List; import cn.citycraft.CTZServer.ServerThread; import cn.citycraft.CTZServerCommon.CTZServer; import cn.citycraft.PluginHelper.utils.StringUtil; import net.md_5.bungee.api.ChatColor; 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)); registerCommand(new CommandGc(serverThread)); registerCommand(new CommandRegister(serverThread)); } public boolean execute(String cmd, String[] args) { String subcmd = args[0]; if (subcmd.equalsIgnoreCase("help")) { CTZServer.print("§6=========CTZ服务器帮助列表========="); for (BaseCommand command : commandlist) CTZServer.print(String.format("§6/yum §a%1$s %2$s §6- §b%3$s", command.getName(), command.getPossibleArguments(), command.getDescription())); return true; } 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.print(ChatColor.RED + "错误的参数 " + ChatColor.YELLOW + "使用方法 /yum " + command.getName() + command.getPossibleArguments()); CTZServer.print("未知命令 请使用help查看帮助..."); return false; } /** * 注册命令 * * @param command * - 被注册的命令类 */ public void registerCommand(BaseCommand command) { if (command != null) commandlist.add(command); } }