From daeba95101e6278d1f2552397043d29d29d272f8 Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Thu, 14 Dec 2023 16:54:38 +0000 Subject: [PATCH] Release 5.10.0 --- changelogs/5.10.md | 46 +++++++++++++++++++++++++++++++++++++++++++++ src/VersionInfo.php | 4 ++-- 2 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 changelogs/5.10.md diff --git a/changelogs/5.10.md b/changelogs/5.10.md new file mode 100644 index 00000000000..551bc40ede8 --- /dev/null +++ b/changelogs/5.10.md @@ -0,0 +1,46 @@ +# 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. diff --git a/src/VersionInfo.php b/src/VersionInfo.php index 4459f955139..405e285fbef 100644 --- a/src/VersionInfo.php +++ b/src/VersionInfo.php @@ -31,8 +31,8 @@ final class VersionInfo{ public const NAME = "PocketMine-MP"; - public const BASE_VERSION = "5.9.1"; - public const IS_DEVELOPMENT_BUILD = true; + public const BASE_VERSION = "5.10.0"; + public const IS_DEVELOPMENT_BUILD = false; public const BUILD_CHANNEL = "stable"; /**