diff --git a/src/pocketmine/utils/Config.php b/src/pocketmine/utils/Config.php index a2b3df30f..5075a7ac2 100644 --- a/src/pocketmine/utils/Config.php +++ b/src/pocketmine/utils/Config.php @@ -376,6 +376,26 @@ class Config{ return $this->nestedCache[$key] = $base; } + public function removeNested(string $key) : void{ + $this->nestedCache = []; + + $vars = explode(".", $key); + + $currentNode =& $this->config; + while(count($vars) > 0){ + $nodeName = array_shift($vars); + if(isset($currentNode[$nodeName])){ + if(empty($vars)){ //final node + unset($currentNode[$nodeName]); + }elseif(is_array($currentNode[$nodeName])){ + $currentNode =& $currentNode[$nodeName]; + } + }else{ + break; + } + } + } + /** * @param $k * @param mixed $default