package net.mc_pandacraft.java.plugin.pandacraftutils.commands;

import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;

import net.mc_pandacraft.java.plugin.pandacraftutils.PandacraftUtils;

/**
 * Classe parente de toutes les classes devant prendre en charge l'exécution d'une commande Minecraft
 */

/* package */ abstract class AbstractCommandExecutor implements CommandExecutor {
	
	protected PandacraftUtils plugin = PandacraftUtils.getInstance();
	
	protected final String commandName;
	
	/**
	 * 
	 * @param cName (ne peut être null) nom de la commande tel que défini dans le fichier plugin.yml
	 */
	public AbstractCommandExecutor(String cName) {
		if (cName == null) throw new IllegalArgumentException("La commande doit avoir un nom");
		commandName = cName;
		
        plugin.getCommand(commandName).setExecutor(this);
	}
	
	public String getCommandName() { return commandName; }
	
	public abstract boolean onCommand(CommandSender sender, Command cmd, String label,
			String[] args);
	
	
}
