119 lines
2.2 KiB
Java
119 lines
2.2 KiB
Java
/**
|
|
*
|
|
*/
|
|
package cn.citycraft.SimpleEssential.command;
|
|
|
|
import org.bukkit.command.CommandException;
|
|
import org.bukkit.command.CommandSender;
|
|
|
|
/**
|
|
* @author 蒋天蓓
|
|
* 2015年8月12日下午12:49:34
|
|
* TODO
|
|
*/
|
|
public abstract class SimpleEssentialCommand {
|
|
private String name;
|
|
private String permission;
|
|
private String[] aliases;
|
|
|
|
public SimpleEssentialCommand(String name) {
|
|
this(name, new String[0]);
|
|
}
|
|
|
|
public SimpleEssentialCommand(String name, String... aliases) {
|
|
this.name = name;
|
|
this.aliases = aliases;
|
|
}
|
|
|
|
/**
|
|
* 获取命令名称
|
|
*
|
|
* @return 命令名称
|
|
*/
|
|
public String getName() {
|
|
return name;
|
|
}
|
|
|
|
/**
|
|
* 设置命令权限
|
|
*
|
|
* @param permission
|
|
* - 命令权限
|
|
*/
|
|
public void setPermission(String permission) {
|
|
this.permission = permission;
|
|
}
|
|
|
|
/**
|
|
* 获得命令权限
|
|
*
|
|
* @return 目录命令权限
|
|
*/
|
|
public String getPermission() {
|
|
return permission;
|
|
}
|
|
|
|
/**
|
|
* 检查Sender权限
|
|
*
|
|
* @param sender
|
|
* - 命令发送者
|
|
* @return 是否有权限执行命令
|
|
*/
|
|
public final boolean hasPermission(CommandSender sender) {
|
|
if (permission == null)
|
|
return true;
|
|
return sender.hasPermission(permission);
|
|
}
|
|
|
|
/**
|
|
* 获得可能的参数
|
|
*
|
|
* @return
|
|
*/
|
|
public abstract String getPossibleArguments();
|
|
|
|
/**
|
|
* 获得最小参数个数
|
|
*
|
|
* @return 最小参数个数
|
|
*/
|
|
public abstract int getMinimumArguments();
|
|
|
|
/**
|
|
* 执行命令参数
|
|
*
|
|
* @param sender
|
|
* - 命令发送者
|
|
* @param label
|
|
* - 命令
|
|
* @param args
|
|
* - 命令附加参数
|
|
* @throws CommandException
|
|
* - 命令异常
|
|
*/
|
|
public abstract void execute(CommandSender sender, String label, String[] args) throws CommandException;
|
|
|
|
/**
|
|
* 命令匹配检测
|
|
*
|
|
* @param name
|
|
* - 命令
|
|
* @return 是否匹配
|
|
*/
|
|
public final boolean isValidTrigger(String name) {
|
|
if (this.name.equalsIgnoreCase(name)) {
|
|
return true;
|
|
}
|
|
if (aliases != null) {
|
|
for (String alias : aliases) {
|
|
if (alias.equalsIgnoreCase(name)) {
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
}
|