diff --git a/changelogs/3.13.md b/changelogs/3.13.md index 470fdb4fc..e8cbdf198 100644 --- a/changelogs/3.13.md +++ b/changelogs/3.13.md @@ -109,3 +109,23 @@ AsyncTask thread-local storage has been improved, making it simpler and easier t - `Utils::recursiveUnlink()` - `Terminal::write()` - `Terminal::writeLine()` + +# 3.13.1 +- Fixed issues with `server.lock` not being unlocked on some platforms. Now, the server explicitly releases it before exiting. +- `/timings` now sends a usage message when using an unknown subcommand. Previously, it would just give no output. +- `/whitelist` now sends a usage message when using an unknown subcommand. Previously, it would just give no output. +- The output from `/timings` is now broadcasted on the `pocketmine.broadcast.admin` broadcast channel for auditability, similarly to other operator commands. +- Fixed `ShapedRecipe` deprecation warning on PHP 7.4. +- Fixed some potential crashes with Bedrock worlds when chunk data is corrupted or missing. +- Fixed a bug in region handling that caused region loaders to overestimate the amount of space used in the file. This resulted in an up to 4 MB growth of the file size every time the region was reloaded after writing a chunk. +- Region handlers now try to reuse free space in region files before putting the chunk at the end of the file. Previously, space was only reused if the new version of the chunk was <= the size of the old. This fixes endless growth of region files. +- Regions now never directly overwrite old copies of chunks when saving; instead they try to find an alternative location (preferring unused space within the file first). This avoids chunk corruption on power failure (the old copy of the chunk won't be damaged, so a rollback might occur instead), and as happy side effect, causes oversized regions to gradually shrink towards their most packed state over time, saving disk space. +- Regions now have a hard size cap at 64 GB. This is because the header pointers will overflow beyond 64 GB (besides, a normal region shouldn't be this big anyway). +- Fixed a crash that could occur when reading a too-short region header. +- `VerifyLoginTask` now only copies JWTs to verify instead of the entire login packet. This reduces the amount of data copied between threads, improving performance. +- Added a fast-fail check to `VerifyLoginTask` by checking the JWT header's `x5u` against the expected public key. +- `Skin->validate()` now throws `InvalidSkinException` instead of `\InvalidArgumentException`. +- A debug message is now logged when a player is kicked for having an invalid skin, giving a brief line of detail why. +- Fixed players not being kicked for having an invalid `resourcePatch`. +- Fixed block meta value of cake being preserved when using pick-block. +- Fixed explosions not fully destroying multi-block objects like beds and doors.