resourcepacks: use typed properties in JSON models

This commit is contained in:
Dylan K. Taylor 2021-08-19 16:12:04 +01:00
parent 5478b7cb63
commit 17c7e25346
No known key found for this signature in database
GPG Key ID: 8927471A91CAFD3D
4 changed files with 25 additions and 47 deletions

View File

@ -27,24 +27,17 @@ namespace pocketmine\resourcepacks\json;
* Model for JsonMapper to represent resource pack manifest.json contents.
*/
final class Manifest{
/**
* @var int
* @required
*/
public $format_version;
/** @required */
public int $format_version;
/**
* @var ManifestHeader
* @required
*/
public $header;
/** @required */
public ManifestHeader $header;
/**
* @var ManifestModuleEntry[]
* @required
*/
public $modules;
public array $modules;
/** @var ManifestMetadata|null */
public $metadata = null;
public ?ManifestMetadata $metadata = null;
}

View File

@ -24,31 +24,25 @@ declare(strict_types=1);
namespace pocketmine\resourcepacks\json;
final class ManifestHeader{
/** @var string */
public $description;
/**
* @var string
* @required
*/
public $name;
public string $description;
/**
* @var string
* @required
*/
public $uuid;
/** @required */
public string $name;
/** @required */
public string $uuid;
/**
* @var int[]
* @phpstan-var array{int, int, int}
* @required
*/
public $version;
public array $version;
/**
* @var int[]
* @phpstan-var array{int, int, int}
*/
public $min_engine_version;
public array $min_engine_version;
}

View File

@ -25,9 +25,9 @@ namespace pocketmine\resourcepacks\json;
final class ManifestMetadata{
/** @var string[]|null */
public $authors = null;
/** @var string|null */
public $license = null;
/** @var string|null */
public $url = null;
public ?array $authors = null;
public ?string $license = null;
public ?string $url = null;
}

View File

@ -25,27 +25,18 @@ namespace pocketmine\resourcepacks\json;
final class ManifestModuleEntry{
/**
* @var string
*/
public $description;
public string $description;
/**
* @var string
* @required
*/
public $type;
/** @required */
public string $type;
/**
* @var string
* @required
*/
public $uuid;
/** @required */
public string $uuid;
/**
* @var int[]
* @phpstan-var array{int, int, int}
* @required
*/
public $version;
public array $version;
}