From 2538880408b54418cce05171b7cf3af58cfdf4c3 Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Wed, 7 Jun 2023 20:56:59 +0100 Subject: [PATCH] 1.20.0 --- composer.json | 8 +-- composer.lock | 50 +++++++++---------- .../mcpe/StandardEntityEventBroadcaster.php | 2 +- src/network/mcpe/auth/ProcessLoginTask.php | 7 ++- .../mcpe/handler/PreSpawnPacketHandler.php | 2 + 5 files changed, 37 insertions(+), 32 deletions(-) diff --git a/composer.json b/composer.json index 4bd3a7f46..f80e2aad6 100644 --- a/composer.json +++ b/composer.json @@ -34,10 +34,10 @@ "adhocore/json-comment": "^1.1", "fgrosse/phpasn1": "^2.3", "pocketmine/netresearch-jsonmapper": "~v4.2.999", - "pocketmine/bedrock-block-upgrade-schema": "~2.1.0+bedrock-1.19.80", - "pocketmine/bedrock-data": "~2.2.0+bedrock-1.19.80", - "pocketmine/bedrock-item-upgrade-schema": "~1.2.0+bedrock-1.19.80", - "pocketmine/bedrock-protocol": "~21.0.0+bedrock-1.19.80", + "pocketmine/bedrock-block-upgrade-schema": "~2.2.0+bedrock-1.20.0", + "pocketmine/bedrock-data": "~2.3.0+bedrock-1.20.0", + "pocketmine/bedrock-item-upgrade-schema": "~1.3.0+bedrock-1.20.0", + "pocketmine/bedrock-protocol": "~22.0.0+bedrock-1.20.0", "pocketmine/binaryutils": "^0.2.1", "pocketmine/callback-validator": "^1.0.2", "pocketmine/classloader": "^0.2.0", diff --git a/composer.lock b/composer.lock index afda5bba1..2bed1c324 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": "cae150ae8bac086e74a390a96ad48ac4", + "content-hash": "fcfde015c4c61d0a422234b5858b98a7", "packages": [ { "name": "adhocore/json-comment", @@ -198,16 +198,16 @@ }, { "name": "pocketmine/bedrock-block-upgrade-schema", - "version": "2.1.0", + "version": "2.2.0", "source": { "type": "git", "url": "https://github.com/pmmp/BedrockBlockUpgradeSchema.git", - "reference": "1c07ced86be7d185551082441b5a2b9b7fbd6b21" + "reference": "79bb3ad542ef19e828fdf1fa6adc54f1fa4b3bb5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pmmp/BedrockBlockUpgradeSchema/zipball/1c07ced86be7d185551082441b5a2b9b7fbd6b21", - "reference": "1c07ced86be7d185551082441b5a2b9b7fbd6b21", + "url": "https://api.github.com/repos/pmmp/BedrockBlockUpgradeSchema/zipball/79bb3ad542ef19e828fdf1fa6adc54f1fa4b3bb5", + "reference": "79bb3ad542ef19e828fdf1fa6adc54f1fa4b3bb5", "shasum": "" }, "type": "library", @@ -218,22 +218,22 @@ "description": "Schemas describing how to upgrade saved block data in older Minecraft: Bedrock Edition world saves", "support": { "issues": "https://github.com/pmmp/BedrockBlockUpgradeSchema/issues", - "source": "https://github.com/pmmp/BedrockBlockUpgradeSchema/tree/2.1.0" + "source": "https://github.com/pmmp/BedrockBlockUpgradeSchema/tree/2.2.0" }, - "time": "2023-04-19T17:58:49+00:00" + "time": "2023-05-04T21:49:36+00:00" }, { "name": "pocketmine/bedrock-data", - "version": "2.2.0+bedrock-1.19.80", + "version": "2.3.0+bedrock-1.20.0", "source": { "type": "git", "url": "https://github.com/pmmp/BedrockData.git", - "reference": "33dd83601442b377af42ac91473278243cafd576" + "reference": "b3dd3f4b8e3b6759c5d84de6ec85bb20b668c3a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pmmp/BedrockData/zipball/33dd83601442b377af42ac91473278243cafd576", - "reference": "33dd83601442b377af42ac91473278243cafd576", + "url": "https://api.github.com/repos/pmmp/BedrockData/zipball/b3dd3f4b8e3b6759c5d84de6ec85bb20b668c3a9", + "reference": "b3dd3f4b8e3b6759c5d84de6ec85bb20b668c3a9", "shasum": "" }, "type": "library", @@ -244,22 +244,22 @@ "description": "Blobs of data generated from Minecraft: Bedrock Edition, used by PocketMine-MP", "support": { "issues": "https://github.com/pmmp/BedrockData/issues", - "source": "https://github.com/pmmp/BedrockData/tree/bedrock-1.19.80" + "source": "https://github.com/pmmp/BedrockData/tree/bedrock-1.20.0" }, - "time": "2023-04-26T20:00:35+00:00" + "time": "2023-06-07T19:06:47+00:00" }, { "name": "pocketmine/bedrock-item-upgrade-schema", - "version": "1.2.0", + "version": "1.3.0", "source": { "type": "git", "url": "https://github.com/pmmp/BedrockItemUpgradeSchema.git", - "reference": "dd804c3f2b1e8990434812627e62eb5bde9670a5" + "reference": "b16c59cfae08833f180dd82f88de7c1f43bc67c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pmmp/BedrockItemUpgradeSchema/zipball/dd804c3f2b1e8990434812627e62eb5bde9670a5", - "reference": "dd804c3f2b1e8990434812627e62eb5bde9670a5", + "url": "https://api.github.com/repos/pmmp/BedrockItemUpgradeSchema/zipball/b16c59cfae08833f180dd82f88de7c1f43bc67c9", + "reference": "b16c59cfae08833f180dd82f88de7c1f43bc67c9", "shasum": "" }, "type": "library", @@ -270,22 +270,22 @@ "description": "JSON schemas for upgrading items found in older Minecraft: Bedrock world saves", "support": { "issues": "https://github.com/pmmp/BedrockItemUpgradeSchema/issues", - "source": "https://github.com/pmmp/BedrockItemUpgradeSchema/tree/1.2.0" + "source": "https://github.com/pmmp/BedrockItemUpgradeSchema/tree/1.3.0" }, - "time": "2023-04-19T18:16:14+00:00" + "time": "2023-05-18T15:34:32+00:00" }, { "name": "pocketmine/bedrock-protocol", - "version": "21.0.1+bedrock-1.19.80", + "version": "22.0.0+bedrock-1.20.0", "source": { "type": "git", "url": "https://github.com/pmmp/BedrockProtocol.git", - "reference": "981ea2e76e207a25c1361df858c639feba5cf348" + "reference": "ceff28a0bd5d248f37fb97be3e836d536e37526e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pmmp/BedrockProtocol/zipball/981ea2e76e207a25c1361df858c639feba5cf348", - "reference": "981ea2e76e207a25c1361df858c639feba5cf348", + "url": "https://api.github.com/repos/pmmp/BedrockProtocol/zipball/ceff28a0bd5d248f37fb97be3e836d536e37526e", + "reference": "ceff28a0bd5d248f37fb97be3e836d536e37526e", "shasum": "" }, "require": { @@ -317,9 +317,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/21.0.1+bedrock-1.19.80" + "source": "https://github.com/pmmp/BedrockProtocol/tree/22.0.0+bedrock-1.20.0" }, - "time": "2023-04-26T21:00:01+00:00" + "time": "2023-06-07T19:22:05+00:00" }, { "name": "pocketmine/binaryutils", diff --git a/src/network/mcpe/StandardEntityEventBroadcaster.php b/src/network/mcpe/StandardEntityEventBroadcaster.php index da0fac6ef..9996b354b 100644 --- a/src/network/mcpe/StandardEntityEventBroadcaster.php +++ b/src/network/mcpe/StandardEntityEventBroadcaster.php @@ -138,6 +138,6 @@ final class StandardEntityEventBroadcaster implements EntityEventBroadcaster{ } public function onEmote(array $recipients, Human $from, string $emoteId) : void{ - $this->sendDataPacket($recipients, EmotePacket::create($from->getId(), $emoteId, EmotePacket::FLAG_SERVER)); + $this->sendDataPacket($recipients, EmotePacket::create($from->getId(), $emoteId, "", "", EmotePacket::FLAG_SERVER)); } } diff --git a/src/network/mcpe/auth/ProcessLoginTask.php b/src/network/mcpe/auth/ProcessLoginTask.php index 553fef68f..8d65f62c2 100644 --- a/src/network/mcpe/auth/ProcessLoginTask.php +++ b/src/network/mcpe/auth/ProcessLoginTask.php @@ -38,7 +38,10 @@ use function time; class ProcessLoginTask extends AsyncTask{ private const TLS_KEY_ON_COMPLETION = "completion"; - public const MOJANG_ROOT_PUBLIC_KEY = "MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE8ELkixyLcwlZryUQcu1TvPOmI2B7vX83ndnWRUaXm74wFfa5f/lwQNTfrLVHa2PmenpGI6JhIMUJaWZrjmMj90NoKNFSNBuKdm8rYiXsfaz3K36x/1U26HpG0ZxK/V1V"; + public const MOJANG_OLD_ROOT_PUBLIC_KEY = "MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE8ELkixyLcwlZryUQcu1TvPOmI2B7vX83ndnWRUaXm74wFfa5f/lwQNTfrLVHa2PmenpGI6JhIMUJaWZrjmMj90NoKNFSNBuKdm8rYiXsfaz3K36x/1U26HpG0ZxK/V1V"; + public const MOJANG_OLD_KEY_EXPIRY = 1688169600; //2023-07-01 00:00:00 UTC - there is no official date for the changeover to the new key, so this is a guess + + public const MOJANG_ROOT_PUBLIC_KEY = "MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAECRXueJeTDqNRRgJi/vlRufByu/2G0i2Ebt6YMar5QX/R0DIIyrJMcUpruK4QveTfJSTp3Shlq4Gk34cD/4GUWwkv0DVuzeuB+tXija7HBxii03NHDbPAD0AKnLr2wdAp"; private const CLOCK_DRIFT_MAX = 60; @@ -151,7 +154,7 @@ class ProcessLoginTask extends AsyncTask{ throw new VerifyLoginException($e->getMessage(), 0, $e); } - if($headers->x5u === self::MOJANG_ROOT_PUBLIC_KEY){ + if($headers->x5u === self::MOJANG_ROOT_PUBLIC_KEY || (time() < self::MOJANG_OLD_KEY_EXPIRY && $headers->x5u === self::MOJANG_OLD_ROOT_PUBLIC_KEY)){ $this->authenticated = true; //we're signed into xbox live } diff --git a/src/network/mcpe/handler/PreSpawnPacketHandler.php b/src/network/mcpe/handler/PreSpawnPacketHandler.php index 91263a619..1873a5a78 100644 --- a/src/network/mcpe/handler/PreSpawnPacketHandler.php +++ b/src/network/mcpe/handler/PreSpawnPacketHandler.php @@ -39,6 +39,7 @@ use pocketmine\network\mcpe\protocol\types\CacheableNbt; use pocketmine\network\mcpe\protocol\types\DimensionIds; use pocketmine\network\mcpe\protocol\types\Experiments; use pocketmine\network\mcpe\protocol\types\LevelSettings; +use pocketmine\network\mcpe\protocol\types\NetworkPermissions; use pocketmine\network\mcpe\protocol\types\PlayerMovementSettings; use pocketmine\network\mcpe\protocol\types\PlayerMovementType; use pocketmine\network\mcpe\protocol\types\SpawnSettings; @@ -106,6 +107,7 @@ class PreSpawnPacketHandler extends PacketHandler{ Uuid::fromString(Uuid::NIL), false, false, + new NetworkPermissions(disableClientSounds: true), [], 0, GlobalItemTypeDictionary::getInstance()->getDictionary()->getEntries(),