mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-09-06 01:46:04 +00:00
WorldProviders now accept Loggers
This commit is contained in:
@ -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);
|
||||
|
Reference in New Issue
Block a user