Release 4.0.0-BETA12

This commit is contained in:
Dylan K. Taylor 2021-11-09 16:50:42 +00:00
parent c3ec9c0948
commit 635a9143de
No known key found for this signature in database
GPG Key ID: 8927471A91CAFD3D
2 changed files with 70 additions and 1 deletions

View File

@ -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()`

View File

@ -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";