diff --git a/composer.json b/composer.json index 999ad29c9..96715ef8f 100644 --- a/composer.json +++ b/composer.json @@ -34,10 +34,10 @@ "adhocore/json-comment": "~1.2.0", "fgrosse/phpasn1": "~2.5.0", "pocketmine/netresearch-jsonmapper": "~v4.2.1000", - "pocketmine/bedrock-block-upgrade-schema": "~3.1.0+bedrock-1.20.10", - "pocketmine/bedrock-data": "~2.4.0+bedrock-1.20.10", - "pocketmine/bedrock-item-upgrade-schema": "~1.4.0+bedrock-1.20.10", - "pocketmine/bedrock-protocol": "~23.0.2+bedrock-1.20.10", + "pocketmine/bedrock-block-upgrade-schema": "~3.2.0+bedrock-1.20.30", + "pocketmine/bedrock-data": "~2.5.0+bedrock-1.20.30", + "pocketmine/bedrock-item-upgrade-schema": "~1.5.0+bedrock-1.20.30", + "pocketmine/bedrock-protocol": "~24.0.0+bedrock-1.20.30", "pocketmine/binaryutils": "^0.2.1", "pocketmine/callback-validator": "^1.0.2", "pocketmine/classloader": "^0.2.0", @@ -47,7 +47,7 @@ "pocketmine/log": "^0.4.0", "pocketmine/log-pthreads": "^0.4.0", "pocketmine/math": "^0.4.0", - "pocketmine/nbt": "^0.3.2", + "pocketmine/nbt": "~1.0.0", "pocketmine/raklib": "^0.14.2", "pocketmine/raklib-ipc": "^0.1.0", "pocketmine/snooze": "^0.3.0", diff --git a/composer.lock b/composer.lock index 9634a6575..8679a0810 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": "2acf1299aa8b354c44495ae048aa8893", + "content-hash": "dc69846ccf19272d45811712f038f167", "packages": [ { "name": "adhocore/json-comment", @@ -198,16 +198,16 @@ }, { "name": "pocketmine/bedrock-block-upgrade-schema", - "version": "3.1.0", + "version": "3.2.0", "source": { "type": "git", "url": "https://github.com/pmmp/BedrockBlockUpgradeSchema.git", - "reference": "6d4ae416043337946a22fc31e8065ca2c21f472d" + "reference": "874e1c0c9b7b620744d08b59c78354fe9f028dfa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pmmp/BedrockBlockUpgradeSchema/zipball/6d4ae416043337946a22fc31e8065ca2c21f472d", - "reference": "6d4ae416043337946a22fc31e8065ca2c21f472d", + "url": "https://api.github.com/repos/pmmp/BedrockBlockUpgradeSchema/zipball/874e1c0c9b7b620744d08b59c78354fe9f028dfa", + "reference": "874e1c0c9b7b620744d08b59c78354fe9f028dfa", "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/3.1.0" + "source": "https://github.com/pmmp/BedrockBlockUpgradeSchema/tree/3.2.0" }, - "time": "2023-07-12T12:05:36+00:00" + "time": "2023-09-20T17:03:43+00:00" }, { "name": "pocketmine/bedrock-data", - "version": "2.4.0+bedrock-1.20.10", + "version": "2.5.0+bedrock-1.20.30", "source": { "type": "git", "url": "https://github.com/pmmp/BedrockData.git", - "reference": "f98bd1cae46d2920058acf3b23c0bedeac79f4ab" + "reference": "e920209393a8bf6cb15fb40c3f3149aaf8e1a2b9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pmmp/BedrockData/zipball/f98bd1cae46d2920058acf3b23c0bedeac79f4ab", - "reference": "f98bd1cae46d2920058acf3b23c0bedeac79f4ab", + "url": "https://api.github.com/repos/pmmp/BedrockData/zipball/e920209393a8bf6cb15fb40c3f3149aaf8e1a2b9", + "reference": "e920209393a8bf6cb15fb40c3f3149aaf8e1a2b9", "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.20.10" + "source": "https://github.com/pmmp/BedrockData/tree/bedrock-1.20.30" }, - "time": "2023-07-12T11:51:54+00:00" + "time": "2023-09-20T16:34:21+00:00" }, { "name": "pocketmine/bedrock-item-upgrade-schema", - "version": "1.4.0", + "version": "1.5.0", "source": { "type": "git", "url": "https://github.com/pmmp/BedrockItemUpgradeSchema.git", - "reference": "60d199afe5e371fd189b21d685ec1fed6ba54230" + "reference": "3edc9ebbad9a4f2d9c8f53b3a5ba44d4a792ad93" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pmmp/BedrockItemUpgradeSchema/zipball/60d199afe5e371fd189b21d685ec1fed6ba54230", - "reference": "60d199afe5e371fd189b21d685ec1fed6ba54230", + "url": "https://api.github.com/repos/pmmp/BedrockItemUpgradeSchema/zipball/3edc9ebbad9a4f2d9c8f53b3a5ba44d4a792ad93", + "reference": "3edc9ebbad9a4f2d9c8f53b3a5ba44d4a792ad93", "shasum": "" }, "type": "library", @@ -270,32 +270,32 @@ "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.4.0" + "source": "https://github.com/pmmp/BedrockItemUpgradeSchema/tree/1.5.0" }, - "time": "2023-07-12T12:08:37+00:00" + "time": "2023-09-01T19:58:57+00:00" }, { "name": "pocketmine/bedrock-protocol", - "version": "23.0.4+bedrock-1.20.10", + "version": "24.0.0+bedrock-1.20.30", "source": { "type": "git", "url": "https://github.com/pmmp/BedrockProtocol.git", - "reference": "ae0d8f4d49506674b7ff622f7c81ce241dc49adb" + "reference": "38a516274aa6641b0da38011af35a5587fc87895" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pmmp/BedrockProtocol/zipball/ae0d8f4d49506674b7ff622f7c81ce241dc49adb", - "reference": "ae0d8f4d49506674b7ff622f7c81ce241dc49adb", + "url": "https://api.github.com/repos/pmmp/BedrockProtocol/zipball/38a516274aa6641b0da38011af35a5587fc87895", + "reference": "38a516274aa6641b0da38011af35a5587fc87895", "shasum": "" }, "require": { "ext-json": "*", "netresearch/jsonmapper": "^4.0", - "php": "^8.0", + "php": "^8.1", "pocketmine/binaryutils": "^0.2.0", "pocketmine/color": "^0.2.0 || ^0.3.0", "pocketmine/math": "^0.3.0 || ^0.4.0 || ^1.0.0", - "pocketmine/nbt": "^0.3.0 || ^1.0.0", + "pocketmine/nbt": "^1.0.0", "ramsey/uuid": "^4.1" }, "require-dev": { @@ -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/23.0.4+bedrock-1.20.10" + "source": "https://github.com/pmmp/BedrockProtocol/tree/24.0.0+bedrock-1.20.30" }, - "time": "2023-09-06T07:36:44+00:00" + "time": "2023-09-20T16:57:53+00:00" }, { "name": "pocketmine/binaryutils", @@ -688,16 +688,16 @@ }, { "name": "pocketmine/nbt", - "version": "0.3.4", + "version": "1.0.0", "source": { "type": "git", "url": "https://github.com/pmmp/NBT.git", - "reference": "62c02464c6708b2467c1e1a2af01af09d5114eda" + "reference": "20540271cb59e04672cb163dca73366f207974f1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pmmp/NBT/zipball/62c02464c6708b2467c1e1a2af01af09d5114eda", - "reference": "62c02464c6708b2467c1e1a2af01af09d5114eda", + "url": "https://api.github.com/repos/pmmp/NBT/zipball/20540271cb59e04672cb163dca73366f207974f1", + "reference": "20540271cb59e04672cb163dca73366f207974f1", "shasum": "" }, "require": { @@ -707,7 +707,7 @@ }, "require-dev": { "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "1.10.3", + "phpstan/phpstan": "1.10.25", "phpstan/phpstan-strict-rules": "^1.0", "phpunit/phpunit": "^9.5" }, @@ -724,9 +724,9 @@ "description": "PHP library for working with Named Binary Tags", "support": { "issues": "https://github.com/pmmp/NBT/issues", - "source": "https://github.com/pmmp/NBT/tree/0.3.4" + "source": "https://github.com/pmmp/NBT/tree/1.0.0" }, - "time": "2023-04-10T11:31:20+00:00" + "time": "2023-07-14T13:01:49+00:00" }, { "name": "pocketmine/netresearch-jsonmapper", diff --git a/src/network/mcpe/handler/InGamePacketHandler.php b/src/network/mcpe/handler/InGamePacketHandler.php index 3ea3e0ad9..27b2f1de5 100644 --- a/src/network/mcpe/handler/InGamePacketHandler.php +++ b/src/network/mcpe/handler/InGamePacketHandler.php @@ -81,7 +81,6 @@ use pocketmine\network\mcpe\protocol\PlayerAuthInputPacket; use pocketmine\network\mcpe\protocol\PlayerHotbarPacket; use pocketmine\network\mcpe\protocol\PlayerInputPacket; use pocketmine\network\mcpe\protocol\PlayerSkinPacket; -use pocketmine\network\mcpe\protocol\RequestAbilityPacket; use pocketmine\network\mcpe\protocol\RequestChunkRadiusPacket; use pocketmine\network\mcpe\protocol\ServerSettingsRequestPacket; use pocketmine\network\mcpe\protocol\SetActorMotionPacket; @@ -118,7 +117,6 @@ use function fmod; use function get_debug_type; use function implode; use function in_array; -use function is_bool; use function is_infinite; use function is_nan; use function json_decode; @@ -229,11 +227,13 @@ class InGamePacketHandler extends PacketHandler{ $sprinting = $this->resolveOnOffInputFlags($inputFlags, PlayerAuthInputFlags::START_SPRINTING, PlayerAuthInputFlags::STOP_SPRINTING); $swimming = $this->resolveOnOffInputFlags($inputFlags, PlayerAuthInputFlags::START_SWIMMING, PlayerAuthInputFlags::STOP_SWIMMING); $gliding = $this->resolveOnOffInputFlags($inputFlags, PlayerAuthInputFlags::START_GLIDING, PlayerAuthInputFlags::STOP_GLIDING); + $flying = $this->resolveOnOffInputFlags($inputFlags, PlayerAuthInputFlags::START_FLYING, PlayerAuthInputFlags::STOP_FLYING); $mismatch = ($sneaking !== null && !$this->player->toggleSneak($sneaking)) | ($sprinting !== null && !$this->player->toggleSprint($sprinting)) | ($swimming !== null && !$this->player->toggleSwim($swimming)) | - ($gliding !== null && !$this->player->toggleGlide($gliding)); + ($gliding !== null && !$this->player->toggleGlide($gliding)) | + ($flying !== null && !$this->player->toggleFlight($flying)); if((bool) $mismatch){ $this->player->sendData([$this->player]); } @@ -1034,22 +1034,4 @@ class InGamePacketHandler extends PacketHandler{ $this->player->emote($packet->getEmoteId()); return true; } - - public function handleRequestAbility(RequestAbilityPacket $packet) : bool{ - if($packet->getAbilityId() === RequestAbilityPacket::ABILITY_FLYING){ - $isFlying = $packet->getAbilityValue(); - if(!is_bool($isFlying)){ - throw new PacketHandlingException("Flying ability should always have a bool value"); - } - if($isFlying !== $this->player->isFlying()){ - if(!$this->player->toggleFlight($isFlying)){ - $this->session->syncAbilities($this->player); - } - } - - return true; - } - - return false; - } } diff --git a/src/network/mcpe/handler/ResourcePacksPacketHandler.php b/src/network/mcpe/handler/ResourcePacksPacketHandler.php index d1ba85724..7b301ddc2 100644 --- a/src/network/mcpe/handler/ResourcePacksPacketHandler.php +++ b/src/network/mcpe/handler/ResourcePacksPacketHandler.php @@ -80,7 +80,7 @@ class ResourcePacksPacketHandler extends PacketHandler{ ); }, $this->resourcePackManager->getResourceStack()); //TODO: support forcing server packs - $this->session->sendDataPacket(ResourcePacksInfoPacket::create($resourcePackEntries, [], $this->resourcePackManager->resourcePacksRequired(), false, false)); + $this->session->sendDataPacket(ResourcePacksInfoPacket::create($resourcePackEntries, [], $this->resourcePackManager->resourcePacksRequired(), false, false, [])); $this->session->getLogger()->debug("Waiting for client to accept resource packs"); }