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