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

import net.mc_pandacraft.java.plugin.pandacraftutils.players.OnlinePlayer;
import net.mc_pandacraft.java.plugin.pandacraftutils.players.OnlinePlayerManager;

import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;

public class Command_Selection extends AbstractCommandExecutor {

	public Command_Selection() {
		super("/selection");
	}
	
	
	
	
	

	// permet d'activer / désactiver l'affichage du cubo
	@Override
	public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
		
		if (! (sender instanceof Player))
		{
			sender.sendMessage(ChatColor.RED+"Seul un joueur en ligne peut effectuer cette commande");
			return false;
		}
		
		if (plugin.getServer().getPluginManager().getPlugin("WorldEdit") == null)
		{
			sender.sendMessage(ChatColor.RED+"Plugin WorldEdit non installé");
			return false;
		}
		
		Player p = (Player) sender;
		OnlinePlayer op = OnlinePlayerManager.get(p);
		
		
		Player otherP = null;
		if (args.length > 0)
		{
			otherP = plugin.getServer().getPlayer(args[0]);
			if (otherP == null)
			{
				sender.sendMessage(ChatColor.RED+"Le joueur indiqué n'existe pas");
				return true;
			}
		}
			
		
		if (op.canViewWESelection() && otherP == null)
		{	// le joueur ne veut plus voir de cubo
			op.disableViewingWESelection();
			sender.sendMessage(ChatColor.GREEN+"Affichage de la sélection désactivé.");
		}
		else if (op.canViewWESelection())
		{
			if (op.hasPlayerForWiewingHisWESelection(otherP))
			{
				op.removePlayerForWiewingHisWESelection(otherP);
				sender.sendMessage(ChatColor.GREEN+"Affichage de la sélection de "+ChatColor.GRAY+otherP.getName()+ChatColor.GREEN+" désactivé.");
			}
			else
			{
				op.addPlayerForWiewingHisWESelection(otherP);
				sender.sendMessage(ChatColor.GREEN+"Affichage de la sélection de "+ChatColor.GRAY+otherP.getName()+ChatColor.GREEN+" activé.");
			}
				
		}
		else
		{
			op.enableViewingWESelection();
			sender.sendMessage(ChatColor.GREEN+"Affichage de la sélection activé. Si vous ne voyez pas les particules, activez les dans vos options Minecraft.");
			if (otherP != null) {
				op.addPlayerForWiewingHisWESelection(otherP);
				sender.sendMessage(ChatColor.GREEN+"Affichage de la sélection de "+ChatColor.GRAY+otherP.getName()+ChatColor.GREEN+" activé.");
			}
		}
		
		return true;
	}
	

}
