Commit Graph

657 Commits

Author SHA1 Message Date
Dylan T.
9f9bc5fb1a Rework command alias handling, step 1 (#6685)
This PR started out as an effort to decouple Command and CommandMap, but it's turned into a bit more than that.

A summary of changes:

## UX
- Added `cmdalias create`, `cmdalias delete` and `cmdalias list` commands
- `/help` now shows prefixed names such as `pocketmine:help`
- Prefixed command name (e.g. `pocketmine:help`) are now visible to Minecraft clients
- Permission denied messages are now able to show more useful context when e.g. checking subcommand permissions
- Multiple commands claiming an alias make the alias unusable (an error will be shown when used telling the user to pick from the namespaced names), instead of whichever plugin loaded last getting lucky

## API
- Added `CommandAliasMap`, which handles mapping of aliases to namespaced command IDs
- Added `CommandSender->getCommandAliasMap()` for user-specific aliases
- Added `CommandMap->getAliasMap()` for global fallback aliases
- `Command` no longer tracks its own registered aliases (now the job of `CommandMap`), breaking circular dependency
- Aliases must now be provided to `CommandMap->register()`
- Aliases can now be individually registered and unregistered without re-registering/unregistering the whole command using `CommandAliasMap` APIs
- Aliases are no longer namespaced, only the main command name (e.g. `pocketmine:?` is now gone while `pocketmine:help` still exists)
- `Command` now requires a `$namespace` parameter, which replaces the old `$fallbackPrefix` parameter of `register()`. It should be set to the name of the plugin.

Relevant issues
- #6508 
- #3371 - this PR doesn't implement storage, but allows configuration of per-user aliases during server runtime
2025-10-10 23:34:57 +01:00
Dylan K. Taylor
5553c2ab8a Merge remote-tracking branch 'origin/minor-next' into major-next 2025-10-08 22:13:01 +01:00
Dylan K. Taylor
6da3935abc Splash some URLs on the console at the end of startup
Maybe this will be useful for people whose first encounter with PM is on a server host.
2025-10-07 18:34:20 +01:00
Dylan K. Taylor
3a262fafc3 Merge branch 'minor-next' into major-next 2025-10-03 19:25:00 +01:00
Dylan T.
bc17ee7489 Bedrock 1.21.111 (#6824)
Co-authored-by: Dries C <15795262+dries-c@users.noreply.github.com>
2025-10-03 16:09:26 +01:00
Dylan K. Taylor
c863c737f4 Merge branch 'minor-next' into major-next 2025-09-26 15:55:55 +01:00
Dylan T.
3336cda34a First pass ext-encoding support (high-level network I/O and read-only data) (#6799)
This implements ext-encoding only in high-level network I/O (only BedrockProtocol and stuff implemented in PM) and read-only data.
This should net a significant performance advantage while being low-risk in the case of critical issues with the extension. Any problems affecting protocol won't do permanent damage while being fairly easy to debug.

Next passes will integrate ext-encoding versions of RakLib, RakLibIpc and NBT, as well as generally using ext-encoding for writeable data.
2025-09-25 17:32:38 +01:00
Dylan K. Taylor
352cd4f9fd Merge branch 'minor-next' of github.com:pmmp/PocketMine-MP into major-next 2025-09-20 18:09:32 +01:00
Dylan K. Taylor
bbcc0c08b5 Updated NBT library to get new ListTag handling features 2025-09-19 23:40:04 +01:00
Dylan K. Taylor
a65722d0aa Merge branch 'minor-next' into major-next 2025-09-17 01:49:29 +01:00
Dylan K. Taylor
7d50c9d146 Merge branch 'stable' of github.com:pmmp/PocketMine-MP into minor-next 2025-09-17 01:38:53 +01:00
Dylan K. Taylor
a056af1617 Update composer dev dependencies 2025-09-15 22:41:02 +01:00
Dylan K. Taylor
1a71152195 Merge remote-tracking branch 'origin/minor-next' into major-next 2025-09-12 01:09:35 +01:00
Dylan K. Taylor
54e8ad2a9c Update BedrockProtocol 2025-09-10 16:21:29 +01:00
Dylan K. Taylor
9a9506b793 Upgrade CallbackValidator
closes #6343
2025-08-30 19:23:38 +01:00
Dylan K. Taylor
de7dcf114f Merge branch 'minor-next' of github.com:pmmp/PocketMine-MP into major-next 2025-08-30 18:51:15 +01:00
Dylan K. Taylor
95679b5a29 Update BedrockData and some transient deps 2025-08-30 18:36:42 +01:00
Dylan K. Taylor
6f6b23d4e4 Integrate dev-major-next version of pocketmine/math
this is a reduced version compared to the original, due to the difficulty of getting rid of Facing values internally.
2025-08-29 21:47:20 +01:00
Dylan K. Taylor
12f404b20d Merge branch 'minor-next' into major-next 2025-08-08 01:09:17 +01:00
Dries C
173b685b02 Bedrock 1.21.100 (#6760)
---------

Co-authored-by: Dylan T. <dktapps@pmmp.io>
2025-08-06 16:41:44 +01:00
Dylan K. Taylor
e630fc2dd6 Merge remote-tracking branch 'origin/minor-next' into major-next 2025-07-31 13:00:12 +01:00
dependabot[bot]
866df55edf Bump ramsey/uuid from 4.8.1 to 4.9.0 (#6748) 2025-07-29 09:25:19 +00:00
Dylan K. Taylor
c02feba056 Merge remote-tracking branch 'origin/minor-next' into major-next 2025-07-10 01:58:34 +01:00
Dylan T.
50e15db9ac Prepare 5.31.0 release (#6752) 2025-07-08 13:41:59 +01:00
Dylan K. Taylor
6340d12881 Merge branch 'minor-next' into major-next 2025-06-18 19:56:54 +01:00
Dylan K. Taylor
a662510cca Merge remote-tracking branch 'origin/stable' into minor-next 2025-06-18 19:56:02 +01:00
Dries C
9c71f4fc1c Assemble 1.21.90 (#6736) 2025-06-18 01:15:00 +01:00
Dylan K. Taylor
215da7e3f4 PHP 8.3 package bumps 2025-06-08 18:58:42 +01:00
Dylan K. Taylor
c3ea6edc22 Bump minimum PHP version to 8.3 2025-06-08 18:49:27 +01:00
Dylan K. Taylor
0330b25768 Merge branch 'minor-next' into major-next 2025-06-08 18:44:54 +01:00
Dylan K. Taylor
4c3a2ef46e Update dependencies (minor-next) 2025-06-08 18:44:37 +01:00
Dylan K. Taylor
d053e9e168 Merge branch 'stable' into minor-next 2025-06-08 18:43:31 +01:00
Dylan K. Taylor
a4ac28592c Updated dependencies 2025-06-02 15:17:00 +01:00
Dylan K. Taylor
0910a219d4 Fixed improper pre-checking of PlayerAuthInputPacket flags 2025-05-28 23:29:37 +01:00
pmmp-admin-bot[bot]
b20d1b84b5 Merge 'minor-next' into 'major-next'
Automatic merge performed by: https://github.com/pmmp/RestrictedActions/actions/runs/15232190072
2025-05-25 00:03:31 +00:00
Dylan K. Taylor
e1af2a4af1 Update language dependency 2025-05-24 16:19:48 +01:00
pmmp-admin-bot[bot]
d907d72e9b Merge 'minor-next' into 'major-next'
Automatic merge performed by: https://github.com/pmmp/RestrictedActions/actions/runs/15090310700
2025-05-18 00:03:34 +00:00
Dylan K. Taylor
b5f236c019 Apparently we're supposed to use replace for this, not provide 2025-05-17 18:09:14 +01:00
pmmp-admin-bot[bot]
9d532b6e95 Merge 'minor-next' into 'major-next'
Automatic merge performed by: https://github.com/pmmp/RestrictedActions/actions/runs/15087062558
2025-05-17 16:31:33 +00:00
Dylan K. Taylor
a37353c060 composer: fixed borked version constraints
bruhhhhhhhhhhhh
2025-05-17 16:37:22 +01:00
Dylan K. Taylor
e0864e7ee8 composer: also axe unnecessary ctype polyfill 2025-05-17 14:54:26 +01:00
Dylan K. Taylor
dca37d5842 Hack: forcibly remove symfony/polyfill-mbstring
we don't need this dependency anyway because mbstring is already provided.
2025-05-17 14:11:57 +01:00
Dylan K. Taylor
67f3bb9c52 Update composer dependencies
and fix an error found by new PHPStan update
2025-05-17 13:46:33 +01:00
pmmp-admin-bot[bot]
1c70cee72e Merge 'minor-next' into 'major-next'
Automatic merge performed by: https://github.com/pmmp/RestrictedActions/actions/runs/14931383427
2025-05-09 14:38:29 +00:00
Dries C
5e830c7320 Protocol changes for 1.21.80 (#6687)
* Bedrock 1.21.80 support

* Update bedrock-data

* Add required tags to models

* Fixed biome data loading

* Support newest world format
apparently I messed up the blockstate data version last time around... it hasn't changed since 1.21.60

* always CS has to complain...

* Sync with release versions

* Ready 5.28.0 release

* this might help...

---------

Co-authored-by: Dylan T. <dktapps@pmmp.io>
2025-05-09 15:29:05 +01:00
Dylan K. Taylor
0bbe56beb4 Merge branch 'minor-next' into major-next 2025-04-06 20:01:23 +01:00
Dylan K. Taylor
835c383d4e Update Composer dependencies 2025-04-06 20:00:21 +01:00
Dylan T.
6f3851be80 5.27.1 (#6670) 2025-04-06 04:52:15 +01:00
pmmp-admin-bot[bot]
9af3cde03f Merge 'minor-next' into 'major-next'
Automatic merge performed by: https://github.com/pmmp/RestrictedActions/actions/runs/14120132647
2025-03-28 01:37:50 +00:00
Dries C
687112f4cd 5.27.0, Bedrock 1.21.70 support (#6665)
Co-authored-by: Dylan K. Taylor <dktapps@pmmp.io>
2025-03-27 15:48:19 +00:00