Migrated to new commands handling.

This commit is contained in:
Jos van 't Hof
2012-06-05 08:58:37 +02:00
parent 5ea6d54c97
commit 9b5e09d390
14 changed files with 87 additions and 84 deletions

View File

@@ -1,18 +1,21 @@
package me.Josvth.RandomSpawn;
package me.Josvth.RandomSpawn.Commands;
import java.util.List;
import me.Josvth.RandomSpawn.RandomSpawn;
import org.bukkit.command.CommandSender;
public abstract class RandomSpawnCommandExecutor {
public abstract class AbstractCommand {
protected RandomSpawn plugin;
protected String name;
protected final RandomSpawn plugin;
protected final String name;
public void setPlugin(RandomSpawn instance) {
plugin = instance;
}
public AbstractCommand(RandomSpawn instance, String commandName){
plugin = instance;
name = commandName;
}
public abstract boolean onCommand(CommandSender sender, List<String> args);
public boolean onConsoleCommand(CommandSender sender, List<String> args){
@@ -22,8 +25,7 @@ public abstract class RandomSpawnCommandExecutor {
public String getName() {
return name;
}
public String getDescription() {
try {
return plugin.getCommand("rs " + name).getDescription();

View File

@@ -2,13 +2,15 @@ package me.Josvth.RandomSpawn.Commands;
import java.util.List;
import me.Josvth.RandomSpawn.RandomSpawn;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class BedsCommand extends AbstractCommand{
public BedsCommand(){
name = "usebeds";
public BedsCommand(RandomSpawn instance){
super(instance,"usebeds");
}
public boolean onCommand(CommandSender sender, List<String> args){

View File

@@ -2,15 +2,15 @@ package me.Josvth.RandomSpawn.Commands;
import java.util.List;
import me.Josvth.RandomSpawn.RandomSpawnCommandExecutor;
import me.Josvth.RandomSpawn.RandomSpawn;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class DisableCommand extends RandomSpawnCommandExecutor{
public class DisableCommand extends AbstractCommand{
public DisableCommand(){
name = "disable";
public DisableCommand(RandomSpawn instance){
super(instance,"disable");
}
public boolean onCommand(CommandSender sender, List<String> args){

View File

@@ -2,15 +2,15 @@ package me.Josvth.RandomSpawn.Commands;
import java.util.List;
import me.Josvth.RandomSpawn.RandomSpawnCommandExecutor;
import me.Josvth.RandomSpawn.RandomSpawn;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class EnableCommand extends RandomSpawnCommandExecutor{
public class EnableCommand extends AbstractCommand{
public EnableCommand(){
this.name = "enable";
public EnableCommand(RandomSpawn instance){
super(instance,"enable");
}
public boolean onCommand(CommandSender sender, List<String> args){

View File

@@ -5,13 +5,12 @@ import java.util.List;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import me.Josvth.RandomSpawn.RandomSpawnCommandExecutor;
import me.Josvth.RandomSpawn.RandomSpawn;
public class FirstJoinCommand extends AbstractCommand{
public class FirstJoinCommand extends RandomSpawnCommandExecutor{
public FirstJoinCommand(){
this.name = "firstjoin";
public FirstJoinCommand(RandomSpawn instance){
super(instance, "firstjoin");
}
public boolean onCommand(CommandSender sender, List<String> args){

View File

@@ -3,16 +3,16 @@ package me.Josvth.RandomSpawn.Commands;
import java.util.List;
import me.Josvth.RandomSpawn.RandomSpawnCommandExecutor;
import me.Josvth.RandomSpawn.RandomSpawn;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class RandomSpawnHelpCommand extends RandomSpawnCommandExecutor{
public class HelpCommand extends AbstractCommand{
public RandomSpawnHelpCommand(){
this.name = "help";
public HelpCommand(RandomSpawn instance){
super(instance, "help");
}
public boolean onCommand(CommandSender sender, List<String> args){

View File

@@ -2,16 +2,16 @@ package me.Josvth.RandomSpawn.Commands;
import java.util.List;
import me.Josvth.RandomSpawn.RandomSpawnCommandExecutor;
import me.Josvth.RandomSpawn.RandomSpawn;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class InfoCommand extends RandomSpawnCommandExecutor {
public class InfoCommand extends AbstractCommand {
public InfoCommand(){
this.name = "info";
public InfoCommand(RandomSpawn instance){
super(instance, "info");
}
public boolean onCommand(CommandSender sender, List<String> args){

View File

@@ -2,15 +2,15 @@ package me.Josvth.RandomSpawn.Commands;
import java.util.List;
import me.Josvth.RandomSpawn.RandomSpawnCommandExecutor;
import me.Josvth.RandomSpawn.RandomSpawn;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class RandomSpawnKeepSpawnsCommand extends RandomSpawnCommandExecutor {
public class KeepSpawnsCommand extends AbstractCommand {
public RandomSpawnKeepSpawnsCommand(){
this.name = "keepfirstspawns";
public KeepSpawnsCommand(RandomSpawn instance){
super(instance, "keepfirstspawns");
}
public boolean onCommand(CommandSender sender, List<String> args){

View File

@@ -2,15 +2,15 @@ package me.Josvth.RandomSpawn.Commands;
import java.util.List;
import me.Josvth.RandomSpawn.RandomSpawnCommandExecutor;
import me.Josvth.RandomSpawn.RandomSpawn;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class RandomSpawnReloadCommand extends RandomSpawnCommandExecutor {
public class ReloadCommand extends AbstractCommand {
public RandomSpawnReloadCommand(){
this.name = "reload";
public ReloadCommand(RandomSpawn instance){
super(instance, "reload");
}
public boolean onCommand(CommandSender sender, List<String> args){

View File

@@ -2,16 +2,16 @@ package me.Josvth.RandomSpawn.Commands;
import java.util.List;
import me.Josvth.RandomSpawn.RandomSpawnCommandExecutor;
import me.Josvth.RandomSpawn.RandomSpawn;
import org.bukkit.Location;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class RandomSpawnSetAreaCommand extends RandomSpawnCommandExecutor{
public class SetAreaCommand extends AbstractCommand{
public RandomSpawnSetAreaCommand(){
this.name = "setarea";
public SetAreaCommand(RandomSpawn instance){
super(instance,"setarea");
}
public boolean onCommand(CommandSender sender, List<String> args){

View File

@@ -2,15 +2,15 @@ package me.Josvth.RandomSpawn.Commands;
import java.util.List;
import me.Josvth.RandomSpawn.RandomSpawnCommandExecutor;
import me.Josvth.RandomSpawn.RandomSpawn;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class RandomSpawnSetFirstSpawnCommand extends RandomSpawnCommandExecutor{
public class SetFirstSpawnCommand extends AbstractCommand{
public RandomSpawnSetFirstSpawnCommand(){
this.name = "setfirstspawn";
public SetFirstSpawnCommand(RandomSpawn instance){
super(instance,"setfirstspawn");
}
public boolean onCommand(CommandSender sender, List<String> args){

View File

@@ -2,16 +2,16 @@ package me.Josvth.RandomSpawn.Commands;
import java.util.List;
import me.Josvth.RandomSpawn.RandomSpawnCommandExecutor;
import me.Josvth.RandomSpawn.RandomSpawn;
import org.bukkit.Location;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class RandomSpawnTpFirstSpawnCommand extends RandomSpawnCommandExecutor{
public class TpFirstSpawnCommand extends AbstractCommand{
public RandomSpawnTpFirstSpawnCommand(){
this.name = "tpfirstspawn";
public TpFirstSpawnCommand(RandomSpawn instance){
super(instance,"tpfirstspawn");
}
@Override

View File

@@ -2,15 +2,15 @@ package me.Josvth.RandomSpawn.Commands;
import java.util.List;
import me.Josvth.RandomSpawn.RandomSpawnCommandExecutor;
import me.Josvth.RandomSpawn.RandomSpawn;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class RandomSpawnUnsetFirstSpawnCommand extends RandomSpawnCommandExecutor{
public class UnsetFirstSpawnCommand extends AbstractCommand{
public RandomSpawnUnsetFirstSpawnCommand(){
this.name = "unsetfirstspawn";
public UnsetFirstSpawnCommand(RandomSpawn instance){
super(instance,"unsetfirstspawn");
}
public boolean onCommand(CommandSender sender, List<String> args){

View File

@@ -2,6 +2,7 @@ package me.Josvth.RandomSpawn.Handlers;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
@@ -9,14 +10,13 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import me.Josvth.RandomSpawn.RandomSpawn;
import me.Josvth.RandomSpawn.RandomSpawnCommandExecutor;
import me.Josvth.RandomSpawn.Commands.*;
public class CommandHandler implements CommandExecutor{
RandomSpawn plugin;
final RandomSpawn plugin;
HashMap<String,RandomSpawnCommandExecutor> commands = new HashMap<String,RandomSpawnCommandExecutor>();
HashMap<String,AbstractCommand> commands = new HashMap<String,AbstractCommand>();
public CommandHandler(RandomSpawn instance) {
plugin = instance;
@@ -24,30 +24,30 @@ public class CommandHandler implements CommandExecutor{
plugin.getCommand("randomspawn").setExecutor(this);
plugin.getCommand("rs").setExecutor(this);
registerCommands(new RandomSpawnCommandExecutor[]{
new BedsCommand(),
new DisableCommand(),
new EnableCommand(),
new FirstJoinCommand(),
new RandomSpawnHelpCommand(),
new InfoCommand(),
new RandomSpawnKeepSpawnsCommand(),
new RandomSpawnReloadCommand(),
new RandomSpawnSetAreaCommand(),
new RandomSpawnSetFirstSpawnCommand(),
new RandomSpawnTpFirstSpawnCommand(),
new RandomSpawnUnsetFirstSpawnCommand(),
registerCommands(new AbstractCommand[]{
new BedsCommand(plugin),
new DisableCommand(plugin),
new EnableCommand(plugin),
new FirstJoinCommand(plugin),
new HelpCommand(plugin),
new InfoCommand(plugin),
new KeepSpawnsCommand(plugin),
new ReloadCommand(plugin),
new SetAreaCommand(plugin),
new SetFirstSpawnCommand(plugin),
new TpFirstSpawnCommand(plugin),
new UnsetFirstSpawnCommand(plugin),
});
}
private void registerCommands(RandomSpawnCommandExecutor[] executors) {
private void registerCommands(AbstractCommand[] abstractCommands) {
for(RandomSpawnCommandExecutor executor : executors){
executor.setPlugin(plugin);
commands.put(executor.getName(), executor);
if (executor.getAliases() != null){
for(String alias : executor.getAliases()){
commands.put(alias, executor);
for(AbstractCommand abstractCommand : abstractCommands){
commands.put(abstractCommand.getName(), abstractCommand);
List<String> aliases = abstractCommand.getAliases();
if (abstractCommand.getAliases() != null){
for(String alias: aliases){
commands.put(alias, abstractCommand);
}
}
}
@@ -58,20 +58,20 @@ public class CommandHandler implements CommandExecutor{
if (args.length == 0 || !commands.containsKey(args[0])) return false;
RandomSpawnCommandExecutor commandExecutor = commands.get(args[0]);
AbstractCommand abstractCommand = commands.get(args[0]);
if (!(sender instanceof Player)){
sender.sendMessage("This command can only be used in game!");
return true;
}
if (commandExecutor.getPermission() != null && !sender.hasPermission(commandExecutor.getPermission())){
if (abstractCommand.getPermission() != null && !sender.hasPermission(abstractCommand.getPermission())){
sender.sendMessage("You don't have the permission to use this command!");
return true;
}
if (commandExecutor.onCommand(sender, Arrays.asList(args).subList(1, args.length)) == false && commandExecutor.getUsage() != null){
sender.sendMessage(commandExecutor.getUsage());
if (abstractCommand.onCommand(sender, Arrays.asList(args).subList(1, args.length)) == false && abstractCommand.getUsage() != null){
sender.sendMessage(abstractCommand.getUsage());
}
return true;