diff --git a/changelogs/5.17.md b/changelogs/5.17.md new file mode 100644 index 000000000..1b4084710 --- /dev/null +++ b/changelogs/5.17.md @@ -0,0 +1,25 @@ +# 5.17.0 +Released 10th July 2024. + +**For Minecraft: Bedrock Edition 1.21.2** + +This is a support release for Minecraft: Bedrock Edition 1.21.2. + +**Plugin compatibility:** Plugins for previous 5.x versions will run unchanged on this release, unless they use internal APIs, reflection, or packages like the `pocketmine\network\mcpe` or `pocketmine\data` namespace. +Do not update plugin minimum API versions unless you need new features added in this release. + +**WARNING: If your plugin uses the `pocketmine\network\mcpe` namespace, you're not shielded by API change constraints.** +Consider using the `mcpe-protocol` directive in `plugin.yml` as a constraint if you're using packets directly. + +## General +- Added support for Minecraft: Bedrock Edition 1.21.2. +- Removed support for earlier versions. + +## API +### `pocketmine\player` +- The following methods have been added: + - `public function closeAllForms() : void` - closes the current viewing form and forms in queue. + +## Fixes +- Bowl can now be used as fuel. +- Bells always drops themselves even when using an incompatible tool. diff --git a/composer.json b/composer.json index dbc1b1354..299f69f78 100644 --- a/composer.json +++ b/composer.json @@ -36,7 +36,7 @@ "pocketmine/bedrock-block-upgrade-schema": "~4.2.0+bedrock-1.21.0", "pocketmine/bedrock-data": "~2.11.0+bedrock-1.21.0", "pocketmine/bedrock-item-upgrade-schema": "~1.10.0+bedrock-1.21.0", - "pocketmine/bedrock-protocol": "~31.0.0+bedrock-1.21.0", + "pocketmine/bedrock-protocol": "~32.1.0+bedrock-1.21.2", "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 ce8d52e26..0547560cc 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": "6254ce9a454f8c9acd4936512c4d315a", + "content-hash": "d459605b85f247204988a879982aab50", "packages": [ { "name": "adhocore/json-comment", @@ -205,16 +205,16 @@ }, { "name": "pocketmine/bedrock-protocol", - "version": "31.0.0+bedrock-1.21.0", + "version": "32.1.0+bedrock-1.21.2", "source": { "type": "git", "url": "https://github.com/pmmp/BedrockProtocol.git", - "reference": "972373b6b8068963649f0a95163424eb5b645e29" + "reference": "bb23db51365bdc91d3135c3885986a691ae1cb44" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pmmp/BedrockProtocol/zipball/972373b6b8068963649f0a95163424eb5b645e29", - "reference": "972373b6b8068963649f0a95163424eb5b645e29", + "url": "https://api.github.com/repos/pmmp/BedrockProtocol/zipball/bb23db51365bdc91d3135c3885986a691ae1cb44", + "reference": "bb23db51365bdc91d3135c3885986a691ae1cb44", "shasum": "" }, "require": { @@ -245,9 +245,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/31.0.0+bedrock-1.21.0" + "source": "https://github.com/pmmp/BedrockProtocol/tree/32.1.0+bedrock-1.21.2" }, - "time": "2024-06-13T17:34:14+00:00" + "time": "2024-07-10T01:38:43+00:00" }, { "name": "pocketmine/binaryutils", diff --git a/src/VersionInfo.php b/src/VersionInfo.php index 9b935f8a0..bc4154e86 100644 --- a/src/VersionInfo.php +++ b/src/VersionInfo.php @@ -31,7 +31,7 @@ use function str_repeat; final class VersionInfo{ public const NAME = "PocketMine-MP"; - public const BASE_VERSION = "5.16.1"; + public const BASE_VERSION = "5.17.1"; public const IS_DEVELOPMENT_BUILD = true; public const BUILD_CHANNEL = "stable"; diff --git a/src/network/mcpe/NetworkSession.php b/src/network/mcpe/NetworkSession.php index 04cc7b932..218e10253 100644 --- a/src/network/mcpe/NetworkSession.php +++ b/src/network/mcpe/NetworkSession.php @@ -54,6 +54,7 @@ use pocketmine\network\mcpe\handler\SessionStartPacketHandler; use pocketmine\network\mcpe\handler\SpawnResponsePacketHandler; use pocketmine\network\mcpe\protocol\AvailableCommandsPacket; use pocketmine\network\mcpe\protocol\ChunkRadiusUpdatedPacket; +use pocketmine\network\mcpe\protocol\ClientboundCloseFormPacket; use pocketmine\network\mcpe\protocol\ClientboundPacket; use pocketmine\network\mcpe\protocol\DisconnectPacket; use pocketmine\network\mcpe\protocol\ModalFormRequestPacket; @@ -1170,6 +1171,10 @@ class NetworkSession{ return $this->sendDataPacket(ModalFormRequestPacket::create($id, json_encode($form, JSON_THROW_ON_ERROR))); } + public function onCloseAllForms() : void{ + $this->sendDataPacket(ClientboundCloseFormPacket::create()); + } + /** * Instructs the networksession to start using the chunk at the given coordinates. This may occur asynchronously. * @param \Closure $onCompletion To be called when chunk sending has completed. diff --git a/src/player/Player.php b/src/player/Player.php index 0cefbe71f..d442c6a3b 100644 --- a/src/player/Player.php +++ b/src/player/Player.php @@ -2151,6 +2151,13 @@ class Player extends Human implements CommandSender, ChunkListener, IPlayer{ return true; } + /** + * Closes the current viewing form and forms in queue. + */ + public function closeAllForms() : void{ + $this->getNetworkSession()->onCloseAllForms(); + } + /** * Transfers a player to another server. *