54 lines
1.4 KiB
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);
|
|
}
|
|
}
|