diff --git a/src/API/LevelAPI.php b/src/API/LevelAPI.php index 30489faa3d..5018a5bb78 100644 --- a/src/API/LevelAPI.php +++ b/src/API/LevelAPI.php @@ -126,11 +126,12 @@ class LevelAPI{ return true; } - public function unloadLevel(Level $level){ + public function unloadLevel(Level $level, $force = false){ $name = $level->getName(); - if($name === $this->default){ + if($name === $this->default and $force !== true){ return false; } + console("[INFO] Unloading level \"".$name."\""); $level->nextSave = PHP_INT_MAX; $level->save(); foreach($this->server->api->player->getAll($level) as $player){ @@ -219,6 +220,12 @@ class LevelAPI{ $level->save(); } } + + public function __destruct(){ + foreach($this->levels as $level){ + $this->unloadLevel($level, true); + } + } public function getSpawn(){ return $this->server->spawn;