<?php

namespace Juqn\Commands;

use Juqn\Loader;
use pocketmine\command\Command;
use pocketmine\command\CommandSender;
use pocketmine\level\Level;
use pocketmine\Player;

class MLGCommand extends Command {
	
	public $plugin;
	
	public function __construct(Loader $plugin){
		parent::__construct("cmlg");
		$this->plugin = $plugin;
	}
	
	public function getPlugin(){
		return $this->plugin;
	}
	
	public function execute(CommandSender $sender, $commandLabel, array $args){
		$manager = $this->getPlugin()->getArenaManager();
		if($sender instanceof Player){
			if($sender->isOp()){
				if(isset($args[0])){
					switch (strtolower($args[0])){
						case 'criar':
							if(isset($manager->sessions[$sender->getName()])){
								$sender->sendMessage("§cВы уже создаете арену!");
								return true;
							}
							if(isset($args[1]) and isset($args[2]) and isset($args[3])){
								if(is_numeric($args[2])){
									$level = $this->getPlugin()->getServer()->getLevelByName($args[3]);
									if($level instanceof Level){
										if($manager->createArena($sender, $args[1], $args[2], $args[3])){
											$sender->getInventory()->clearAll();
											$sender->setGamemode(1);
											$sender->teleport($level->getSafeSpawn());
											$sender->sendMessage("§aУстанови точки §70 - {$args[2]}");
										} else {
											$sender->sendMessage("§cЭтот песок уже существует");
										}
									} else {
										$sender->sendMessage("§cЭтот мир не существует");
									}
								} else {
									$sender->sendMessage("§cПожалуйста, положите слоты в цифрах");
								}
							} else {
								$sender->sendMessage("§cUse /cmlg criar [nome] [slots] [mundo]");
							}
							break;
						case 'deletar':
							if(isset($args[1])){
								if(isset($manager->arenas[$args[1]])){
									unset($manager->arenas[$args[1]]);
									unlink($this->getPlugin()->getDataFolder()."Arenas/".$args[1].".yml");
									if(file_exists($this->getPlugin()->getDataFolder()."Maps/".$args[1].".zip")){
									    unlink($this->getPlugin()->getDataFolder()."Maps/".$args[1].".zip");
                                    }
									$sender->sendMessage("§cПесок был удален правильно");
								} else {
									$sender->sendMessage("§cЭтот песок не существует");
								}
							} else {
								$sender->sendMessage("§cUse /cmlg deletar [name]");
							}
							break;
						case 'cancelar':
							if(isset($manager->sessions[$sender->getName()])){
								$sender->setGamemode(0);
								$sender->getInventory()->clearAll();
								$sender->setHealth(20);
								$sender->setFood(20);
								$sender->teleport($this->getPlugin()->getServer()->getDefaultLevel()->getSafeSpawn());
								unset($manager->sessions[$sender->getName()]);
								$sender->sendMessage("§cВы отменили создание арене правильно");
							} else {
								$sender->sendMessage("§cВы не находитесь в режиме создания арены");
							}
							break;
						case 'help':
							$sender->sendMessage("§l§8::: §r§eСПИСОК КОМАНД §l§8:::§r\n§f/cmlg CRIAR [nome] [slots] [mundo]\n§f/cmlg DELETAR [nome]\n§f/cmlg CANCELAR\n§l§8::§r §ePLUGIN CREATE BY JUQNGOOD §8§l::§r");
							break;
						case 'spawn':
							if(!isset($manager->sessions[$sender->getName()])){
								return true;
							}
							$xyz = array($sender->getX(), $sender->getY(), $sender->getZ());
							$session = $manager->sessions[$sender->getName()];
							$sender->sendMessage("§aСпавн успешно добавлен §7[" . (count($session['spawns']) + 1) . " - " . $session['slots'] . "]");
							$manager->sessions[$sender->getName()]['spawns'][count($session['spawns']) + 1] = $xyz;
							if (count($session['spawns']) == ($session['slots']  - 1)) {
								$manager->registerArena($sender->getName());
        				        $sender->sendMessage("§aАрена создана успешно");
    				            $sender->setGamemode(0);
     				           $sender->teleport($this->getPlugin()->getServer()->getDefaultLevel()->getSafeSpawn());
      				          $sender->setFood(20);
   				             $sender->setHealth(20);
							}
							break;
							default:
								$sender->sendMessage("§cЭта команда не существует");
								break;
					}
				} else {
					$sender->sendMessage("§cUse: /cmlg help");
				}
			} else {
				$sender->sendMessage("§c» §fYou don't have permissions to do that!");
			}
		} else {
			$sender->sendMessage("§cИспользуйте команду в игре");
		}
		return false;
	}
}