0
0
mirror of https://github.com/pmmp/PocketMine-MP.git synced 2024-11-24 02:46:12 +00:00
PocketMine-MP/changelogs/5.12.md
2024-03-13 13:48:56 +00:00

3.1 KiB

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<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.

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.

5.12.1

Released 13th March 2024.

Fixes

  • Fixed Player Network Receive - Decompression timings not being stopped correctly when receiving an uncompressed packet.

Internals

  • Removed hardcoded batch packet size limit. This was already covered by other limits anyway.