Level: Fixed ChunkListeners not receiving some events when no loaders are using a chunk

This commit is contained in:
Dylan K. Taylor 2019-04-17 16:13:40 +01:00
parent 3468f006a2
commit 0973e39697

View File

@ -2329,10 +2329,9 @@ class Level implements ChunkManager, Metadatable{
if(!$this->isChunkInUse($chunkX, $chunkZ)){
$this->unloadChunkRequest($chunkX, $chunkZ);
}else{
foreach($this->getChunkListeners($chunkX, $chunkZ) as $listener){
$listener->onChunkChanged($chunk);
}
}
foreach($this->getChunkListeners($chunkX, $chunkZ) as $listener){
$listener->onChunkChanged($chunk);
}
}
@ -2644,14 +2643,13 @@ class Level implements ChunkManager, Metadatable{
$this->getServer()->getAsyncPool()->submitTask(new LightPopulationTask($this, $chunk));
}
if($this->isChunkInUse($x, $z)){
foreach($this->getChunkListeners($x, $z) as $listener){
$listener->onChunkLoaded($chunk);
}
}else{
if(!$this->isChunkInUse($x, $z)){
$this->server->getLogger()->debug("Newly loaded chunk $x $z has no loaders registered, will be unloaded at next available opportunity");
$this->unloadChunkRequest($x, $z);
}
foreach($this->getChunkListeners($x, $z) as $listener){
$listener->onChunkLoaded($chunk);
}
$this->timings->syncChunkLoadTimer->stopTiming();