SimpleEssential/src/main/java/cn/citycraft/SimpleEssential/command/BaseCommand.java

124 lines
2.3 KiB
Java
Raw Normal View History

/**
*
*/
package cn.citycraft.SimpleEssential.command;
import org.bukkit.command.CommandException;
import org.bukkit.command.CommandSender;
/**
*
*
* @author 201581212:49:34
*/
2015-08-18 12:08:36 +00:00
public abstract class BaseCommand {
private String name;
private String permission;
private String[] aliases;
2015-08-18 12:08:36 +00:00
public BaseCommand(String name) {
this(name, new String[0]);
}
2015-08-18 12:08:36 +00:00
public BaseCommand(String name, String... aliases) {
this.name = name;
this.aliases = aliases;
}
/**
*
*
* @param sender
* -
* @param label
* -
* @param args
* -
* @throws CommandException
* -
*/
public abstract void execute(CommandSender sender, String label, String[] args) throws CommandException;
/**
*
*
* @return
*/
public abstract int getMinimumArguments();
/**
*
*
* @return
*/
public String getName() {
return name;
}
/**
*
*
* @return
*/
public String getPermission() {
return permission;
}
/**
*
*
* @return
*/
public abstract String getPossibleArguments();
/**
* Sender
*
* @param sender
* -
* @return
*/
public final boolean hasPermission(CommandSender sender) {
if (permission == null)
return true;
return sender.hasPermission(permission);
}
/**
*
*
* @return
*/
public abstract boolean isOnlyPlayerExecutable();
/**
*
*
* @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;
}
/**
*
*
* @param permission
* -
*/
public void setPermission(String permission) {
this.permission = permission;
}
}