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

54 lines
1.4 KiB
Java

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