mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-04-21 08:17:34 +00:00
WorldManager: Check generator options of worlds before loading them, too
This commit is contained in:
parent
34f54750c8
commit
8fd475f87b
@ -38,6 +38,7 @@ use pocketmine\world\format\io\FormatConverter;
|
||||
use pocketmine\world\format\io\WorldProviderManager;
|
||||
use pocketmine\world\format\io\WritableWorldProvider;
|
||||
use pocketmine\world\generator\GeneratorManager;
|
||||
use pocketmine\world\generator\InvalidGeneratorOptionsException;
|
||||
use Webmozart\PathUtil\Path;
|
||||
use function array_keys;
|
||||
use function array_shift;
|
||||
@ -221,13 +222,27 @@ class WorldManager{
|
||||
return false;
|
||||
}
|
||||
|
||||
if(GeneratorManager::getInstance()->getGenerator($provider->getWorldData()->getGenerator()) === null){
|
||||
$generatorEntry = GeneratorManager::getInstance()->getGenerator($provider->getWorldData()->getGenerator());
|
||||
if($generatorEntry === null){
|
||||
$this->server->getLogger()->error($this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_level_loadError(
|
||||
$name,
|
||||
KnownTranslationFactory::pocketmine_level_unknownGenerator($provider->getWorldData()->getGenerator())
|
||||
)));
|
||||
return false;
|
||||
}
|
||||
try{
|
||||
$generatorEntry->validateGeneratorOptions($provider->getWorldData()->getGeneratorOptions());
|
||||
}catch(InvalidGeneratorOptionsException $e){
|
||||
$this->server->getLogger()->error($this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_level_loadError(
|
||||
$name,
|
||||
KnownTranslationFactory::pocketmine_level_invalidGeneratorOptions(
|
||||
$provider->getWorldData()->getGeneratorOptions(),
|
||||
$provider->getWorldData()->getGenerator(),
|
||||
$e->getMessage()
|
||||
)
|
||||
)));
|
||||
return false;
|
||||
}
|
||||
if(!($provider instanceof WritableWorldProvider)){
|
||||
if(!$autoUpgrade){
|
||||
throw new UnsupportedWorldFormatException("World \"$name\" is in an unsupported format and needs to be upgraded");
|
||||
|
Loading…
x
Reference in New Issue
Block a user