public static function preloadLevels(HungerGamesPlugIn &$plugin) { $levelList = []; $path = $plugin->getDataFolder() . self::DIR_LEVEL_DATA; if (!file_exists($path)) { @mkdir($path, 0755, true); } $plugin->getLogger()->info("#loading game level on " . $path); $handler = opendir($path); while (($filename = readdir($handler)) !== false) { $plugin->getLogger()->info($filename); if ($filename != "." && $filename != "..") { $data = new Config($path . $filename, Config::YAML); Server::getInstance()->loadLevel($data->get("levelName")); $pLevel = Server::getInstance()->getLevelByName($data->get("levelName")); $name = str_replace(".yml", "", $filename); $arena = new GameLevelModel($plugin, $name); $arena->id = time(); $arena->level = $pLevel; $arena->name = $data->get("name"); $arena->displayName = $data->get("displayName"); $arena->datafile = $data->get("datafile"); $arena->levelName = $data->get("levelName"); $arena->type = $data->get("type"); $arena->location = new Position($data->get("locationX"), $data->get("locationY"), $data->get("locationZ")); $arena->waitCountDown = $data->get("waitCountDown", 20); $arena->joinDownCounter = $data->get("joinDownCounter", 18); $arena->joinDownCounterReset = $data->get("joinDownCounter", 18); $arena->status = self::STATUS_AVAILABLE; $arena->mapSelectionWaitTime = $data->get("mapSelectionWaitTime"); if ($data->get("entranceX") != null) { $arena->enterpos = new Position($data->get("entranceX"), $data->get("entranceY"), $data->get("entranceZ"), $pLevel); } if ($data->get("exitX") != null) { $arena->exitPos = new Position($data->get("exitX"), $data->get("exitY"), $data->get("exitZ")); } if ($data->get("gatePos1X") != null) { $arena->gatePos1 = new Position($data->get("gatePos1X"), $data->get("gatePos1Y"), $data->get("gatePos1Z"), $pLevel); } if ($data->get("gatePos2X") != null) { $arena->gatePos2 = new Position($data->get("gatePos2X"), $data->get("gatePos2Y"), $data->get("gatePos2Z"), $pLevel); } if ($data->get("portalEnter1X") != null) { $arena->portalEnterPos1 = new Position($data->get("portalEnter1X"), $data->get("portalEnter1Y"), $data->get("portalEnter1Z"), $pLevel); } if ($data->get("portalEnter2X") != null) { $arena->portalEnterPos2 = new Position($data->get("portalEnter2X"), $data->get("portalEnter2Y"), $data->get("portalEnter2Z"), $pLevel); } $bx = $data->get("mapselectX"); $by = $data->get("mapselectY"); $bz = $data->get("mapselectZ"); $arena->mapselectpos = new Position($bx, $by, $bz, $pLevel); $bx = $data->get("signJoinX"); $by = $data->get("signJoinY"); $bz = $data->get("signJoinZ"); $arena->signJoin = new Position($bx, $by, $bz, $pLevel); $bx2 = $data->get("signJoin2X"); $by2 = $data->get("signJoin2Y"); $bz2 = $data->get("signJoin2Z"); $arena->signJoin2 = new Position($bx2, $by2, $bz2, $pLevel); $bx = $data->get("signStatsX"); $by = $data->get("signStatsY"); $bz = $data->get("signStatsZ"); $arena->signStats = new Position($bx, $by, $bz, $pLevel); $bx = $data->get("signExitX"); $by = $data->get("signExitY"); $bz = $data->get("signExitZ"); $arena->signExit = new Position($bx, $by, $bz); $arena->mapselectLevelName = $data->get("mapselectLevelName"); $arena->maps = $data->get("maps"); $arena->minPlayers = $data->get("minPlayers"); $arena->maxPlayers = $data->get("maxPlayers"); $arena->particles = $data->get("particles"); $arena->winnerCoins = $data->get("winnerCoins", 5); $levelList[$name] = $arena; } } closedir($handler); return $levelList; }
public static final function preloadArenas(HungerGamesPlugIn &$plugin) { $arenaList = []; $path = $plugin->getDataFolder() . self::ARENA_DIRECTORY; if (!file_exists($path)) { @mkdir($path, 0755, true); } $plugin->log("#loading arenas on " . $path); $handler = opendir($path); while (($filename = readdir($handler)) !== false) { $plugin->getLogger()->info($filename); if ($filename != "." && $filename != "..") { $data = new Config($path . $filename, Config::YAML); Server::getInstance()->loadLevel($data->get("levelName")); $arenaLevel = Server::getInstance()->getLevelByName($data->get("levelName")); $name = str_replace(".yml", "", $filename); $arena = self::loadArenaByName($plugin->getDataFolder(), $name); $arenaList[$name] = $arena; } } closedir($handler); return $arenaList; }