From 7effa03ba45083ad8364b38a1c6399a8d9d3c74e Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Thu, 28 Oct 2021 17:28:48 +0100 Subject: [PATCH] Release 4.0.0-BETA7 --- changelogs/4.0.md | 36 ++++++++++++++++++++++++++++++++++++ src/VersionInfo.php | 2 +- 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/changelogs/4.0.md b/changelogs/4.0.md index 708822771..d9a268bef 100644 --- a/changelogs/4.0.md +++ b/changelogs/4.0.md @@ -1460,3 +1460,39 @@ Released 19th October 2021. ## Gameplay - Picking up some items from a dropped stack of items is now supported. This fixes various bugs with being unable to pick up items with an almost-full inventory. + +# 4.0.0-BETA7 +Released 28 October 2021. + +## General +- Phar plugins are now able to depend on folder plugins loaded by DevTools. +- Now uses [`pocketmine/bedrock-protocol@58c53a259e819a076bf8fe875d2a012da7d19d65`](https://github.com/pmmp/BedrockProtocol/tree/58c53a259e819a076bf8fe875d2a012da7d19d65). This version features significant changes, including: + - Standardisation of various field names (e.g. `eid` -> `actorRuntimeId`, `evid` -> `eventId`) + - Rename of `entity` related fields to `actor` where appropriate (e.g. `entityRuntimeId` -> `actorRuntimeId`) + - Block position `x`/`y`/`z` fields replaced by `BlockPosition` + - Static `::create()` functions for all packets, which ensure that fields can't be forgotten + +## Fixes +- Fixed server crash when clients send itemstacks with unmappable dynamic item IDs. +- Fixed server crash on invalid ItemStackRequest action types. +- Fixed autosave bug that caused unmodified chunks to be saved at least once (during the first autosave after they were loaded). +- Fixed `ConsoleReaderThread` returning strings with newlines still on the end. +- Fixed changes made to adjacent chunks in `ChunkPopulateEvent` (e.g. setting blocks) sometimes getting overwritten. + +## API +### Event +- `PlayerCreationEvent` now verifies that the player class set is instantiable - this ensures that plugins get properly blamed for breaking things. + +### World +- `World->generateChunkCallback()` has been specialized for use by `PopulationTask`. This allows fixing various inconsistencies involving `ChunkPopulateEvent` (e.g. modifications to adjacent chunks in `ChunkPopulationEvent` might be wiped out, if the population of the target chunk modified the adjacent chunk). + - It now accepts `Chunk $centerChunk, array $adjacentChunks` (instead of `?Chunk $chunk`). + - It's no longer expected to be used by plugins - plugins should be using `World->setChunk()` anyway. +- `Chunk->getModificationCounter()` has been added. This is a number starting from `0` when the `Chunk` object is first created (unless overridden by the constructor). It's incremented every time blocks or biomes are changed in the chunk. It resets after the chunk is unloaded and reloaded. +- The following API methods have changed signatures: + - `Sound->encode()` no longer accepts `null` for the position. + - `Chunk->__construct()`: removed `HeightArray $heightMap` parameter, added `bool $terrainPopulated` and `int $modificationCounter` parameters. + +### Plugin +- `PluginManager->loadPlugins()` now accepts paths to files as well as directories, in which case it will load only the plugin found in the target file. +- The following API methods have been removed: + - `PluginManager->loadPlugin()`: use `PluginManager->loadPlugins()` instead diff --git a/src/VersionInfo.php b/src/VersionInfo.php index cc0170c8b..f9b39cab4 100644 --- a/src/VersionInfo.php +++ b/src/VersionInfo.php @@ -30,7 +30,7 @@ use function str_repeat; final class VersionInfo{ public const NAME = "PocketMine-MP"; public const BASE_VERSION = "4.0.0-BETA7"; - public const IS_DEVELOPMENT_BUILD = true; + public const IS_DEVELOPMENT_BUILD = false; public const BUILD_NUMBER = 0; public const BUILD_CHANNEL = "beta";