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{
/**
* @var string
* @required
*/
public $displayName;
/** @required */
public string $displayName;
/**
* @var string
* @required
*/
public $identity;
/** @required */
public string $identity;
/** @var string */
public $titleId = ""; //TODO: find out what this is for
public string $titleId = ""; //TODO: find out what this is for
/**
* @var string
* @required
*/
public $XUID;
/** @required */
public string $XUID;
}

View File

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

View File

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

View File

@ -27,15 +27,12 @@ namespace pocketmine\network\mcpe\protocol\types\login;
* Model class for LoginPacket JSON data for JsonMapper
*/
final class ClientDataPersonaPieceTintColor{
/**
* @var string
* @required
*/
public $PieceType;
/** @required */
public string $PieceType;
/**
* @var string[]
* @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
*/
final class ClientDataPersonaSkinPiece{
/**
* @var string
* @required
*/
public $PieceId;
/** @required */
public string $PieceId;
/**
* @var string
* @required
*/
public $PieceType;
/** @required */
public string $PieceType;
/**
* @var string
* @required
*/
public $PackId;
/** @required */
public string $PackId;
/**
* @var bool
* @required
*/
public $IsDefault;
/** @required */
public bool $IsDefault;
/**
* @var string
* @required
*/
public $ProductId;
}
/** @required */
public string $ProductId;
}

View File

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

View File

@ -32,5 +32,5 @@ final class JwtChain{
* @var string[]
* @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
*/
final class JwtChainLinkBody extends JwtBodyRfc7519{
/** @var string */
public $identityPublicKey;
}
public string $identityPublicKey;
}

View File

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