diff --git a/src/pocketmine/world/ChunkManager.php b/src/pocketmine/world/ChunkManager.php index b0153b3d2..7fb8524c6 100644 --- a/src/pocketmine/world/ChunkManager.php +++ b/src/pocketmine/world/ChunkManager.php @@ -94,12 +94,13 @@ interface ChunkManager{ public function setBlockSkyLightAt(int $x, int $y, int $z, int $level) : void; /** - * @param int $chunkX - * @param int $chunkZ + * @param int $chunkX + * @param int $chunkZ + * @param bool $create * * @return Chunk|null */ - public function getChunk(int $chunkX, int $chunkZ) : ?Chunk; + public function getChunk(int $chunkX, int $chunkZ, bool $create = false) : ?Chunk; /** * @param int $chunkX diff --git a/src/pocketmine/world/SimpleChunkManager.php b/src/pocketmine/world/SimpleChunkManager.php index d9297ebac..f2cee8527 100644 --- a/src/pocketmine/world/SimpleChunkManager.php +++ b/src/pocketmine/world/SimpleChunkManager.php @@ -90,13 +90,15 @@ class SimpleChunkManager implements ChunkManager{ } /** - * @param int $chunkX - * @param int $chunkZ + * @param int $chunkX + * @param int $chunkZ + * @param bool $create * * @return Chunk|null */ - public function getChunk(int $chunkX, int $chunkZ) : ?Chunk{ - return $this->chunks[World::chunkHash($chunkX, $chunkZ)] ?? null; + public function getChunk(int $chunkX, int $chunkZ, bool $create = false) : ?Chunk{ + $hash = World::chunkHash($chunkX, $chunkZ); + return $this->chunks[$hash] ?? ($create ? $this->chunks[$hash] = new Chunk($chunkX, $chunkZ) : null); } /**