0
0
mirror of https://github.com/pmmp/PocketMine-MP.git synced 2024-11-21 16:35:25 +00:00
PocketMine-MP/changelogs/5.10.md
2023-12-14 16:54:38 +00:00

2.9 KiB

5.10.0

Released 14th December 2023.

For Minecraft: Bedrock Edition 1.20.50

This is a minor feature release, including new gameplay features and minor performance 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

  • PHP 8.2 is now used by default. PHP 8.1 is still supported, but will be removed in a future 5.x release.
  • Improved timings reports by removing Breakdown timings group. This group serves no purpose with tree timings and made for confusing reading.

Performance

  • Improved performance of Block::encodeFullState() in most conditions. This in turn improves performance of World::setBlock() and World::setBlockAt().
  • Improved network compression performance by avoiding unnecessary object allocations.
  • Timings now report time spent in individual Snooze handlers, making it easier to debug performance issues.

Gameplay

Blocks

  • Implemented crop growth speed modifiers.
    • The following things now positively affect crop growth speed:
      • Being planted on or being adjacent to farmland (hydrated farmland offers a larger benefit than dry farmland)
      • Potential light level of at least 9
      • Being planted in rows with space between them (or a different type of crop)
    • The following things now negatively affect crop growth speed:
      • Improper arrangement (e.g. the same crop on all sides)
      • Insufficient light level (below 9)
    • Poorly arranged crops will grow slower in this version. Past versions behaved as if crops were always planted in ideal conditions.
    • Crops planted in ideal conditions will grow at the same speed as before.

Items

  • Added the following new items:
    • All types of Smithing Template
  • Pitcher Pod is now correctly registered. In previous versions, it was mapped to the Pitcher Crop block, causing incorrect name display in commands.

Internals

  • Cleaned up various getter usages where direct property access is possible.
  • Avoided unnecessary repeated getter calls in some loops.
  • NetworkSession may now track string instead of CompressBatchPromise when a batch was synchronously compressed. This significantly reduces object allocations and improves performance.
  • NetworkSession now sends less information to clients on login validation failure. This avoids leaking potentially sensitive error information to clients.
    • Clients can correlate their disconnects with server-side logs using the Error ID shown on the disconnect screen.