[ci skip] update changelog

This commit is contained in:
Dylan T 2021-05-18 23:51:58 +01:00 committed by GitHub
parent 1d8680aaa9
commit 4122517292
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -3,55 +3,58 @@
This major version features substantial changes throughout the core, including significant API changes, new world format support, performance improvements and a network revamp.
## Contents
* [Core](#core)
+ [General](#general)
+ [Configuration](#configuration)
+ [World handling](#world-handling)
- [Interface](#interface)
- [Functional](#functional)
- [Performance](#performance)
+ [Logger revamp](#logger-revamp)
+ [Network](#network)
- [Minecraft Bedrock packet encryption](#minecraft-bedrock-packet-encryption)
- [Packet receive error handling has been overhauled](#packet-receive-error-handling-has-been-overhauled)
- [New packet handler system](#new-packet-handler-system)
* [API](#api)
+ [General](#general-1)
+ [Block](#block)
+ [Command](#command)
+ [Entity](#entity)
- [General](#general-2)
- [Effect](#effect)
- [Removal of runtime entity NBT](#removal-of-runtime-entity-nbt)
- [Entity creation](#entity-creation)
- [WIP removal of entity network metadata](#wip-removal-of-entity-network-metadata)
+ [Event](#event)
- [Internal event system no longer depends on `Listener`s](#internal-event-system-no-longer-depends-on-listeners)
- [Default cancelled handling behaviour has changed](#default-cancelled-handling-behaviour-has-changed)
- [`PlayerPreLoginEvent` changes](#playerpreloginevent-changes)
- [Other changes](#other-changes)
+ [Inventory](#inventory)
+ [Item](#item)
- [General](#general-3)
- [NBT handling](#nbt-handling)
- [Enchantment](#enchantment)
+ [Lang](#lang)
+ [Network](#network-1)
+ [Permission](#permission)
+ [Player](#player)
+ [Plugin](#plugin)
+ [Scheduler](#scheduler)
- [Thread-local storage for AsyncTasks](#thread-local-storage-for-asynctasks)
- [Other changes](#other-changes-1)
+ [Server](#server)
+ [Level / World](#level---world)
- [General](#general-4)
- [Particles](#particles)
- [Sounds](#sounds)
+ [Utils](#utils)
* [Gameplay](#gameplay)
+ [Blocks](#blocks)
+ [Items](#items)
* [Core](#core)
+ [General](#general)
+ [Configuration](#configuration)
+ [World handling](#world-handling)
- [Interface](#interface)
- [Functional](#functional)
- [Performance](#performance)
+ [Logger revamp](#logger-revamp)
+ [Network](#network)
- [Minecraft Bedrock packet encryption](#minecraft-bedrock-packet-encryption)
- [Packet receive error handling has been overhauled](#packet-receive-error-handling-has-been-overhauled)
- [New packet handler system](#new-packet-handler-system)
* [API](#api)
+ [General](#general-1)
+ [Changes to `plugin.yml`](#changes-to-pluginyml)
- [Permission nesting](#permission-nesting)
- [`src-namespace-prefix`](#src-namespace-prefix)
+ [Block](#block)
+ [Command](#command)
+ [Entity](#entity)
- [General](#general-2)
- [Effect](#effect)
- [Removal of runtime entity NBT](#removal-of-runtime-entity-nbt)
- [Entity creation](#entity-creation)
- [WIP removal of entity network metadata](#wip-removal-of-entity-network-metadata)
+ [Event](#event)
- [Internal event system no longer depends on `Listener`s](#internal-event-system-no-longer-depends-on-listeners)
- [Default cancelled handling behaviour has changed](#default-cancelled-handling-behaviour-has-changed)
- [`PlayerPreLoginEvent` changes](#playerpreloginevent-changes)
- [Other changes](#other-changes)
+ [Inventory](#inventory)
+ [Item](#item)
- [General](#general-3)
- [NBT handling](#nbt-handling)
- [Enchantment](#enchantment)
+ [Lang](#lang)
+ [Network](#network-1)
+ [Permission](#permission)
+ [Player](#player)
+ [Plugin](#plugin)
+ [Scheduler](#scheduler)
- [Thread-local storage for AsyncTasks](#thread-local-storage-for-asynctasks)
- [Other changes](#other-changes-1)
+ [Server](#server)
+ [Level / World](#level--world)
- [General](#general-4)
- [Particles](#particles)
- [Sounds](#sounds)
+ [Utils](#utils)
* [Gameplay](#gameplay)
+ [Blocks](#blocks)
+ [Items](#items)
<small><i><a href='http://ecotrust-canada.github.io/markdown-toc/'>Table of contents generated with markdown-toc</a></i></small>
@ -145,6 +148,57 @@ This version features substantial changes to the network system, improving coher
- `void` and `?nullable` parameter and return types have been applied in many places.
- Everything in the `pocketmine\metadata` namespace and related implementations have been removed.
### Changes to `plugin.yml`
#### Permission nesting
Permission nesting is no longer supported in `plugin.yml`. Grouping permissions (with defaults) in `plugin.yml` had very confusing and inconsistent behaviour.
Instead of nesting permission declarations, they should each be declared separately.
_Before_:
```
permissions:
pmmp:
default: op
children:
pmmp.something:
default: op
pmmp.somethingElse
default: op
```
_After_:
```
permissions:
pmmp.something:
default: op
pmmp.somethingElse
default: op
```
#### `src-namespace-prefix`
A new directive `src-namespace-prefix` has been introduced. This allows you to get rid of those useless subdirectories in a plugin's structure.
For example, a plugin whose main was `pmmp\TesterPlugin\Main` used to have to be structured like this:
```
|-- plugin.yml
|-- src/
|-- pmmp/
|-- TesterPlugin/
|-- Main.php
|-- SomeOtherClass.php
|-- SomeNamespace/
|-- SomeNamespacedClass.php
```
However, if we add `src-namespace-prefix: pmmp\TesterPlugin` to the `plugin.yml`, now we can get rid of the useless directories and structure it like this instead:
```
|-- plugin.yml
|-- src/
|-- Main.php
|-- SomeOtherClass.php
|-- SomeNamespace/
|-- SomeNamespacedClass.php
```
**Note**: The old structure will also still work just fine. This is not a required change.
### Block
- A new `VanillaBlocks` class has been added, which contains static methods for creating any currently-known block type. This should be preferred instead of use of `BlockFactory::get()` where constants were used.
- Blocks now contain their positions instead of extending `Position`. `Block->getPos()` has been added.