Commit Graph

996 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
f1c5c7b699 Update CallbackValidator 2025-10-10 23:00:35 +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
pmmp-admin-bot[bot]
e5dc706473 Merge 'minor-next' into 'major-next'
Automatic merge performed by: https://github.com/pmmp/RestrictedActions/actions/runs/18294417780
2025-10-06 21:06:05 +00:00
dependabot[bot]
5dd669e233 Bump pocketmine/locale-data in the production-patch-updates group (#6827) 2025-10-06 12:15:56 +00: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
01028ee404 Merge branch 'minor-next' into major-next 2025-09-12 01:15:40 +01:00
Dylan K. Taylor
aee1ab0ae0 Merge branch 'stable' into minor-next 2025-09-12 01:14:16 +01:00
Dylan K. Taylor
636b96a9a5 Updated composer dependencies 2025-09-12 01:13:55 +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]
40ea6dd30d Bump phpstan/phpstan-strict-rules in the development-patch-updates group (#6758) 2025-07-29 09:26:25 +00:00
dependabot[bot]
866df55edf Bump ramsey/uuid from 4.8.1 to 4.9.0 (#6748) 2025-07-29 09:25:19 +00:00
pmmp-admin-bot[bot]
7fbd868bc1 Merge 'minor-next' into 'major-next'
Automatic merge performed by: https://github.com/pmmp/RestrictedActions/actions/runs/16484425188
2025-07-24 00:03:17 +00:00
dependabot[bot]
4047cbaafe Bump phpstan/phpstan-strict-rules in the development-patch-updates group (#6756) 2025-07-23 12:07:07 +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
afcd6b4e12 Merge remote-tracking branch 'origin/minor-next' into major-next 2025-06-25 01:07:16 +01:00
ipad54
cb508f4382 Release 5.30.1 (#6744) 2025-06-23 23:30:48 +03: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
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
Dylan K. Taylor
e1af2a4af1 Update language dependency 2025-05-24 16:19:48 +01:00
Dylan K. Taylor
b5f236c019 Apparently we're supposed to use replace for this, not provide 2025-05-17 18:09:14 +01: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