From d4eba3f4b1b45d4b0eb15aa687b02b3d2fe8c20b Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Thu, 1 Mar 2018 09:18:40 +0000 Subject: [PATCH] Moved some things out of Server to appropriate init() functions --- src/pocketmine/Server.php | 19 ++----------------- .../level/format/io/LevelProviderManager.php | 11 +++++++++++ src/pocketmine/level/generator/Generator.php | 9 +++++++++ 3 files changed, 22 insertions(+), 17 deletions(-) diff --git a/src/pocketmine/Server.php b/src/pocketmine/Server.php index 5db1f7ad0..04eda05eb 100644 --- a/src/pocketmine/Server.php +++ b/src/pocketmine/Server.php @@ -51,17 +51,10 @@ use pocketmine\item\Item; use pocketmine\item\ItemFactory; use pocketmine\lang\BaseLang; use pocketmine\lang\TextContainer; -use pocketmine\level\format\io\leveldb\LevelDB; use pocketmine\level\format\io\LevelProvider; use pocketmine\level\format\io\LevelProviderManager; -use pocketmine\level\format\io\region\Anvil; -use pocketmine\level\format\io\region\McRegion; -use pocketmine\level\format\io\region\PMAnvil; use pocketmine\level\generator\biome\Biome; -use pocketmine\level\generator\Flat; use pocketmine\level\generator\Generator; -use pocketmine\level\generator\hell\Nether; -use pocketmine\level\generator\normal\Normal; use pocketmine\level\Level; use pocketmine\level\LevelException; use pocketmine\metadata\EntityMetadataStore; @@ -1639,20 +1632,12 @@ class Server{ $this->network->registerInterface(new RakLibInterface($this)); - - LevelProviderManager::addProvider(Anvil::class); - LevelProviderManager::addProvider(McRegion::class); - LevelProviderManager::addProvider(PMAnvil::class); - LevelProviderManager::addProvider(LevelDB::class); + LevelProviderManager::init(); if(extension_loaded("leveldb")){ $this->logger->debug($this->getLanguage()->translateString("pocketmine.debug.enable")); } - Generator::addGenerator(Flat::class, "flat"); - Generator::addGenerator(Normal::class, "normal"); - Generator::addGenerator(Normal::class, "default"); - Generator::addGenerator(Nether::class, "hell"); - Generator::addGenerator(Nether::class, "nether"); + Generator::init(); foreach((array) $this->getProperty("worlds", []) as $name => $options){ if(!is_array($options)){ diff --git a/src/pocketmine/level/format/io/LevelProviderManager.php b/src/pocketmine/level/format/io/LevelProviderManager.php index 78aa73816..4c8a98ea1 100644 --- a/src/pocketmine/level/format/io/LevelProviderManager.php +++ b/src/pocketmine/level/format/io/LevelProviderManager.php @@ -23,11 +23,22 @@ declare(strict_types=1); namespace pocketmine\level\format\io; +use pocketmine\level\format\io\leveldb\LevelDB; +use pocketmine\level\format\io\region\Anvil; +use pocketmine\level\format\io\region\McRegion; +use pocketmine\level\format\io\region\PMAnvil; use pocketmine\level\LevelException; abstract class LevelProviderManager{ protected static $providers = []; + public static function init() : void{ + self::addProvider(Anvil::class); + self::addProvider(McRegion::class); + self::addProvider(PMAnvil::class); + self::addProvider(LevelDB::class); + } + /** * @param string $class * diff --git a/src/pocketmine/level/generator/Generator.php b/src/pocketmine/level/generator/Generator.php index e3121593e..6ab382dde 100644 --- a/src/pocketmine/level/generator/Generator.php +++ b/src/pocketmine/level/generator/Generator.php @@ -27,6 +27,7 @@ declare(strict_types=1); namespace pocketmine\level\generator; use pocketmine\level\ChunkManager; +use pocketmine\level\generator\hell\Nether; use pocketmine\level\generator\noise\Noise; use pocketmine\level\generator\normal\Normal; use pocketmine\math\Vector3; @@ -35,6 +36,14 @@ use pocketmine\utils\Random; abstract class Generator{ private static $list = []; + public static function init() : void{ + self::addGenerator(Flat::class, "flat"); + self::addGenerator(Normal::class, "normal"); + self::addGenerator(Normal::class, "default"); + self::addGenerator(Nether::class, "hell"); + self::addGenerator(Nether::class, "nether"); + } + public static function addGenerator($object, $name) : bool{ if(is_subclass_of($object, Generator::class) and !isset(Generator::$list[$name = strtolower($name)])){ Generator::$list[$name] = $object;