0
0
mirror of https://github.com/pmmp/PocketMine-MP.git synced 2024-11-21 17:45:20 +00:00
PocketMine-MP/changelogs/4.20.md
2023-05-30 14:35:17 +01:00

3.9 KiB

For Minecraft: Bedrock Edition 1.19.80

Note about API versions

Plugins which don't touch the pocketmine\network\mcpe namespace are compatible with any previous 4.x.y version will also run on these releases and do not need API bumps. Plugin developers should only update their required API to this version if you need the changes in this build.

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.

Interim releases

If you're upgrading from 4.17.x directly to 4.20.x, please also read the following changelogs, as the interim releases contain important changes:

  • 4.18.0 - major performance improvements, internal network changes, minor API additions
  • 4.19.0 - minor performance improvements, improved timings system, minor API additions

4.20.0

Released 26th April 2023.

General

  • Added support for Minecraft: Bedrock Edition 1.19.80.
  • Removed support for older versions.

Fixes

  • Fixed packet processing error when attempting to use a stonecutter.
  • Fixed armor slots containing ghost items when cancelling right-click to equip armor.
  • Fixed crash in HandlerList->getListenersByPriority() when no listeners are registered at the given priority.

API

pocketmine\block

  • The following API methods have been added:
    • public BaseSign->getEditorEntityRuntimeId() : int - returns the entity runtime ID of the player currently editing this sign, or null if none
    • public BaseSign->setEditorEntityRuntimeId(?int $editorEntityRuntimeId) : $this - sets the entity runtime ID of the player currently editing this sign

pocketmine\player

  • The following API methods have been added:
    • public Player->openSignEditor(Vector3 $position) : void - opens the client-side sign editor GUI for the given position

4.20.1

Released 27th April 2023.

Fixes

  • Fixed server crash when firing a bow while holding arrows in the offhand slot.

Internals

  • ItemStackContainerIdTranslator::translate() now requires an additional int $slotId parameter and returns array{int, int} (translated window ID, translated slot ID) to be used with InventoryManager->locateWindowAndSlot().
  • InventoryManager->locateWindowAndSlot() now checks if the translated slot actually exists in the requested inventory, and returns null if not. Previously, it would return potentially invalid slot IDs without checking them, potentially leading to crashes.

4.20.2

Released 4th May 2023.

Fixes

  • Fixed all types of wooden logs appearing as oak in the inventory.
  • Fixed a performance issue in BaseInventory->canAddItem() (missing continue causing useless logic to run).

4.20.3

Released 6th May 2023.

Improvements

  • Reduced memory usage of RuntimeBlockMapping from 25 MB to 9 MB. Since every thread has its own copy of the block map, this saves a substantial amount of memory.

Fixes

  • Fixed players falling through blocks in spectator mode.
  • Fixed timings reports getting bloated by prolific usage of PluginManager->registerEvent().
    • This was caused by creating a new timings handler for each call, regardless of whether a timer already existed for the given event and callback.
  • Fixed Full Server Tick and other records being missing from timings reports.
    • This was caused by timings handler depth not getting reset when timings was disabled and later re-enabled.

4.20.4

Released 6th May 2023.

Fixes

  • Fixed players being forced into flight mode in every game mode.
    • Moral of the story: do not assume anything in Mojang internals does what its name suggests...

4.20.5

Released 30th May 2023.

Fixes