public function onEnable() { self::$instance = $this; PluginUtils::consoleLog("Initializing"); // Get arena positions from arenas.yml @mkdir($this->getDataFolder()); $this->arenaConfig = new Config($this->getDataFolder() . "config.yml", Config::YAML, array()); $this->arenaManager = new ArenaManager(); $this->arenaManager->init($this->arenaConfig); //Register events $this->getServer()->getPluginManager()->registerEvents(new EventManager($this->arenaManager), $this); //Register commands $addArenaCommand = new AddArenaCommand($this, $this->arenaManager); $this->getServer()->getCommandMap()->register($addArenaCommand->commandName, $addArenaCommand); $chestPlaceCmd = new ChestPlaceCommand($this, $this->arenaManager); $this->getServer()->getCommandMap()->register($chestPlaceCmd->commandName, $chestPlaceCmd); $spawnAddCmd = new SpawnAddCommand($this, $this->arenaManager); $this->getServer()->getCommandMap()->register($spawnAddCmd->commandName, $spawnAddCmd); $spawnToArenaCmd = new SpawnToArenaCommand($this, $this->arenaManager); $this->getServer()->getCommandMap()->register($spawnToArenaCmd->commandName, $spawnToArenaCmd); $addLobbyCmd = new AddLobbyCommand($this, $this->arenaManager); $this->getServer()->getCommandMap()->register($addLobbyCmd->commandName, $addLobbyCmd); $task = new MatchStarter($this->getInstance(), $this->arenaManager); Server::getInstance()->getScheduler()->scheduleDelayedRepeatingTask($task, 20, 20); $chestTask = new ChestRefreshTask($this->getInstance(), $this->arenaManager); Server::getInstance()->getScheduler()->scheduleDelayedRepeatingTask($chestTask, 20 * 120, 20 * 120); }
public function onPlayerJoin(PlayerLoginEvent $event) { $lobby = $this->arenaManager->getLobbySpawn(); if (isset($lobby)) { $event->getPlayer()->getInventory()->clearAll(); $event->getPlayer()->teleport($lobby); } else { PluginUtils::consoleLog("Lobby has not been set"); } $event->getPlayer()->setGamemode(0); }
/** * Creates a new spawnpoint at a position * @param Position $position * @param $id */ public function addSpawnpoint(Position $position, Player $sender, $id) { //create an array for the spawnpoint $spawnpoint = array('x' => $position->getX(), 'y' => $position->getY(), 'z' => $position->getZ(), 'level' => $position->getLevel()->getName()); for ($i = 0; $i < count($this->config->arenas); $i++) { $arenas = $this->config->arenas; $arena = $arenas[$i]; if ($arena['id'] == $id) { $arena['spawnpoints'][] = $spawnpoint; PluginUtils::consoleLog(json_encode($arena['spawnpoints'])); //debug $arenas[$i] = $arena; $this->config->set('arenas', $arenas); $this->config->save(); $sender->sendMessage(TextFormat::DARK_BLUE . "[HungerGames]" . TextFormat::WHITE . " Spawn added!"); $arenaSet = true; } } if (!isset($arenaSet)) { $sender->sendMessage(TextFormat::DARK_BLUE . "[HungerGames]" . TextFormat::WHITE . " This arena id does not exist"); } }