diff --git a/composer.json b/composer.json index 17271955e..b4ca8de6b 100644 --- a/composer.json +++ b/composer.json @@ -36,7 +36,7 @@ "pocketmine/bedrock-block-upgrade-schema": "~5.1.0+bedrock-1.21.60", "pocketmine/bedrock-data": "~6.0.0+bedrock-1.21.100", "pocketmine/bedrock-item-upgrade-schema": "~1.15.0+bedrock-1.21.100", - "pocketmine/bedrock-protocol": "~40.0.0+bedrock-1.21.100", + "pocketmine/bedrock-protocol": "~41.0.0+bedrock-1.21.100", "pocketmine/binaryutils": "^0.2.1", "pocketmine/callback-validator": "^1.0.2", "pocketmine/color": "^0.3.0", diff --git a/composer.lock b/composer.lock index 330f002d7..9af788d2b 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "27fee330bdcb6ea2373c57cdfb3bc22f", + "content-hash": "7bf7cd54642c2d65ecdfdcb28f3a64a8", "packages": [ { "name": "adhocore/json-comment", @@ -256,16 +256,16 @@ }, { "name": "pocketmine/bedrock-protocol", - "version": "40.0.0+bedrock-1.21.100", + "version": "41.0.0+bedrock-1.21.100", "source": { "type": "git", "url": "https://github.com/pmmp/BedrockProtocol.git", - "reference": "5e95cab3a6e6c24920e0c25ca4aaf887ed4b70ca" + "reference": "920ac291fe1b0143b2ebc90b3374ddab0b8531bf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pmmp/BedrockProtocol/zipball/5e95cab3a6e6c24920e0c25ca4aaf887ed4b70ca", - "reference": "5e95cab3a6e6c24920e0c25ca4aaf887ed4b70ca", + "url": "https://api.github.com/repos/pmmp/BedrockProtocol/zipball/920ac291fe1b0143b2ebc90b3374ddab0b8531bf", + "reference": "920ac291fe1b0143b2ebc90b3374ddab0b8531bf", "shasum": "" }, "require": { @@ -296,9 +296,9 @@ "description": "An implementation of the Minecraft: Bedrock Edition protocol in PHP", "support": { "issues": "https://github.com/pmmp/BedrockProtocol/issues", - "source": "https://github.com/pmmp/BedrockProtocol/tree/40.0.0+bedrock-1.21.100" + "source": "https://github.com/pmmp/BedrockProtocol/tree/41.0.0+bedrock-1.21.100" }, - "time": "2025-08-06T15:13:45+00:00" + "time": "2025-09-09T20:52:18+00:00" }, { "name": "pocketmine/binaryutils", diff --git a/src/network/mcpe/auth/ProcessLoginTask.php b/src/network/mcpe/auth/ProcessLoginTask.php index b4c9e6d9c..218edc7a5 100644 --- a/src/network/mcpe/auth/ProcessLoginTask.php +++ b/src/network/mcpe/auth/ProcessLoginTask.php @@ -27,8 +27,8 @@ use pocketmine\lang\KnownTranslationFactory; use pocketmine\lang\Translatable; use pocketmine\network\mcpe\JwtException; use pocketmine\network\mcpe\JwtUtils; -use pocketmine\network\mcpe\protocol\types\login\JwtChainLinkBody; -use pocketmine\network\mcpe\protocol\types\login\JwtHeader; +use pocketmine\network\mcpe\protocol\types\login\legacy\LegacyAuthJwtBody; +use pocketmine\network\mcpe\protocol\types\login\SelfSignedJwtHeader; use pocketmine\scheduler\AsyncTask; use pocketmine\thread\NonThreadSafeValue; use function base64_decode; @@ -128,8 +128,8 @@ class ProcessLoginTask extends AsyncTask{ $mapper->bEnforceMapType = false; try{ - /** @var JwtHeader $headers */ - $headers = $mapper->map($headersArray, new JwtHeader()); + /** @var SelfSignedJwtHeader $headers */ + $headers = $mapper->map($headersArray, new SelfSignedJwtHeader()); }catch(\JsonMapper_Exception $e){ throw new VerifyLoginException("Invalid JWT header: " . $e->getMessage(), null, 0, $e); } @@ -172,8 +172,8 @@ class ProcessLoginTask extends AsyncTask{ $mapper->bEnforceMapType = false; $mapper->bRemoveUndefinedAttributes = true; try{ - /** @var JwtChainLinkBody $claims */ - $claims = $mapper->map($claimsArray, new JwtChainLinkBody()); + /** @var LegacyAuthJwtBody $claims */ + $claims = $mapper->map($claimsArray, new LegacyAuthJwtBody()); }catch(\JsonMapper_Exception $e){ throw new VerifyLoginException("Invalid chain link body: " . $e->getMessage(), null, 0, $e); } diff --git a/src/network/mcpe/handler/LoginPacketHandler.php b/src/network/mcpe/handler/LoginPacketHandler.php index 5c467f2d4..c664c4b9f 100644 --- a/src/network/mcpe/handler/LoginPacketHandler.php +++ b/src/network/mcpe/handler/LoginPacketHandler.php @@ -32,12 +32,12 @@ use pocketmine\network\mcpe\JwtException; use pocketmine\network\mcpe\JwtUtils; use pocketmine\network\mcpe\NetworkSession; use pocketmine\network\mcpe\protocol\LoginPacket; -use pocketmine\network\mcpe\protocol\types\login\AuthenticationData; use pocketmine\network\mcpe\protocol\types\login\AuthenticationInfo; use pocketmine\network\mcpe\protocol\types\login\AuthenticationType; -use pocketmine\network\mcpe\protocol\types\login\ClientData; -use pocketmine\network\mcpe\protocol\types\login\ClientDataToSkinDataHelper; -use pocketmine\network\mcpe\protocol\types\login\JwtChain; +use pocketmine\network\mcpe\protocol\types\login\clientdata\ClientData; +use pocketmine\network\mcpe\protocol\types\login\clientdata\ClientDataToSkinDataHelper; +use pocketmine\network\mcpe\protocol\types\login\legacy\LegacyAuthChain; +use pocketmine\network\mcpe\protocol\types\login\legacy\LegacyAuthIdentityData; use pocketmine\network\PacketHandlingException; use pocketmine\player\Player; use pocketmine\player\PlayerInfo; @@ -180,7 +180,7 @@ class LoginPacketHandler extends PacketHandler{ /** * @throws PacketHandlingException */ - protected function parseJwtChain(string $chainDataJwt) : JwtChain{ + protected function parseJwtChain(string $chainDataJwt) : LegacyAuthChain{ try{ $jwtChainJson = json_decode($chainDataJwt, associative: false, flags: JSON_THROW_ON_ERROR); }catch(\JsonException $e){ @@ -195,7 +195,7 @@ class LoginPacketHandler extends PacketHandler{ $mapper->bExceptionOnUndefinedProperty = true; $mapper->bStrictObjectTypeChecking = true; try{ - $clientData = $mapper->map($jwtChainJson, new JwtChain()); + $clientData = $mapper->map($jwtChainJson, new LegacyAuthChain()); }catch(\JsonMapper_Exception $e){ throw PacketHandlingException::wrap($e); } @@ -205,8 +205,8 @@ class LoginPacketHandler extends PacketHandler{ /** * @throws PacketHandlingException */ - protected function fetchAuthData(JwtChain $chain) : AuthenticationData{ - /** @var AuthenticationData|null $extraData */ + protected function fetchAuthData(LegacyAuthChain $chain) : LegacyAuthIdentityData{ + /** @var LegacyAuthIdentityData|null $extraData */ $extraData = null; foreach($chain->chain as $jwt){ //validate every chain element @@ -229,8 +229,8 @@ class LoginPacketHandler extends PacketHandler{ $mapper->bExceptionOnUndefinedProperty = true; $mapper->bStrictObjectTypeChecking = true; try{ - /** @var AuthenticationData $extraData */ - $extraData = $mapper->map($claims["extraData"], new AuthenticationData()); + /** @var LegacyAuthIdentityData $extraData */ + $extraData = $mapper->map($claims["extraData"], new LegacyAuthIdentityData()); }catch(\JsonMapper_Exception $e){ throw PacketHandlingException::wrap($e); }