mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-04-20 16:00:20 +00:00
Release 4.0.0-BETA4
This commit is contained in:
parent
8e3772ceef
commit
9e6d740570
@ -1332,3 +1332,62 @@ Released 10th September 2021.
|
||||
- `Liquid->getMinAdjacentSourcesToFormSource()`: returns how many adjacent source blocks of the same liquid must be present in order for the current block to become a source itself
|
||||
- `Player->getPlayerInfo()`
|
||||
- `Liquid` minimum-cost flow calculation code has been extracted to `MinimumCostFlowCalculator`.
|
||||
|
||||
# 4.0.0-BETA4
|
||||
Released 6th October 2021.
|
||||
|
||||
## General
|
||||
- Improved performance of lighting calculation by avoiding copies of useless data from the main thread.
|
||||
- Resource pack loading now accepts `dependencies` and `capabilities` fields in the `manifest.json` (although it doesn't currently check them).
|
||||
- `/help` is now localized according to language set in `server.properties`.
|
||||
- Various messages related to world loading, generation and conversion are now localized according to the language set in `server.properties`.
|
||||
- Compasses now point to the correct (current) world's spawn point after teleporting players to a different world. Previously, they would continue to point to the spawn of the world that the player initially spawned in.
|
||||
- The `--bootstrap` CLI option has been removed.
|
||||
- RakLib 0.14.2 is now required. This fixes the following issues:
|
||||
- Fixed incorrect handling of sessions on client disconnect (leading to timeout debug messages).
|
||||
- Fixed transferring players often not working correctly.
|
||||
- Fixed disconnect screens sometimes not displaying.
|
||||
|
||||
## Fixes
|
||||
- Fixed server crash when UPnP encounters an error.
|
||||
- Fixed server crash when clients sent items with bad NBT in inventory transactions.
|
||||
- Fixed server crash when loading a plugin with legacy nested permission structure (now the plugin will fail to load, but the server won't crash).
|
||||
- Fixed server crash when using `/give` with bad NBT on any item.
|
||||
- Fixed server crash when loading a plugin with improperly formatted API version (now the plugin will fail to load, but the server won't crash).
|
||||
- Fixed server crash when changing player gamemode during `PlayerLoginEvent`.
|
||||
- Incorrect structure of `commands` in plugin manifest is now detected earlier and handled more gracefully.
|
||||
- Fixed console reader subprocess lingering on server crash on Windows and screwing up the terminal.
|
||||
- Fixed `Player` object memory leak when kicking players during `PlayerLoginEvent` (this caused the `World` to report warnings about leaked entities on shutdown).
|
||||
- Fixed `Projectile->move()` ignoring the `dx`/`dy`/`dz` parameters given and using its own `motion` instead.
|
||||
- Fixed `BlockFactory->get()` erroneously accepting meta values of `16`.
|
||||
- Fixed `Block->isSameState()` false negatives for some types of slabs.
|
||||
- Fixed being unable to place slabs of the same type on top of each other to create double slabs.
|
||||
|
||||
## API changes
|
||||
- Plugin commands in `plugin.yml` must now declare `permission` for each command. Previously, the `permission` key was optional, causing anyone to be able to use the command.
|
||||
- This behaviour was removed because of the potential for security issues - a typo in `plugin.yml` could lead to dangerous functionality being exposed to everyone.
|
||||
- If you want to make a command that everyone can use, declare a permission with a `default` of `true` and assign it to the command.
|
||||
- Plugin permissions in `plugin.yml` must now declare `default` for each permission. Previously, the `default` key was optional, causing the permission to silently be denied to everyone (PM4) or granted to ops implicitly (PM3).
|
||||
|
||||
### Block
|
||||
- Added the following classes:
|
||||
- `pocketmine\block\utils\LeverFacing`
|
||||
- Added the following API methods:
|
||||
- `pocketmine\block\Lever->isActivated()`
|
||||
- `pocketmine\block\Lever->setActivated()`
|
||||
- `pocketmine\block\Lever->getFacing()`
|
||||
- `pocketmine\block\Lever->setFacing()`
|
||||
|
||||
### World
|
||||
- The following API methods have signature changes:
|
||||
- `Chunk->getSubChunks()` now returns `array<int, SubChunk>` instead of `SplFixedArray<SubChunk>`.
|
||||
- The following API methods have been removed:
|
||||
- `FastChunkSerializer::serialize()`
|
||||
- `FastChunkSerializer::deserialize()`
|
||||
- The following API methods have been added:
|
||||
- `FastChunkSerializer::serializeTerrain()`: serializes blocks and biomes only
|
||||
- `FastChunkSerializer::deserializeTerrain()`: deserializes the output of `serializeTerrain()`
|
||||
|
||||
### Utils
|
||||
- The following API methods have signature changes:
|
||||
- `Process::kill()` now requires an additional `bool $subprocesses` parameter.
|
||||
|
@ -30,9 +30,9 @@ use function str_repeat;
|
||||
final class VersionInfo{
|
||||
public const NAME = "PocketMine-MP";
|
||||
public const BASE_VERSION = "4.0.0-BETA4";
|
||||
public const IS_DEVELOPMENT_BUILD = true;
|
||||
public const IS_DEVELOPMENT_BUILD = false;
|
||||
public const BUILD_NUMBER = 0;
|
||||
public const BUILD_CHANNEL = "";
|
||||
public const BUILD_CHANNEL = "beta";
|
||||
|
||||
private function __construct(){
|
||||
//NOOP
|
||||
|
Loading…
x
Reference in New Issue
Block a user