|
| 1 | +# 5.12.0 |
| 2 | +Released 28th February 2024 |
| 3 | + |
| 4 | +**For Minecraft: Bedrock Edition 1.20.60** |
| 5 | + |
| 6 | +This is a minor feature release, with a few new features and improvements. |
| 7 | + |
| 8 | +**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. |
| 9 | +Do not update plugin minimum API versions unless you need new features added in this release. |
| 10 | + |
| 11 | +**WARNING: If your plugin uses the `pocketmine\network\mcpe` namespace, you're not shielded by API change constraints.** |
| 12 | +Consider using the `mcpe-protocol` directive in `plugin.yml` as a constraint if you're using packets directly. |
| 13 | + |
| 14 | +## General |
| 15 | +- Added a `--version` command-line option to display the server version and exit. |
| 16 | + |
| 17 | +## Tools |
| 18 | +- Added `tools/generate-biome-ids.php` to generate `pocketmine\data\bedrock\BiomeIds`. |
| 19 | +- Fixed ordering of property values generated by `tools/generate-block-palette-spec.php`. |
| 20 | + |
| 21 | +## API |
| 22 | +### `pocketmine\block` |
| 23 | +- The following new classes have been added: |
| 24 | + - `utils\LightableTrait` - used by blocks with `getLit()` and `setLit()` methods |
| 25 | +- The following methods have been deprecated: |
| 26 | + - `Block->isSolid()` - this method returns confusing results which don't match expectations and no one really knows what it actually means |
| 27 | +- `CocoaBlock` now extends `Flowable` to match vanilla Minecraft behaviour. |
| 28 | + |
| 29 | +### `pocketmine\plugin` |
| 30 | +- `PluginManager->registerEvent()` now throws an exception when given a generator function for the event handler. |
| 31 | +- `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. |
| 32 | + |
| 33 | +### `pocketmine\promise` |
| 34 | +- The following methods have been added: |
| 35 | + - `public static Promise::all(list<Promise> $promises) : Promise` - returns a promise that is resolved once all given promises are resolved, or is rejected if any of the promises are rejected. |
| 36 | + |
| 37 | +### `pocketmine\scheduler` |
| 38 | +- The following methods have been deprecated: |
| 39 | + - `AsyncWorker->getFromThreadStore()` - use class static properties for thread-local storage |
| 40 | + - `AsyncWorker->removeFromThreadStore()` |
| 41 | + - `AsyncWorker->saveToThreadStore()` |
| 42 | + |
| 43 | +## Documentation |
| 44 | +- Improved documentation of various methods in `Block`. |
| 45 | + |
| 46 | +## Gameplay |
| 47 | +- The following new items have been added: |
| 48 | + - Name Tag |
| 49 | + |
| 50 | +## Internals |
| 51 | +- Removed specialization of shutdown logic for `Thread` vs `Worker` (no specialization is required). |
| 52 | +- Authentication system no longer accepts logins signed with the old Mojang root public key. |
| 53 | +- 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. |
| 54 | +- Updated version of `pocketmine/bedrock-protocol` allows avoiding decoding of some itemstack data from the client in most cases, improving performance. |
0 commit comments