diff --git a/.github/workflows/draft-release.yml b/.github/workflows/draft-release.yml index 022766d4f..5ad6e4778 100644 --- a/.github/workflows/draft-release.yml +++ b/.github/workflows/draft-release.yml @@ -69,7 +69,7 @@ jobs: ${{ github.workspace }}/build_info.json - name: Create draft release - uses: ncipollo/release-action@v1.11.1 + uses: ncipollo/release-action@v1.11.2 with: artifacts: ${{ github.workspace }}/PocketMine-MP.phar,${{ github.workspace }}/start.*,${{ github.workspace }}/build_info.json commit: ${{ github.sha }} diff --git a/build/php b/build/php index 9353116fa..27cc1fcdf 160000 --- a/build/php +++ b/build/php @@ -1 +1 @@ -Subproject commit 9353116fa8c78ed4f588b983088cabd96885286e +Subproject commit 27cc1fcdfa54b11c83d5d9056d189d080e5a7786 diff --git a/changelogs/4.11.md b/changelogs/4.11.md index 04de9824d..fff7845ea 100644 --- a/changelogs/4.11.md +++ b/changelogs/4.11.md @@ -92,11 +92,11 @@ Released 25th November 2022. - `ItemFrameRotateItemSound` ## Internals -- Improved performance of `ContainerTrait` dropping items on block destroy. (24e72ec109c1442b09558df89b6833cf2f2e0ec7) -- Avoid repeated calls to `Position->getWorld()` (use local variables). (2940547026db40ce76deb46e992870de3ead79ad) -- Revamped the way `InventoryManager` handles fake inventory slot mappings for stuff like crafting tables. (e90abecf38d9c57635fa0497514bba7e546a2469) -- Console polling is now done on the main thread (no longer a performance concern). -- Console reader subprocess should now automatically die if the server main process is killed, instead of persisting as a zombie. -- `ConsoleCommandSender` is no longer responsible for relaying broadcast messages to `MainLogger`. A new `BroadcastLoggerForwarder` has been added, which is subscribed to the appropriate server broadcast channels in order to relay messages. This ensures that chat messages and command audit messages are logged. -- `DelegateInventory` now uses `WeakReference` to track its inventory listener. This allows the delegate to be reused. +- Improved performance of `ContainerTrait` dropping items on block destroy. ([link](https://github.com/pmmp/PocketMine-MP/commits/24e72ec109c1442b09558df89b6833cf2f2e0ec7)) +- Avoid repeated calls to `Position->getWorld()` (use local variables). ([link](https://github.com/pmmp/PocketMine-MP/commit/2940547026db40ce76deb46e992870de3ead79ad)) +- Revamped the way `InventoryManager` handles fake inventory slot mappings for stuff like crafting tables. ([link](https://github.com/pmmp/PocketMine-MP/commit/e90abecf38d9c57635fa0497514bba7e546a2469)) +- Console polling is now done on the main thread (no longer a performance concern). ([link](https://github.com/pmmp/PocketMine-MP/commit/b3f03d7ae645de67a54b7300c09b94eeca16298e)) +- Console reader subprocess should now automatically die if the server main process is killed, instead of persisting as a zombie. ([link](https://github.com/pmmp/PocketMine-MP/commit/2585160ca2c4df5758b8b980331307402ff9f0fb)) +- `ConsoleCommandSender` is no longer responsible for relaying broadcast messages to `MainLogger`. A new `BroadcastLoggerForwarder` has been added, which is subscribed to the appropriate server broadcast channels in order to relay messages. This ensures that chat messages and command audit messages are logged. ([link](https://github.com/pmmp/PocketMine-MP/commit/83e5b0adb6fa0dddec377182bb1c7945ac8f7820)) +- `DelegateInventory` now uses `WeakReference` to track its inventory listener. This allows the delegate to be reused. ([link](https://github.com/pmmp/PocketMine-MP/commit/3feaa18f6c10c3a99c0deca75f57ec2d74b92ab4)) - Non-arrow projectile damage is now unscaled. Scaling according to velocity is only applied to arrows. This currently doesn't cause any observable change in behaviour, but is required for future additions. \ No newline at end of file diff --git a/changelogs/4.12.md b/changelogs/4.12.md new file mode 100644 index 000000000..62ead0b40 --- /dev/null +++ b/changelogs/4.12.md @@ -0,0 +1,14 @@ +**For Minecraft: Bedrock Edition 1.19.50** + +### Note about API versions +Plugins which don't touch the protocol and compatible with any previous 4.x.y version will also run on these releases and do not need API bumps. +Plugin developers should **only** update their required API to this version if you need the changes in this build. + +**WARNING: If your plugin uses the protocol, you're not shielded by API change constraints.** You should consider using the `mcpe-protocol` directive in `plugin.yml` as a constraint if you do. + +# 4.12.0 +Released 30th November 2022. + +## General +- Added support for Minecraft: Bedrock Edition 1.19.50. +- Removed support for older versions. diff --git a/composer.json b/composer.json index e47286f4a..3b31d00c7 100644 --- a/composer.json +++ b/composer.json @@ -34,8 +34,8 @@ "adhocore/json-comment": "^1.1", "fgrosse/phpasn1": "^2.3", "netresearch/jsonmapper": "^4.0", - "pocketmine/bedrock-data": "~1.12.0+bedrock-1.19.40", - "pocketmine/bedrock-protocol": "~16.0.0+bedrock-1.19.40", + "pocketmine/bedrock-data": "~1.13.0+bedrock-1.19.50", + "pocketmine/bedrock-protocol": "~17.0.0+bedrock-1.19.50", "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 6843484d2..61cf20243 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": "ff2bc73e9b0acccb1e63ddef2412fe31", + "content-hash": "6818c4f3d55e45758df83a56d60653cf", "packages": [ { "name": "adhocore/json-comment", @@ -249,16 +249,16 @@ }, { "name": "pocketmine/bedrock-data", - "version": "1.12.0+bedrock-1.19.40", + "version": "1.13.0+bedrock-1.19.50", "source": { "type": "git", "url": "https://github.com/pmmp/BedrockData.git", - "reference": "32690f1dac05608b558fe7c40b6d634772c8e416" + "reference": "57337ddc9433a0e245a1ce48c51af05f0573d58d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pmmp/BedrockData/zipball/32690f1dac05608b558fe7c40b6d634772c8e416", - "reference": "32690f1dac05608b558fe7c40b6d634772c8e416", + "url": "https://api.github.com/repos/pmmp/BedrockData/zipball/57337ddc9433a0e245a1ce48c51af05f0573d58d", + "reference": "57337ddc9433a0e245a1ce48c51af05f0573d58d", "shasum": "" }, "type": "library", @@ -269,22 +269,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.40" + "source": "https://github.com/pmmp/BedrockData/tree/bedrock-1.19.50" }, - "time": "2022-10-25T21:45:24+00:00" + "time": "2022-11-30T16:19:59+00:00" }, { "name": "pocketmine/bedrock-protocol", - "version": "16.0.0+bedrock-1.19.40", + "version": "17.0.0+bedrock-1.19.50", "source": { "type": "git", "url": "https://github.com/pmmp/BedrockProtocol.git", - "reference": "ce900ffa6a4cc07af92686f27d580dd2e2541382" + "reference": "272e10197bb1603c0a81075bf5b9dae0d081a6e2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pmmp/BedrockProtocol/zipball/ce900ffa6a4cc07af92686f27d580dd2e2541382", - "reference": "ce900ffa6a4cc07af92686f27d580dd2e2541382", + "url": "https://api.github.com/repos/pmmp/BedrockProtocol/zipball/272e10197bb1603c0a81075bf5b9dae0d081a6e2", + "reference": "272e10197bb1603c0a81075bf5b9dae0d081a6e2", "shasum": "" }, "require": { @@ -316,9 +316,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/16.0.0+bedrock-1.19.40" + "source": "https://github.com/pmmp/BedrockProtocol/tree/17.0.0+bedrock-1.19.50" }, - "time": "2022-11-19T16:11:48+00:00" + "time": "2022-11-30T16:16:27+00:00" }, { "name": "pocketmine/binaryutils", diff --git a/src/VersionInfo.php b/src/VersionInfo.php index 1c93eb558..6bb89aba5 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 = "4.11.1"; + public const BASE_VERSION = "4.12.1"; public const IS_DEVELOPMENT_BUILD = true; public const BUILD_CHANNEL = "stable"; diff --git a/src/item/Durable.php b/src/item/Durable.php index f9420503c..887fbb4fd 100644 --- a/src/item/Durable.php +++ b/src/item/Durable.php @@ -121,7 +121,7 @@ abstract class Durable extends Item{ * Returns whether the item is broken. */ public function isBroken() : bool{ - return $this->damage >= $this->getMaxDurability(); + return $this->damage >= $this->getMaxDurability() || $this->isNull(); } protected function deserializeCompoundTag(CompoundTag $tag) : void{