From a35c3406a8c602cb02c412173bd88534a1a418dd Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Wed, 28 Feb 2024 18:14:37 +0000 Subject: [PATCH] Release 5.12.0 --- changelogs/5.12.md | 54 +++++++++++++++++++++++++++++++++++++++++++++ src/VersionInfo.php | 4 ++-- 2 files changed, 56 insertions(+), 2 deletions(-) create mode 100644 changelogs/5.12.md diff --git a/changelogs/5.12.md b/changelogs/5.12.md new file mode 100644 index 000000000..f1857efa4 --- /dev/null +++ b/changelogs/5.12.md @@ -0,0 +1,54 @@ +# 5.12.0 +Released 28th February 2024 + +**For Minecraft: Bedrock Edition 1.20.60** + +This is a minor feature release, with a few new features and improvements. + +**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 a `--version` command-line option to display the server version and exit. + +## Tools +- Added `tools/generate-biome-ids.php` to generate `pocketmine\data\bedrock\BiomeIds`. +- Fixed ordering of property values generated by `tools/generate-block-palette-spec.php`. + +## API +### `pocketmine\block` +- The following new classes have been added: + - `utils\LightableTrait` - used by blocks with `getLit()` and `setLit()` methods +- The following methods have been deprecated: + - `Block->isSolid()` - this method returns confusing results which don't match expectations and no one really knows what it actually means +- `CocoaBlock` now extends `Flowable` to match vanilla Minecraft behaviour. + +### `pocketmine\plugin` +- `PluginManager->registerEvent()` now throws an exception when given a generator function for the event handler. +- `PluginManager->registerEvents()` now throws an exception if any of the detected event handlers are generator functions. Use `@notHandler` to have the function ignored if intended. + +### `pocketmine\promise` +- The following methods have been added: + - `public static Promise::all(list $promises) : Promise` - returns a promise that is resolved once all given promises are resolved, or is rejected if any of the promises are rejected. + +### `pocketmine\scheduler` +- The following methods have been deprecated: + - `AsyncWorker->getFromThreadStore()` - use class static properties for thread-local storage + - `AsyncWorker->removeFromThreadStore()` + - `AsyncWorker->saveToThreadStore()` + +## Documentation +- Improved documentation of various methods in `Block`. + +## Gameplay +- The following new items have been added: + - Name Tag + +## Internals +- Removed specialization of shutdown logic for `Thread` vs `Worker` (no specialization is required). +- Authentication system no longer accepts logins signed with the old Mojang root public key. +- ID to enum mappings in `pocketmine\data` now use a new `match` convention to allow static analysis to ensure that all enum cases are handled. +- Updated version of `pocketmine/bedrock-protocol` allows avoiding decoding of some itemstack data from the client in most cases, improving performance. diff --git a/src/VersionInfo.php b/src/VersionInfo.php index 946e53a23..c54d241f2 100644 --- a/src/VersionInfo.php +++ b/src/VersionInfo.php @@ -31,8 +31,8 @@ use function str_repeat; final class VersionInfo{ public const NAME = "PocketMine-MP"; - public const BASE_VERSION = "5.11.3"; - public const IS_DEVELOPMENT_BUILD = true; + public const BASE_VERSION = "5.12.0"; + public const IS_DEVELOPMENT_BUILD = false; public const BUILD_CHANNEL = "stable"; /**