Example #1
0
 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);
 }
Example #2
0
 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);
 }
Example #3
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");
     }
 }