Clean up default level provider management

This commit is contained in:
Dylan K. Taylor
2018-10-04 12:49:46 +01:00
parent 23132b899c
commit 050e972add
2 changed files with 33 additions and 6 deletions

View File

@@ -1080,12 +1080,7 @@ class Server{
$generator = GeneratorManager::getGenerator($this->getLevelType());
}
if(($providerClass = LevelProviderManager::getProviderByName($this->getProperty("level-settings.default-format", "pmanvil"))) === null){
$providerClass = LevelProviderManager::getProviderByName("pmanvil");
if($providerClass === null){
throw new \InvalidStateException("Default level provider has not been registered");
}
}
$providerClass = LevelProviderManager::getDefault();
$path = $this->getDataPath() . "worlds/" . $name . "/";
/** @var LevelProvider $providerClass */
@@ -1677,6 +1672,12 @@ class Server{
$this->network->registerInterface(new RakLibInterface($this));
LevelProviderManager::init();
if(($format = LevelProviderManager::getProviderByName($formatName = (string) $this->getProperty("level-settings.default-format"))) !== null){
LevelProviderManager::setDefault($format);
}elseif($formatName !== ""){
$this->logger->warning($this->language->translateString("pocketmine.level.badDefaultFormat", [$formatName]));
}
if(extension_loaded("leveldb")){
$this->logger->debug($this->getLanguage()->translateString("pocketmine.debug.enable"));
}