From 83bfe790fa3dd66945f356ae0fe724b867edb74b Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Mon, 19 Dec 2022 22:18:24 +0000 Subject: [PATCH] Prepare 5.0.0-ALPHA6 changelog --- changelogs/5.0-alpha.md | 92 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 91 insertions(+), 1 deletion(-) diff --git a/changelogs/5.0-alpha.md b/changelogs/5.0-alpha.md index f408d106b..41f15a085 100644 --- a/changelogs/5.0-alpha.md +++ b/changelogs/5.0-alpha.md @@ -646,4 +646,94 @@ Released 13th November 2022. - Copper blocks now play the correct scrape sound when using an axe on them. ## Internals -- Moved command timings to `Timings`. \ No newline at end of file +- Moved command timings to `Timings`. + +# 5.0.0-ALPHA6 +Released 19th December 2022. + +**This release includes changes from the following releases, which may not be explicitly mentioned:** +- [4.10.2](https://github.com/pmmp/PocketMine-MP/releases/tag/4.10.2) +- [4.11.0](https://github.com/pmmp/PocketMine-MP/releases/tag/4.11.0) +- [4.12.0](https://github.com/pmmp/PocketMine-MP/releases/tag/4.12.0) +- [4.12.1](https://github.com/pmmp/PocketMine-MP/releases/tag/4.12.1) +- [4.12.2](https://github.com/pmmp/PocketMine-MP/releases/tag/4.12.2) + +## General +- Fixed the Bedrock client asking to upgrade worlds exported from PocketMine-MP to Bedrock (missing level.dat fields). +- Added support for 1.19.40 and newer Bedrock worlds. +- Commands are now enabled by default in worlds exported from PocketMine-MP to Bedrock. + +## Gameplay +### Blocks +- Added the following new blocks: + - Twisting Vines + - Weeping Vines +- Anvils are now damaged when they hit the ground after falling. +- Added missing sounds for anvils hitting the ground after falling. +- Fixed missing sounds when a projectile strikes an amethyst block. +- Fixed some blocks being incorrectly able to be placed on top of a candle cake. + +### Items +- Added the following new items: + - Music Disc (5) + - Music Disc (Otherside) + - Music Disc (Pigstep) +- Implemented Swift Sneak enchantment. +- Armour durability is now only reduced when the wearer receives a type of damage that the armour can protect against. + +## API +### General +- Union and mixed native parameter, return and property types are now used where appropriate. + +### `pocketmine\block` +- The following new API methods have been added: + - `public Furnace->getType() : utils\FurnaceType` +- The following interfaces have new requirements: + - `utils\Fallable` now requires `onHitGround()` to be implemented (although filled by default implementation in `FallableTrait`). + - `utils\Fallable` now requires `getLandSound()` to be implemented (although filled by default implementation in `FallableTrait`). +- The following new API constants have been added: + - `public BlockTypeTags::FIRE` - used by fire and soul fire + +### `pocketmine\crafting` +- The `$type` parameter of `ShapelessRecipe->__construct()` is now mandatory. + +### `pocketmine\entity` +- The following new API methods have been added: + - `public Living->getDisplayName() : string` +- The following API methods have changed signatures: + - `EntityFactory->register()` no longer accepts a `$legacyMcpeSaveId` parameter (now handled by internal conversions instead). + +### `pocketmine\event` +- The following classes have been renamed: + - `entity\ExplosionPrimeEvent` -> `entity\EntityPreExplodeEvent` +- The following new classes have been added: + - `world\WorldParticleEvent` - called when a particle is spawned in a world + - `world\WorldSoundEvent` - called when a sound is played in a world +- The following API methods have changed signatures: + - `entity\EntityPreExplodeEvent->__construct()` has the `$force` parameter renamed to `$radius` + - `entity\EntityPreExplodeEvent->getForce() : float` -> `entity\EntityPreExplodeEvent->getRadius() : float` + - `entity\EntityPreExplodeEvent->setForce(float $force) : void` -> `entity\EntityPreExplodeEvent->setRadius(float $radius) : void` + +### `pocketmine\item` +- The following new API methods have been added: + - `public Item->keepOnDeath() : bool` - returns whether this item will be retained when a player carrying it dies + - `public Item->onInteractEntity(Player $player, Entity $entity, Vector3 $clickPos) : bool` - called when a player interacts with an entity with this item in their hand + - `public Item->setKeepOnDeath(bool $keepOnDeath) : void` - sets whether this item will be retained when a player carrying it dies + - `public StringToItemParser->lookupAliases(Item $item) : list` - returns a list of all registered aliases for the given item + - `public StringToItemParser->lookupBlockAliases(Block $block) : list` - returns a list of all registered aliases for the given block + +### `pocketmine\resourcepacks` +- The following new API methods have been added: + - `public ResourcePackManager->setPackEncryptionKey(string $id, ?string $key) : void` - sets the encryption key to be used for the resource pack identified by the given UUID + - `public ResourcePackManager->setResourceStack(list $resourceStack) : void` - sets the resource stack to be used by the server + +### `pocketmine\world` +- The following API methods have changed signatures: + - `Explosion->__construct()` has the `$size` parameter renamed to `$radius` +- The following public properties have been renamed: + - `Explosion->size` -> `Explosion->radius` + +## Internals +- `EntityLegacyIds` has been removed. Legacy entity IDs found during world loading are now converted via `LegacyEntityIdToStringIdMap`. +- All usages of NBT keys now use class constants instead of hardcoded strings (except for an occasional overlooked one). +- All members of `BlockTypeTags` now have a `pocketmine:` prefix on the value. This does not affect constant usages.