Skip to content

Commit f7427ca

Browse files
committed
Merge branch 'major-next' of github.com:pmmp/PocketMine-MP into string-block-type-ids
2 parents d6122bb + 973dad0 commit f7427ca

File tree

92 files changed

+1228
-397
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

92 files changed

+1228
-397
lines changed

.github/workflows/draft-release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ jobs:
155155
run: php tools/generate-permission-doc.php rst
156156

157157
- name: Upload release artifacts
158-
uses: actions/upload-artifact@v4
158+
uses: actions/upload-artifact@v5
159159
with:
160160
name: release_artifacts
161161
path: |

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
11
[submodule "build/php"]
22
path = build/php
33
url = https://github.com/pmmp/php-build-scripts.git
4+
[submodule "examples/plugins/ExamplePlugin"]
5+
path = examples/plugins/ExamplePlugin
6+
url = git@github.com:pmmp/ExamplePlugin.git

build/php

Submodule php updated from 2714034 to b0784f7

changelogs/4.0.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -642,6 +642,7 @@ However, if we add `src-namespace-prefix: pmmp\TesterPlugin` to the `plugin.yml`
642642
- `InventoryPickupItemEvent->getItem()` -> `InventoryPickupItemEvent->getItemEntity()`
643643

644644
#### Other changes
645+
- The `@softDepend` doc-comment tag for `Listener` event handlers is no longer supported.
645646
- Disconnecting players during events no longer crashes the server (although it might cause other side effects).
646647
- Cancellable events must now implement `CancellableTrait` to get the cancellable components needed to satisfy interface requirements. `Event` no longer stubs these methods.
647648
- `PlayerInteractEvent` is no longer fired when a player activates an item. This fixes the age-old complaint of `PlayerInteractEvent` firing multiple times when interacting once. The following constants have been removed:

changelogs/5.37.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# 5.37.0
2+
Released 28th October 2025.
3+
4+
This is a support release for Minecraft: Bedrock Edition 1.21.120.
5+
6+
**Plugin compatibility:** Plugins for previous 5.x versions will run unchanged on this release, unless they use internal APIs, reflection, or packages like the `pocketmine\network\mcpe` or `pocketmine\data` namespace.
7+
Do not update plugin minimum API versions unless you need new features added in this release.
8+
9+
**WARNING: If your plugin uses the `pocketmine\network\mcpe` namespace, you're not shielded by API change constraints.**
10+
Consider using the `mcpe-protocol` directive in `plugin.yml` as a constraint if you're using packets directly.
11+
12+
## Interim releases
13+
If you're upgrading from 5.35.x directly to 5.37.0, please also read the following changelogs, as the interim releases contain important changes:
14+
- [5.36.0](https://github.com/pmmp/PocketMine-MP/blob/5.37.0/changelogs/5.36.md) - user experience improvements, new gameplay features, new API additions and network changes
15+
16+
## General
17+
- Added support for Minecraft: Bedrock Edition 1.21.120 (@dries-c).
18+
- Removed support for earlier versions.
19+
20+
# 5.37.1
21+
Released 7th November 2025.
22+
23+
## Fixes
24+
- Updated BedrockProtocol dependency to get encoding fixes for `DebugDrawerPacket`.
25+
- Fixed critical hit particles not showing.

composer.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,9 @@
3535
"adhocore/json-comment": "~1.2.0",
3636
"netresearch/jsonmapper": "~v5.0.0",
3737
"pocketmine/bedrock-block-upgrade-schema": "~5.2.0+bedrock-1.21.110",
38-
"pocketmine/bedrock-data": "~6.1.0+bedrock-1.21.111",
38+
"pocketmine/bedrock-data": "~6.2.0+bedrock-1.21.120",
3939
"pocketmine/bedrock-item-upgrade-schema": "~1.16.0+bedrock-1.21.110",
40-
"pocketmine/bedrock-protocol": "~52.0.0+bedrock-1.21.111",
40+
"pocketmine/bedrock-protocol": "~53.1.0+bedrock-1.21.120",
4141
"pocketmine/binaryutils": "^0.2.1",
4242
"pocketmine/callback-validator": "dev-rewrite",
4343
"pocketmine/color": "^0.3.0",
@@ -52,7 +52,7 @@
5252
"symfony/filesystem": "~7.3.0"
5353
},
5454
"require-dev": {
55-
"phpstan/phpstan": "2.1.25",
55+
"phpstan/phpstan": "2.1.32",
5656
"phpstan/phpstan-phpunit": "^2.0.0",
5757
"phpstan/phpstan-strict-rules": "^2.0.0",
5858
"phpunit/phpunit": "^12.2.1"

composer.lock

Lines changed: 38 additions & 43 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

examples/plugins/ExamplePlugin

Submodule ExamplePlugin added at dbd36f1
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
<?php
2+
3+
namespace pmmp\ExampleScriptPlugin;
4+
5+
use pocketmine\event\Listener;
6+
use pocketmine\event\world\WorldLoadEvent;
7+
use pocketmine\plugin\PluginBase;
8+
9+
/**
10+
* Script plugins are self-contained .php files. They are intended for quick testing only.
11+
* They don't support all the features of a normal plugin.
12+
* See the documentation at https://doc.pmmp.io/en/rtfd/developers/plugin-docs/plugin-formats/development.html#script
13+
*
14+
* Required fields
15+
* @main pmmp\ExampleScriptPlugin\Main
16+
* @api 5.37.0
17+
*
18+
* Optional fields
19+
* Version and name are optional in script plugins for convenience, and will be filled with 1.0.0 and
20+
* ScriptPlugin_{file name without extension} respectively.
21+
* @version 1.0.0
22+
* @name ExampleScriptPlugin
23+
* @load STARTUP
24+
*/
25+
class Main extends PluginBase{
26+
public function onEnable() : void{
27+
$this->getServer()->getPluginManager()->registerEvents(new ExampleListener($this->getLogger()), $this);
28+
}
29+
}
30+
31+
class ExampleListener implements Listener{
32+
33+
public function __construct(
34+
private \Logger $logger
35+
){}
36+
37+
public function onWorldLoad(WorldLoadEvent $event) : void{
38+
$this->logger->info("Script plugin detected world " . $event->getWorld()->getDisplayName() . " being loaded!");
39+
}
40+
}
41+

phpstan.neon.dist

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
includes:
22
- tests/phpstan/analyse-for-current-php-version.neon.php
33
- tests/phpstan/configs/actual-problems.neon
4-
- tests/phpstan/configs/impossible-generics.neon
54
- tests/phpstan/configs/phpstan-bugs.neon
65
- tests/phpstan/configs/property-hook-sadness.neon
7-
- tests/phpstan/configs/reflection-class-sadness.neon
86
- tests/phpstan/configs/spl-fixed-array-sucks.neon
97
- vendor/phpstan/phpstan-phpunit/extension.neon
108
- vendor/phpstan/phpstan-phpunit/rules.neon

0 commit comments

Comments
 (0)