Updated convert-world CLI tool

This commit is contained in:
Dylan K. Taylor 2021-08-29 21:04:59 +01:00
parent b4e23a57d2
commit 533b0d0724
No known key found for this signature in database
GPG Key ID: 8927471A91CAFD3D

View File

@ -22,16 +22,14 @@
declare(strict_types=1);
use pocketmine\world\format\io\FormatConverter;
use pocketmine\world\format\io\WorldProvider;
use pocketmine\world\format\io\WorldProviderManager;
use pocketmine\world\format\io\WritableWorldProvider;
use pocketmine\world\format\io\WorldProviderManagerEntry;
use pocketmine\world\format\io\WritableWorldProviderManagerEntry;
require_once dirname(__DIR__) . '/vendor/autoload.php';
$providerManager = new WorldProviderManager();
$writableFormats = array_filter($providerManager->getAvailableProviders(), function(string $class){
return is_a($class, WritableWorldProvider::class, true);
});
$writableFormats = array_filter($providerManager->getAvailableProviders(), fn(WorldProviderManagerEntry $class) => $class instanceof WritableWorldProviderManagerEntry);
$requiredOpts = [
"world" => "path to the input world for conversion",
"backup" => "path to back up the original files",
@ -68,8 +66,7 @@ if(count($oldProviderClasses) > 1){
die("Ambiguous input world format: matched " . count($oldProviderClasses) . " (" . implode(array_keys($oldProviderClasses)) . ")");
}
$oldProviderClass = array_shift($oldProviderClasses);
/** @var WorldProvider $oldProvider */
$oldProvider = new $oldProviderClass($inputPath);
$oldProvider = $oldProviderClass->fromPath($inputPath);
$converter = new FormatConverter($oldProvider, $writableFormats[$args["format"]], realpath($backupPath), GlobalLogger::get());
$converter->execute();