diff --git a/src/pocketmine/level/Level.php b/src/pocketmine/level/Level.php index a20b5ec18..662f6203d 100644 --- a/src/pocketmine/level/Level.php +++ b/src/pocketmine/level/Level.php @@ -2300,7 +2300,7 @@ class Level implements ChunkManager, Metadatable{ return false; } - if(!$chunk->isLightPopulated() and $chunk->isPopulated()){ + if(!$chunk->isLightPopulated() and $chunk->isPopulated() and $this->getServer()->getProperty("chunk-ticking.light-updates", false)){ $this->getServer()->getScheduler()->scheduleAsyncTask(new LightPopulationTask($this, $chunk)); } diff --git a/src/pocketmine/resources/pocketmine.yml b/src/pocketmine/resources/pocketmine.yml index 67b21a5f3..11e8f6678 100644 --- a/src/pocketmine/resources/pocketmine.yml +++ b/src/pocketmine/resources/pocketmine.yml @@ -115,7 +115,6 @@ chunk-ticking: per-tick: 40 #Radius of chunks around a player to tick tick-radius: 3 - #NOTE: This is currently not implemented light-updates: false clear-tick-list: false diff --git a/src/pocketmine/utils/Config.php b/src/pocketmine/utils/Config.php index 80b8e69d2..5de2ed481 100644 --- a/src/pocketmine/utils/Config.php +++ b/src/pocketmine/utils/Config.php @@ -42,6 +42,9 @@ class Config{ /** @var array */ private $config = []; + + private $nestedCache = []; + /** @var string */ private $file; /** @var boolean */ @@ -83,6 +86,7 @@ class Config{ */ public function reload(){ $this->config = []; + $this->nestedCache = []; $this->correct = false; $this->load($this->file); $this->load($this->file, $this->type); @@ -273,6 +277,7 @@ class Config{ } $base = $value; + $this->nestedCache[$key] = $value; } /** @@ -282,6 +287,10 @@ class Config{ * @return mixed */ public function getNested($key, $default = null){ + if(isset($this->nestedCache[$key])){ + return $this->nestedCache[$key]; + } + $vars = explode(".", $key); $base = array_shift($vars); if(isset($this->config[$base])){ @@ -299,7 +308,7 @@ class Config{ } } - return $base; + return $this->nestedCache[$key] = $base; } /**