From 635a9143de62e69c6811ef4bc9cb65933b166cd7 Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Tue, 9 Nov 2021 16:50:42 +0000 Subject: [PATCH] Release 4.0.0-BETA12 --- changelogs/4.0.md | 69 +++++++++++++++++++++++++++++++++++++++++++++ src/VersionInfo.php | 2 +- 2 files changed, 70 insertions(+), 1 deletion(-) diff --git a/changelogs/4.0.md b/changelogs/4.0.md index 9e9faad62..a3f4e6720 100644 --- a/changelogs/4.0.md +++ b/changelogs/4.0.md @@ -1634,3 +1634,72 @@ Released 6th November 2021. ### Gameplay - Chunks are now sent in proper circles. This improves the experience when flying quickly parallel to X or Z axis, since now more chunks in front of the player will load sooner. - Added support for emotes. + +# 4.0.0-BETA12 +Released 9th November 2021. + +## General +- Introduced support for connecting via IPv6. + - PHP binary used must now always be built with IPv6 support, even if IPv6 is disabled. This is because RakNet may still send link-local IPv6 loopback addresses in connection packets even when only using IPv4. + - The default port for IPv6 is `19133` (similar to Bedrock Dedicated Server). + - Port `19133` is used by default so that Minecraft Bedrock can detect IPv6 servers on LAN. + - GS4 Query is supported on both IPv4 and IPv6 according to `server.properties` settings. + - The following `server.properties` settings are influential: + - `enable-ipv6`: `on` by default. Disabling this completely disables IPv6 support. + - `server-ipv6`: `::` by default (equivalent to "any IP", like `0.0.0.0` for IPv4). Most users shouldn't need to change this setting, and it doesn't appear in `server.properties` by default. + - `server-portv6`: `19133` by default. You may run both IPv4 and IPv6 on the same port. +- Various internal changes have been made to prepare for negative Y axis support (upcoming 1.18). + +## Fixes +- Fixed resource packs not applying. +- Fixed inventory windows being unopenable after dying with inventory windows open. +- Fixed plugins being able to alter other plugins' permission defaults by redeclaring them in the `plugin.yml`. + +## API +### Block +- `VanillaBlocks::fromString()` has been removed. +- Added `CraftingTableInventory`. This exclusively represents a crafting table's 3x3 crafting grid. + +### Crafting +- `CraftingGrid` is now abstract. +- Removed `CraftingGrid->getHolder()`. +- The constructor of `CraftingGrid` no longer accepts a `Player` parameter. + +### Entity +#### Effect +- `Effect->__construct()` once again accepts an `int $defaultDuration` parameter. +- Removed `VanillaEffects::fromString()`. +- Added `StringToEffectParser` + - Supports custom aliases! + - This is used by `/effect` to provide name support. + +### Event +- `InventoryOpenEvent` is now fired when a player opens a crafting table's UI. +- `InventoryCloseEvent` is now fired when a player closes a crafting table's UI. +- `PlayerDropItemEvent` will now prevent the drops from force-closing of the following inventories: + - anvil + - enchanting table + - loom + +### Inventory +- Added `TemporaryInventory`. This should be implemented by any inventory whose contents should be evacuated when closing. +- Added `PlayerCraftingInventory`. This exclusively represents the player's own 2x2 crafting grid. + +### Item +- Removed `VanillaItems::fromString()` + - Obsoleted by the far superior, much more dynamic, and plugin-customizable `StringToItemParser`. + - `StringToItemParser` allows mapping strings to closure callbacks, allowing you to create aliases for `/give` for any item, including custom ones. + +#### Enchantment +- Removed `VanillaEnchantments::fromString()`. +- Added `StringToEnchantmentParser` + - Supports custom aliases! + - This is used by `/enchant` to provide name support. + +### Player +- Removed `Player->setCraftingGrid()`. To open a 3x3 crafting grid to a player, use `setCurrentWindow(new CraftingTableInventory)`. + +### Server +- Added the following API methods: + - `Server->getIpV6()` + - `Server->getPortV6()` \ No newline at end of file diff --git a/src/VersionInfo.php b/src/VersionInfo.php index 5216a6650..1e7d35d7f 100644 --- a/src/VersionInfo.php +++ b/src/VersionInfo.php @@ -30,7 +30,7 @@ use function str_repeat; final class VersionInfo{ public const NAME = "PocketMine-MP"; public const BASE_VERSION = "4.0.0-BETA12"; - public const IS_DEVELOPMENT_BUILD = true; + public const IS_DEVELOPMENT_BUILD = false; public const BUILD_NUMBER = 0; public const BUILD_CHANNEL = "beta";