mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2024-11-27 21:44:29 +00:00
134 lines
7.0 KiB
Markdown
134 lines
7.0 KiB
Markdown
# 5.4.0
|
|
Released 1st August 2023.
|
|
|
|
**For Minecraft: Bedrock Edition 1.20.10**
|
|
|
|
This is a minor feature update, including a handful of new gameplay features, new plugin APIs and improvements to error reporting.
|
|
|
|
**Plugin compatibility:** Plugins for previous 5.x versions will run unchanged on this release, unless they use internal APIs, reflection, or packages like the `pocketmine\network\mcpe` or `pocketmine\data` namespace.
|
|
Do not update plugin minimum API versions unless you need new features added in this release.
|
|
|
|
**WARNING: If your plugin uses the `pocketmine\network\mcpe` namespace, you're not shielded by API change constraints.**
|
|
Consider using the `mcpe-protocol` directive in `plugin.yml` as a constraint if you're using packets directly.
|
|
|
|
## General
|
|
- Improved error reporting for async task and thread crashes.
|
|
- Players may now have different creative inventories.
|
|
|
|
## Gameplay
|
|
### General
|
|
- Added support for 1.5-block height sneaking.
|
|
- Fixed missing player arm swing and sounds when punching the air.
|
|
|
|
### Blocks
|
|
- Implemented the following new blocks:
|
|
- Big Dripleaf Head
|
|
- Big Dripleaf Stem
|
|
- Small Dripleaf
|
|
- Acacia saplings now grow into acacia trees.
|
|
- Fixed melon and pumpkin stems not attaching to the correct block when growing.
|
|
- Various blocks now drop more items when mined with a compatible tool enchanted with Fortune.
|
|
|
|
### Items
|
|
- Implemented Strong Slowness potion.
|
|
- Implemented Fortune enchantment.
|
|
|
|
## API
|
|
### `pocketmine\block`
|
|
- The following new classes have been added:
|
|
- `utils\FortuneDropHelper` - utility methods for calculating the drop counts for Fortune-affected blocks
|
|
- The following new API methods have been added:
|
|
- `protected Block->getAdjacentSupportType(int $facing) : utils\SupportType` - returns the type of support provided by the block in the given direction on the adjacent face
|
|
|
|
### `pocketmine\entity`
|
|
- The following new API constants have been added:
|
|
- `Living::DEFAULT_KNOCKBACK_FORCE`
|
|
- `Living::DEFAULT_KNOCKBACK_VERTICAL_LIMIT`
|
|
|
|
### `pocketmine\entity\animation`
|
|
- `ConsumingItemAnimation` now accepts `Living` instances instead of just `Human`.
|
|
|
|
### `pocketmine\event`
|
|
- The following new classes have been added:
|
|
- `PlayerMissSwingEvent` - called when the player attempts the attack action (left click on desktop) without any target
|
|
- This is possible thanks to the introduction of new flags in `PlayerAuthInputPacket` in Bedrock 1.20.10
|
|
- The following new API methods have been added:
|
|
- `public EntityDamageByEntityEvent->getVerticalKnockBackLimit() : float`
|
|
- `public EntityDamageByEntityEvent->setVerticalKnockBackLimit(float $verticalKnockBackLimit) : void` - sets the max vertical velocity that can result from the victim being knocked back
|
|
|
|
### `pocketmine\player`
|
|
- The following new API methods have been added:
|
|
- `public Player->getCreativeInventory() : pocketmine\inventory\CreativeInventory`
|
|
- `public Player->setCreativeInventory(pocketmine\inventory\CreativeInventory $inventory) : void`
|
|
- `public Player->missSwing() : void` - performs actions associated with the attack action when there is no target (see `PlayerMissSwingEvent`)
|
|
|
|
### `pocketmine\scheduler`
|
|
- Cancellation functionality has been removed from `AsyncTask`, as it didn't make any sense and wasn't used by anything for what it was intended for.
|
|
- It broke sequential task execution - later tasks might depend on state from earlier tasks
|
|
- It didn't actually cancel the task anyway - at best, it prevented it from running, but couldn't interrupt it (though interrupting a task does not make sense either)
|
|
- The following API methods have been deprecated, and their functionality has been removed:
|
|
- `AsyncTask->hasCancelledRun()`
|
|
- `AsyncTask->cancelRun()`
|
|
|
|
## Internals
|
|
- Uncaught exceptions and fatal errors in `AsyncTask`, threads extending `pocketmine\thread\Thread`, and `pocketmine\thread\Worker` are now recorded in crashdumps, making it significantly easier to debug errors in these areas.
|
|
- JWT signature DER <-> raw conversions are now handled in-house using code in `JwtUtils`
|
|
- Due to the simplicity of the conversion and only requiring a tiny subset of the ASN.1 spec, it didn't make much sense to introduce another dependency.
|
|
- `fgrosse/phpasn1` is no longer required. This package was abandoned by its author and only used by PocketMine-MP for this one purpose.
|
|
- Various usages of `Closure::fromCallable()` have been replaced by PHP 8.1 first-class callable syntax.
|
|
- Blocks requiring support shifted to a "can be supported at" model, rather than "can be supported by".
|
|
- This model reduces repeated logic when placing and performing nearby block updates (no need to hardcode facing everywhere).
|
|
- In addition, this change facilitates the use of the newly introduced `Block->getAdjacentSupportType()` API method, reducing boilerplate support-type checking code.
|
|
- Bell block code has been simplified and cleaned up.
|
|
- `TallGrass` and `DoubleTallGrass` now use a shared `TallGrassTrait` to reduce code duplication.
|
|
|
|
# 5.4.1
|
|
Released 8th August 2023.
|
|
|
|
## General
|
|
- Updated translation data to [pmmp/Language 2.19.6](https://github.com/pmmp/Language/releases/tag/2.19.6).
|
|
- [`ext-pmmpthread` 6.0.7](https://github.com/pmmp/ext-pmmpthread/releases/tag/6.0.7) is now required (needed for bug fixes).
|
|
|
|
## Fixes
|
|
- Fixed Podzol not dropping itself when mined with Silk Touch.
|
|
- Fixed `World->getSafeSpawn()` not accepting positions below `y=0` (world height limit change).
|
|
- Fixed `pocketmine\thread\Thread` and `pocketmine\thread\Worker` instances not logging any information when they crash.
|
|
- Fixed `CraftItemEvent` not cloning returned items.
|
|
|
|
## Internals
|
|
- Foreach by-reference is now disallowed via a custom PHPStan rule.
|
|
|
|
# 5.4.2
|
|
Released 9th August 2023.
|
|
|
|
## Included releases
|
|
- [4.23.5](https://github.com/pmmp/PocketMine-MP/blob/4.23.5/changelogs/4.23.md#4235) - Minor bug fixes
|
|
|
|
## Fixes
|
|
- Fixed cake accepting candle placement when slices have already been eaten.
|
|
- Fixed fire charges not lighting candles.
|
|
|
|
# 5.4.3
|
|
Released 21st August 2023.
|
|
|
|
## Included releases
|
|
- [4.23.6](https://github.com/pmmp/PocketMine-MP/blob/4.23.6/changelogs/4.23.md#4236) - Armor inventory client bug workaround
|
|
|
|
## Fixes
|
|
- Fixed crashdumps not generating correctly on fatal errors.
|
|
- Fixed `PotionCauldron::setPotionItem()` not validating the item type.
|
|
- Fixed chorus fruit not considering teleport destinations below y=0.
|
|
- Fixed cake dropping itself when mined.
|
|
|
|
# 5.4.4
|
|
Released 6th September 2023.
|
|
|
|
## General
|
|
- Crashdumps caused by non-phar plugins are now submitted to the Crash Archive, the same as other plugins. Previously, non-phar plugin crashes would not be submitted, causing maintainers to potentially miss important issues.
|
|
|
|
## Fixes
|
|
- Fixed player Y coordinates sometimes being slightly below the top of the block they were standing on (floating point error due to subtracting eye height).
|
|
- Fixed template slot of smithing tables not accepting any items.
|
|
- `tools/generate-bedrock-data-from-packets.php` is now significantly less spammy when warning about duplicated recipes.
|
|
- Fixed empty stack traces in `lastError` data of crashdumps.
|