mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-04-20 16:00:20 +00:00
WorldProviders now accept Loggers
This commit is contained in:
parent
d0d263191d
commit
f29e2f7110
@ -197,7 +197,7 @@ class WorldManager{
|
||||
$providerClass = array_shift($providers);
|
||||
|
||||
try{
|
||||
$provider = $providerClass->fromPath($path);
|
||||
$provider = $providerClass->fromPath($path, new \PrefixedLogger($this->server->getLogger(), "World Provider: $name"));
|
||||
}catch(CorruptedWorldException $e){
|
||||
$this->server->getLogger()->error($this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_level_loadError(
|
||||
$name,
|
||||
@ -239,8 +239,10 @@ class WorldManager{
|
||||
}
|
||||
$this->server->getLogger()->notice($this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_level_conversion_start($name)));
|
||||
|
||||
$converter = new FormatConverter($provider, $this->providerManager->getDefault(), Path::join($this->server->getDataPath(), "backups", "worlds"), $this->server->getLogger());
|
||||
$provider = $converter->execute();
|
||||
$providerClass = $this->providerManager->getDefault();
|
||||
$converter = new FormatConverter($provider, $providerClass, Path::join($this->server->getDataPath(), "backups", "worlds"), $this->server->getLogger());
|
||||
$converter->execute();
|
||||
$provider = $providerClass->fromPath($path, new \PrefixedLogger($this->server->getLogger(), "World Provider: $name"));
|
||||
|
||||
$this->server->getLogger()->notice($this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_level_conversion_finish($name, $converter->getBackupPath())));
|
||||
}
|
||||
@ -270,7 +272,7 @@ class WorldManager{
|
||||
$path = $this->getWorldPath($name);
|
||||
$providerEntry->generate($path, $name, $options);
|
||||
|
||||
$world = new World($this->server, $name, $providerEntry->fromPath($path), $this->server->getAsyncPool());
|
||||
$world = new World($this->server, $name, $providerEntry->fromPath($path, new \PrefixedLogger($this->server->getLogger(), "World Provider: $name")), $this->server->getAsyncPool());
|
||||
$this->worlds[$world->getId()] = $world;
|
||||
|
||||
$world->setAutoSave($this->autoSave);
|
||||
|
@ -41,7 +41,8 @@ abstract class BaseWorldProvider implements WorldProvider{
|
||||
protected BlockStateSerializer $blockStateSerializer;
|
||||
|
||||
public function __construct(
|
||||
protected string $path
|
||||
protected string $path,
|
||||
protected \Logger $logger
|
||||
){
|
||||
if(!file_exists($path)){
|
||||
throw new WorldException("World does not exist");
|
||||
|
@ -67,7 +67,7 @@ class FormatConverter{
|
||||
return $this->backupPath;
|
||||
}
|
||||
|
||||
public function execute() : WritableWorldProvider{
|
||||
public function execute() : void{
|
||||
$new = $this->generateNew();
|
||||
|
||||
$this->populateLevelData($new->getWorldData());
|
||||
@ -91,7 +91,6 @@ class FormatConverter{
|
||||
}
|
||||
|
||||
$this->logger->info("Conversion completed");
|
||||
return $this->newProvider->fromPath($path);
|
||||
}
|
||||
|
||||
private function generateNew() : WritableWorldProvider{
|
||||
@ -113,7 +112,7 @@ class FormatConverter{
|
||||
->setDifficulty($data->getDifficulty())
|
||||
);
|
||||
|
||||
return $this->newProvider->fromPath($convertedOutput);
|
||||
return $this->newProvider->fromPath($convertedOutput, $this->logger);
|
||||
}
|
||||
|
||||
private function populateLevelData(WorldData $data) : void{
|
||||
|
@ -24,7 +24,7 @@ declare(strict_types=1);
|
||||
namespace pocketmine\world\format\io;
|
||||
|
||||
/**
|
||||
* @phpstan-type FromPath \Closure(string $path) : WorldProvider
|
||||
* @phpstan-type FromPath \Closure(string $path, \Logger $logger) : WorldProvider
|
||||
*/
|
||||
class ReadOnlyWorldProviderManagerEntry extends WorldProviderManagerEntry{
|
||||
|
||||
@ -36,5 +36,5 @@ class ReadOnlyWorldProviderManagerEntry extends WorldProviderManagerEntry{
|
||||
parent::__construct($isValid);
|
||||
}
|
||||
|
||||
public function fromPath(string $path) : WorldProvider{ return ($this->fromPath)($path); }
|
||||
public function fromPath(string $path, \Logger $logger) : WorldProvider{ return ($this->fromPath)($path, $logger); }
|
||||
}
|
||||
|
@ -41,13 +41,13 @@ final class WorldProviderManager{
|
||||
private WritableWorldProviderManagerEntry $default;
|
||||
|
||||
public function __construct(){
|
||||
$leveldb = new WritableWorldProviderManagerEntry(\Closure::fromCallable([LevelDB::class, 'isValid']), fn(string $path) => new LevelDB($path), \Closure::fromCallable([LevelDB::class, 'generate']));
|
||||
$leveldb = new WritableWorldProviderManagerEntry(\Closure::fromCallable([LevelDB::class, 'isValid']), fn(string $path, \Logger $logger) => new LevelDB($path, $logger), \Closure::fromCallable([LevelDB::class, 'generate']));
|
||||
$this->default = $leveldb;
|
||||
$this->addProvider($leveldb, "leveldb");
|
||||
|
||||
$this->addProvider(new ReadOnlyWorldProviderManagerEntry(\Closure::fromCallable([Anvil::class, 'isValid']), fn(string $path) => new Anvil($path)), "anvil");
|
||||
$this->addProvider(new ReadOnlyWorldProviderManagerEntry(\Closure::fromCallable([McRegion::class, 'isValid']), fn(string $path) => new McRegion($path)), "mcregion");
|
||||
$this->addProvider(new ReadOnlyWorldProviderManagerEntry(\Closure::fromCallable([PMAnvil::class, 'isValid']), fn(string $path) => new PMAnvil($path)), "pmanvil");
|
||||
$this->addProvider(new ReadOnlyWorldProviderManagerEntry(\Closure::fromCallable([Anvil::class, 'isValid']), fn(string $path, \Logger $logger) => new Anvil($path, $logger)), "anvil");
|
||||
$this->addProvider(new ReadOnlyWorldProviderManagerEntry(\Closure::fromCallable([McRegion::class, 'isValid']), fn(string $path, \Logger $logger) => new McRegion($path, $logger)), "mcregion");
|
||||
$this->addProvider(new ReadOnlyWorldProviderManagerEntry(\Closure::fromCallable([PMAnvil::class, 'isValid']), fn(string $path, \Logger $logger) => new PMAnvil($path, $logger)), "pmanvil");
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -46,5 +46,5 @@ abstract class WorldProviderManagerEntry{
|
||||
* @throws CorruptedWorldException
|
||||
* @throws UnsupportedWorldFormatException
|
||||
*/
|
||||
abstract public function fromPath(string $path) : WorldProvider;
|
||||
abstract public function fromPath(string $path, \Logger $logger) : WorldProvider;
|
||||
}
|
||||
|
@ -26,7 +26,7 @@ namespace pocketmine\world\format\io;
|
||||
use pocketmine\world\WorldCreationOptions;
|
||||
|
||||
/**
|
||||
* @phpstan-type FromPath \Closure(string $path) : WritableWorldProvider
|
||||
* @phpstan-type FromPath \Closure(string $path, \Logger $logger) : WritableWorldProvider
|
||||
* @phpstan-type Generate \Closure(string $path, string $name, WorldCreationOptions $options) : void
|
||||
*/
|
||||
final class WritableWorldProviderManagerEntry extends WorldProviderManagerEntry{
|
||||
@ -43,8 +43,8 @@ final class WritableWorldProviderManagerEntry extends WorldProviderManagerEntry{
|
||||
parent::__construct($isValid);
|
||||
}
|
||||
|
||||
public function fromPath(string $path) : WritableWorldProvider{
|
||||
return ($this->fromPath)($path);
|
||||
public function fromPath(string $path, \Logger $logger) : WritableWorldProvider{
|
||||
return ($this->fromPath)($path, $logger);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -102,9 +102,9 @@ class LevelDB extends BaseWorldProvider implements WritableWorldProvider{
|
||||
]);
|
||||
}
|
||||
|
||||
public function __construct(string $path){
|
||||
public function __construct(string $path, \Logger $logger){
|
||||
self::checkForLevelDBExtension();
|
||||
parent::__construct($path);
|
||||
parent::__construct($path, $logger);
|
||||
|
||||
try{
|
||||
$this->db = self::createDB($path);
|
||||
|
@ -74,7 +74,7 @@ if(count($oldProviderClasses) > 1){
|
||||
exit(1);
|
||||
}
|
||||
$oldProviderClass = array_shift($oldProviderClasses);
|
||||
$oldProvider = $oldProviderClass->fromPath($inputPath);
|
||||
$oldProvider = $oldProviderClass->fromPath($inputPath, new \PrefixedLogger(\GlobalLogger::get(), "Old World Provider"));
|
||||
|
||||
$converter = new FormatConverter($oldProvider, $writableFormats[$args["format"]], $backupPath, GlobalLogger::get());
|
||||
$converter->execute();
|
||||
|
Loading…
x
Reference in New Issue
Block a user