Use native property types for login JSON models

this significantly reduces the amount of PHPDoc boilerplate, because the remaining doc comments can mostly be reduced to 1 line.
This commit is contained in:
Dylan K. Taylor 2021-02-07 17:54:38 +00:00
parent c456f21df8
commit 7745310870
No known key found for this signature in database
GPG Key ID: 8927471A91CAFD3D
9 changed files with 117 additions and 273 deletions

View File

@ -28,24 +28,14 @@ namespace pocketmine\network\mcpe\protocol\types\login;
*/ */
final class AuthenticationData{ final class AuthenticationData{
/** /** @required */
* @var string public string $displayName;
* @required
*/
public $displayName;
/** /** @required */
* @var string public string $identity;
* @required
*/
public $identity;
/** @var string */ public string $titleId = ""; //TODO: find out what this is for
public $titleId = ""; //TODO: find out what this is for
/** /** @required */
* @var string public string $XUID;
* @required
*/
public $XUID;
} }

View File

@ -32,212 +32,115 @@ final class ClientData{
* @var ClientDataAnimationFrame[] * @var ClientDataAnimationFrame[]
* @required * @required
*/ */
public $AnimatedImageData; public array $AnimatedImageData;
/** /** @required */
* @var string public string $ArmSize;
* @required
*/
public $ArmSize;
/** /** @required */
* @var string public string $CapeData;
* @required
*/
public $CapeData;
/** /** @required */
* @var string public string $CapeId;
* @required
*/
public $CapeId;
/** /** @required */
* @var int public int $CapeImageHeight;
* @required
*/
public $CapeImageHeight;
/** /** @required */
* @var int public int $CapeImageWidth;
* @required
*/
public $CapeImageWidth;
/** /** @required */
* @var bool public bool $CapeOnClassicSkin;
* @required
*/
public $CapeOnClassicSkin;
/** /** @required */
* @var int public int $ClientRandomId;
* @required
*/
public $ClientRandomId;
/** /** @required */
* @var int public int $CurrentInputMode;
* @required
*/
public $CurrentInputMode;
/** /** @required */
* @var int public int $DefaultInputMode;
* @required
*/
public $DefaultInputMode;
/** /** @required */
* @var string public string $DeviceId;
* @required
*/
public $DeviceId;
/** /** @required */
* @var string public string $DeviceModel;
* @required
*/
public $DeviceModel;
/** /** @required */
* @var int public int $DeviceOS;
* @required
*/
public $DeviceOS;
/** /** @required */
* @var string public string $GameVersion;
* @required
*/
public $GameVersion;
/** /** @required */
* @var int public int $GuiScale;
* @required
*/
public $GuiScale;
/** /** @required */
* @var string public string $LanguageCode;
* @required
*/
public $LanguageCode;
/** /**
* @var ClientDataPersonaSkinPiece[] * @var ClientDataPersonaSkinPiece[]
* @required * @required
*/ */
public $PersonaPieces; public array $PersonaPieces;
/** /** @required */
* @var bool public bool $PersonaSkin;
* @required
*/
public $PersonaSkin;
/** /**
* @var ClientDataPersonaPieceTintColor[] * @var ClientDataPersonaPieceTintColor[]
* @required * @required
*/ */
public $PieceTintColors; public array $PieceTintColors;
/** /** @required */
* @var string public string $PlatformOfflineId;
* @required
*/
public $PlatformOfflineId;
/** /** @required */
* @var string public string $PlatformOnlineId;
* @required
*/
public $PlatformOnlineId;
/** @var string */ public string $PlatformUserId = ""; //xbox-only, apparently
public $PlatformUserId = ""; //xbox-only, apparently
/** /** @required */
* @var bool public bool $PremiumSkin = false;
* @required
*/
public $PremiumSkin = false;
/** /** @required */
* @var string public string $SelfSignedId;
* @required
*/
public $SelfSignedId;
/** /** @required */
* @var string public string $ServerAddress;
* @required
*/
public $ServerAddress;
/** /** @required */
* @var string public string $SkinAnimationData;
* @required
*/
public $SkinAnimationData;
/** /** @required */
* @var string public string $SkinColor;
* @required
*/
public $SkinColor;
/** /** @required */
* @var string public string $SkinData;
* @required
*/
public $SkinData;
/** /** @required */
* @var string public string $SkinGeometryData;
* @required
*/
public $SkinGeometryData;
/** /** @required */
* @var string public string $SkinId;
* @required
*/
public $SkinId;
/** /** @required */
* @var int public int $SkinImageHeight;
* @required
*/
public $SkinImageHeight;
/** /** @required */
* @var int public int $SkinImageWidth;
* @required
*/
public $SkinImageWidth;
/** /** @required */
* @var string public string $SkinResourcePatch;
* @required
*/
public $SkinResourcePatch;
/** /** @required */
* @var string public string $ThirdPartyName;
* @required
*/
public $ThirdPartyName;
/** /** @required */
* @var bool public bool $ThirdPartyNameOnly;
* @required
*/
public $ThirdPartyNameOnly;
/** /** @required */
* @var int public int $UIProfile;
* @required
*/
public $UIProfile;
} }

View File

@ -28,39 +28,21 @@ namespace pocketmine\network\mcpe\protocol\types\login;
*/ */
final class ClientDataAnimationFrame{ final class ClientDataAnimationFrame{
/** /** @required */
* @var int public int $ImageHeight;
* @required
*/
public $ImageHeight;
/** /** @required */
* @var int public int $ImageWidth;
* @required
*/
public $ImageWidth;
/** /** @required */
* @var float public float $Frames;
* @required
*/
public $Frames;
/** /** @required */
* @var int public int $Type;
* @required
*/
public $Type;
/** /** @required */
* @var string public string $Image;
* @required
*/
public $Image;
/** /** @required */
* @var int public int $AnimationExpression;
* @required
*/
public $AnimationExpression;
} }

View File

@ -27,15 +27,12 @@ namespace pocketmine\network\mcpe\protocol\types\login;
* Model class for LoginPacket JSON data for JsonMapper * Model class for LoginPacket JSON data for JsonMapper
*/ */
final class ClientDataPersonaPieceTintColor{ final class ClientDataPersonaPieceTintColor{
/** /** @required */
* @var string public string $PieceType;
* @required
*/
public $PieceType;
/** /**
* @var string[] * @var string[]
* @required * @required
*/ */
public $Colors; public array $Colors;
} }

View File

@ -27,33 +27,18 @@ namespace pocketmine\network\mcpe\protocol\types\login;
* Model class for LoginPacket JSON data for JsonMapper * Model class for LoginPacket JSON data for JsonMapper
*/ */
final class ClientDataPersonaSkinPiece{ final class ClientDataPersonaSkinPiece{
/** /** @required */
* @var string public string $PieceId;
* @required
*/
public $PieceId;
/** /** @required */
* @var string public string $PieceType;
* @required
*/
public $PieceType;
/** /** @required */
* @var string public string $PackId;
* @required
*/
public $PackId;
/** /** @required */
* @var bool public bool $IsDefault;
* @required
*/
public $IsDefault;
/** /** @required */
* @var string public string $ProductId;
* @required
*/
public $ProductId;
} }

View File

@ -28,18 +28,12 @@ namespace pocketmine\network\mcpe\protocol\types\login;
* provided. * provided.
*/ */
class JwtBodyRfc7519{ class JwtBodyRfc7519{
/** @var string */ public string $iss;
public $iss; public string $sub;
/** @var string */
public $sub;
/** @var string|string[] */ /** @var string|string[] */
public $aud; public $aud;
/** @var int */ public int $exp;
public $exp; public int $nbf;
/** @var int */ public int $iat;
public $nbf; public string $jti;
/** @var int */
public $iat;
/** @var string */
public $jti;
} }

View File

@ -32,5 +32,5 @@ final class JwtChain{
* @var string[] * @var string[]
* @required * @required
*/ */
public $chain; public array $chain;
} }

View File

@ -28,6 +28,5 @@ namespace pocketmine\network\mcpe\protocol\types\login;
* TODO: extend this with more complete models * TODO: extend this with more complete models
*/ */
final class JwtChainLinkBody extends JwtBodyRfc7519{ final class JwtChainLinkBody extends JwtBodyRfc7519{
/** @var string */ public string $identityPublicKey;
public $identityPublicKey;
} }

View File

@ -24,14 +24,8 @@ declare(strict_types=1);
namespace pocketmine\network\mcpe\protocol\types\login; namespace pocketmine\network\mcpe\protocol\types\login;
final class JwtHeader{ final class JwtHeader{
/** /** @required */
* @var string public string $alg;
* @required /** @required */
*/ public string $x5u;
public $alg;
/**
* @var string
* @required
*/
public $x5u;
} }