diff --git a/src/pocketmine/level/Level.php b/src/pocketmine/level/Level.php index 824b037a3..cb465faef 100644 --- a/src/pocketmine/level/Level.php +++ b/src/pocketmine/level/Level.php @@ -713,6 +713,23 @@ class Level implements ChunkManager, Metadatable{ } } + /** + * Unregisters a chunk listener from all chunks it is listening on in this Level. + * + * @param ChunkListener $listener + */ + public function unregisterChunkListenerFromAll(ChunkListener $listener) : void{ + $id = spl_object_id($listener); + foreach($this->chunkListeners as $hash => $listeners){ + if(isset($listeners[$id])){ + unset($this->chunkListeners[$hash][$id]); + if(empty($this->chunkListeners[$hash])){ + unset($this->chunkListeners[$hash]); + } + } + } + } + /** * Returns all the listeners attached to this chunk. *