[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

@ -17,6 +17,9 @@ This major version features substantial changes throughout the core, including s
- [New packet handler system](#new-packet-handler-system) - [New packet handler system](#new-packet-handler-system)
* [API](#api) * [API](#api)
+ [General](#general-1) + [General](#general-1)
+ [Changes to `plugin.yml`](#changes-to-pluginyml)
- [Permission nesting](#permission-nesting)
- [`src-namespace-prefix`](#src-namespace-prefix)
+ [Block](#block) + [Block](#block)
+ [Command](#command) + [Command](#command)
+ [Entity](#entity) + [Entity](#entity)
@ -44,7 +47,7 @@ This major version features substantial changes throughout the core, including s
- [Thread-local storage for AsyncTasks](#thread-local-storage-for-asynctasks) - [Thread-local storage for AsyncTasks](#thread-local-storage-for-asynctasks)
- [Other changes](#other-changes-1) - [Other changes](#other-changes-1)
+ [Server](#server) + [Server](#server)
+ [Level / World](#level---world) + [Level / World](#level--world)
- [General](#general-4) - [General](#general-4)
- [Particles](#particles) - [Particles](#particles)
- [Sounds](#sounds) - [Sounds](#sounds)
@ -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. - `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. - 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 ### 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. - 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. - Blocks now contain their positions instead of extending `Position`. `Block->getPos()` has been added.