[ci skip] update changelog

This commit is contained in:
Dylan K. Taylor 2021-01-08 19:44:28 +00:00
parent 053a7a1a61
commit f383685c9b
No known key found for this signature in database
GPG Key ID: 8927471A91CAFD3D

View File

@ -8,6 +8,7 @@ This major version features substantial changes throughout the core, including s
- The `/reload` command has been removed.
- The `/effect` command no longer supports numeric IDs - it's now required to use names.
- The `/enchant` command no longer supports numeric IDs - it's now required to use names.
- Added `/clear` command with functionality equivalent to that of vanilla Minecraft.
- Remote console (RCON) has been removed. The [RconServer](https://github.com/pmmp/RconServer) plugin is provided as a substitute.
- Spawn protection has been removed. The [BasicSpawnProtection](https://github.com/pmmp/BasicSpawnProtection) plugin is provided as a substitute.
- CTRL+C signal handling has been removed. The [PcntlSignalHandler](https://github.com/pmmp/PcntlSignalHandler) plugin is provided as a substitute.
@ -37,6 +38,7 @@ This major version features substantial changes throughout the core, including s
- Partial chunk saves (only saving modified subcomponents of chunks) has been implemented. This drastically reduces the amount of data that is usually necessary to write on chunk save, which in turn **drastically reduces the time to complete world saves**. This is possible thanks to the modular design of the `leveldb` world format - this enhancement is not possible with region-based formats.
- Lighting is no longer guaranteed to be available on every chunk. It's now calculated on the fly as-needed.
- `/op`, `/deop`, `/whitelist add` and `/whitelist remove` no longer cause player data to be loaded from disk for no reason.
- Timings now use high-resolution timers provided by `hrtime()` to collect more accurate performance metrics.
### Logger revamp
- Many components now have a dedicated logger which automatically adds [prefixes] to their messages.
@ -165,6 +167,11 @@ This version features substantial changes to the network system, improving coher
### Entity
#### General
- `Entity` no longer extends from `Location`. `Entity->getLocation()` and `Entity->getPosition()` should be used instead.
- The following public fields have been removed:
- `Entity->chunk`: Entities no longer know which chunk they are in (the `World` now manages this instead).
- `Entity->height`: moved to `EntitySizeInfo`; use `Entity->size` instead
- `Entity->width`: moved to `EntitySizeInfo`; use `Entity->size` instead
- `Entity->eyeHeight`: moved to `EntitySizeInfo`; use `Entity->size` instead
- The following API methods have been added:
- `ItemEntity->getDespawnDelay()`
- `ItemEntity->setDespawnDelay()`
@ -621,6 +628,7 @@ This version features substantial changes to the network system, improving coher
- `Player->toggleFlight()`: tries to start / stop flying (fires events, may be cancelled)
- `Player->updateNextPosition()`: sets the player's next attempted move location (fires events, may be cancelled)
- `Player->useHeldItem()`: activate the held item, e.g. throwing a snowball
- `Player->getSaveData()`: returns save data generated on the fly
- The following API methods have been removed:
- `Player->addActionBarMessage()`: replaced by `sendActionBarMessage()`
- `Player->addSubTitle()`: replaced by `sendSubTitle()`
@ -631,6 +639,7 @@ This version features substantial changes to the network system, improving coher
- `Player->updatePing()`: moved to `NetworkSession`
- `Player->dataPacket()`: replaced by `NetworkSession->sendDataPacket()`
- `Player->sendDataPacket()`: replaced by `NetworkSession->sendDataPacket()`
- `Player->updateNextPosition()`: use `Player->handleMovement()` instead
- `IPlayer->isWhitelisted()`: use `Server->isWhitelisted()` instead
- `IPlayer->setWhitelisted()`: use `Server->setWhitelisted()` instead
- `IPlayer->isBanned()`: this was unreliable because it only checked name bans and didn't account for plugin custom ban systems. Use `Server->getNameBans()->isBanned()` and `Server->getIPBans()->isBanned()` instead.
@ -690,6 +699,7 @@ This version features substantial changes to the network system, improving coher
#### Other changes
- `AsyncPool` uses a new, significantly more performant algorithm for task collection.
- `BulkCurlTask` has had the `$complexData` constructor parameter removed.
- `BulkCurlTask->__construct()` now accepts `BulkCurlTaskOperation[]` instead of `mixed[]`.
- `pocketmine\Collectable` has been removed, and is no longer extended by `AsyncTask`.
- The following hooks have been added:
- `AsyncTask->onError()`: called on the main thread when an uncontrolled error was detected in the async task, such as a memory failure
@ -839,12 +849,14 @@ This version features substantial changes to the network system, improving coher
- `World->loadChunk()` now returns `?Chunk`, and the `$create` parameter has been removed.
- `World->getChunk()` no longer accepts a `$create` parameter.
- `World->updateAllLight()` now accepts `int, int, int` instead of `Vector3`.
- `ChunkManager->setChunk()` (and its notable implementations in `World` and `SimpleChunkManager` no longer accepts NULL for the `$chunk` parameter.
- `Chunk->__construct()` now has the signature `array<int, SubChunk> $subChunks, ?list<CompoundTag> $entities, ?list<CompoundTag> $tiles, ?BiomeArray $biomeArray, ?HeightArray $heightArray`.
- `Chunk->getSubChunk()` now returns `SubChunk` instead of `SubChunkInterface|null` (and throws `InvalidArgumentException` on out-of-bounds coordinates).
- `Chunk->setSubChunk()` no longer accepts `SubChunkInterface`, and the `$allowEmpty` parameter has been removed.
- The following API methods have been renamed / moved:
- `Level->getCollisionCubes()` -> `World->getCollisionBoxes()`
- `World->getName()` -> `World->getDisplayName()`
- `World->populateChunk()` has been split into `World->requestChunkPopulation()` and `World->orderChunkPopulation()`.
- The following API methods have changed behaviour:
- `World->getChunk()` no longer tries to load chunks from disk. If the chunk is not already in memory, null is returned. (This behaviour now properly matches other `ChunkManager` implementations.)
- The following methods now throw `WorldException` when targeting ungenerated terrain: