CTZServer/src/main/java/cn/citycraft/CTZServer/commands/HandlerCommand.java

61 lines
1.9 KiB
Java

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<String> RegisterCommandList = new ArrayList<String>();
/**
* 命令监听类列表
*/
private List<BaseCommand> commandlist = new ArrayList<BaseCommand>();
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);
}
}