public function __construct(Level $level, $path)
{
$this->level = $level;
$this->path = $path;
if (!file_exists($this->path)) {
mkdir($this->path, 0777, true);
}
$nbt = new NBT(NBT::LITTLE_ENDIAN);
$nbt->read(substr(file_get_contents($this->getPath() . "level.dat"), 8));
$levelData = $nbt->getData();
if ($levelData instanceof CompoundTag) {
$this->levelData = $levelData;
} else {
throw new LevelException("Invalid level.dat");
}
if (!isset($this->levelData->generatorName)) {
$this->levelData->generatorName = new StringTag("generatorName", Generator::getGenerator("DEFAULT"));
}
if (!isset($this->levelData->generatorOptions)) {
$this->levelData->generatorOptions = new StringTag("generatorOptions", "");
}
$this->db = new \LevelDB($this->path . "/db", ["compression" => LEVELDB_ZLIB_COMPRESSION]);
}