diff --git a/src/pocketmine/level/format/region/Anvil.php b/src/pocketmine/level/format/region/Anvil.php index 00ff85ed8..d33d80702 100644 --- a/src/pocketmine/level/format/region/Anvil.php +++ b/src/pocketmine/level/format/region/Anvil.php @@ -140,10 +140,10 @@ class Anvil extends McRegion{ $chunk["xPos"], $chunk["zPos"], $subChunks, - $chunk->Entities->getValue(), - $chunk->TileEntities->getValue(), + isset($chunk->Entities) ? $chunk->Entities->getValue() : [], + isset($chunk->TileEntities) ? $chunk->TileEntities->getValue() : [], $biomeIds, - $chunk->HeightMap->getValue() + isset($chunk->HeightMap) ? $chunk->HeightMap->getValue() : [] ); $result->setLightPopulated(isset($chunk->LightPopulated) ? ((bool) $chunk->LightPopulated->getValue()) : false); $result->setPopulated(isset($chunk->TerrainPopulated) ? ((bool) $chunk->TerrainPopulated->getValue()) : false); diff --git a/src/pocketmine/level/format/region/McRegion.php b/src/pocketmine/level/format/region/McRegion.php index 5b30d79ea..0baa3b460 100644 --- a/src/pocketmine/level/format/region/McRegion.php +++ b/src/pocketmine/level/format/region/McRegion.php @@ -135,10 +135,10 @@ class McRegion extends BaseLevelProvider{ $chunk = $chunk->Level; $subChunks = []; - $fullIds = $chunk->Blocks instanceof ByteArrayTag ? $chunk->Blocks->getValue() : str_repeat("\x00", 32768); - $fullData = $chunk->Data instanceof ByteArrayTag ? $chunk->Data->getValue() : ($half = str_repeat("\x00", 16384)); - $fullBlockLight = $chunk->BlockLight instanceof ByteArrayTag ? $chunk->BlockLight->getValue() : $half; - $fullSkyLight = $chunk->SkyLight instanceof ByteArrayTag ? $chunk->SkyLight->getValue() : str_repeat("\xff", 16384); + $fullIds = isset($chunk->Blocks) ? $chunk->Blocks->getValue() : str_repeat("\x00", 32768); + $fullData = isset($chunk->Data) ? $chunk->Data->getValue() : ($half = str_repeat("\x00", 16384)); + $fullBlockLight = isset($chunk->BlockLight) ? $chunk->BlockLight->getValue() : $half; + $fullSkyLight = isset($chunk->SkyLight) ? $chunk->SkyLight->getValue() : str_repeat("\xff", 16384); for($y = 0; $y < 8; ++$y){ $offset = ($y << 4); @@ -181,10 +181,10 @@ class McRegion extends BaseLevelProvider{ $chunk["xPos"], $chunk["zPos"], $subChunks, - $chunk->Entities->getValue(), - $chunk->TileEntities->getValue(), + isset($chunk->Entities) ? $chunk->Entities->getValue() : [], + isset($chunk->TileEntities) ? $chunk->TileEntities->getValue() : [], $biomeIds, - $chunk->HeightMap->getValue() + isset($chunk->HeightMap) ? $chunk->HeightMap->getValue() : [] //this shouldn't exist in normal mcregion worlds anyway... ); $result->setLightPopulated(isset($chunk->LightPopulated) ? ((bool) $chunk->LightPopulated->getValue()) : false); $result->setPopulated(isset($chunk->TerrainPopulated) ? ((bool) $chunk->TerrainPopulated->getValue()) : false); diff --git a/src/pocketmine/level/format/region/PMAnvil.php b/src/pocketmine/level/format/region/PMAnvil.php index ccca1cbdd..b291730e3 100644 --- a/src/pocketmine/level/format/region/PMAnvil.php +++ b/src/pocketmine/level/format/region/PMAnvil.php @@ -136,10 +136,10 @@ class PMAnvil extends Anvil{ $chunk["xPos"], $chunk["zPos"], $subChunks, - $chunk->Entities->getValue(), - $chunk->TileEntities->getValue(), - $chunk->Biomes->getValue(), - $chunk->HeightMap->getValue() + isset($chunk->Entities) ? $chunk->Entities->getValue() : [], + isset($chunk->TileEntities) ? $chunk->TileEntities->getValue() : [], + isset($chunk->Biomes) ? $chunk->Biomes->getValue() : "", + isset($chunk->HeightMap) ? $chunk->HeightMap->getValue() : [] ); $result->setLightPopulated(isset($chunk->LightPopulated) ? ((bool) $chunk->LightPopulated->getValue()) : false); $result->setPopulated(isset($chunk->TerrainPopulated) ? ((bool) $chunk->TerrainPopulated->getValue()) : false);