mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-05-13 09:19:42 +00:00
Clean up default level provider management
This commit is contained in:
parent
23132b899c
commit
050e972add
@ -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"));
|
||||
}
|
||||
|
@ -32,6 +32,9 @@ use pocketmine\utils\Utils;
|
||||
abstract class LevelProviderManager{
|
||||
protected static $providers = [];
|
||||
|
||||
/** @var string|LevelProvider */
|
||||
private static $default = PMAnvil::class;
|
||||
|
||||
public static function init() : void{
|
||||
self::addProvider(Anvil::class);
|
||||
self::addProvider(McRegion::class);
|
||||
@ -39,6 +42,29 @@ abstract class LevelProviderManager{
|
||||
self::addProvider(LevelDB::class);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the default format used to generate new levels.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getDefault() : string{
|
||||
return self::$default;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the default format.
|
||||
*
|
||||
* @param string $class Class extending LevelProvider
|
||||
*
|
||||
* @throws \InvalidArgumentException
|
||||
*/
|
||||
public static function setDefault(string $class) : void{
|
||||
Utils::testValidInstance($class, LevelProvider::class);
|
||||
|
||||
self::addProvider($class);
|
||||
self::$default = $class;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $class
|
||||
*
|
||||
|
Loading…
x
Reference in New Issue
Block a user