Commit Graph

539 Commits

Author SHA1 Message Date
pmmp-admin-bot[bot]
d1b48cbb9d Merge 'minor-next' into 'major-next'
Automatic merge performed by: https://github.com/pmmp/RestrictedActions/actions/runs/18079789743
2025-09-28 21:05:34 +00:00
Dylan K. Taylor
1c92d66ca4 LoginPacketHandler: stop bailing on unexpected JSON properties
the intent of this was noble (to make sure nothing was missed), but in practice throwing
errors on this stuff is just a pain in the ass. We don't actually need to care if the
properties are not used, since it doesn't affect the decoding (like it would for
a missing packet field), so the only reasons to complain are for BedrockProtocol to
have a complete picture of the protocol, and to make sure we're not discarding useful
information.

Log a warning in these cases instead, which should be noticed by developers without
being an unnecessary problem for users.

closes #6816
2025-09-26 23:04:23 +01:00
Dylan K. Taylor
c863c737f4 Merge branch 'minor-next' into major-next 2025-09-26 15:55:55 +01:00
Dylan T.
31f4b496a1 Implement new OpenID authentication system (#6798)
Co-authored-by: Dries C <15795262+dries-c@users.noreply.github.com>
2025-09-20 22:40:38 +01:00
Dylan K. Taylor
a65722d0aa Merge branch 'minor-next' into major-next 2025-09-17 01:49:29 +01:00
Dylan K. Taylor
a056af1617 Update composer dev dependencies 2025-09-15 22:41:02 +01:00
Dylan K. Taylor
66b8f2f160 Scrub PHPStan baselines 2025-09-04 23:35:57 +01:00
Dylan K. Taylor
3411103e11 Remove dead PHPStan ignores 2025-09-04 23:29:55 +01:00
Dylan K. Taylor
25e937715e Merge branch 'minor-next' into major-next 2025-09-04 22:11:36 +01:00
Dylan K. Taylor
1868536916 Add PHP 8.4 to test matrix 2025-09-04 21:58:12 +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
pmmp-admin-bot[bot]
aae88c5c26 Merge 'minor-next' into 'major-next'
Automatic merge performed by: https://github.com/pmmp/RestrictedActions/actions/runs/17310812886
2025-08-29 00:02:52 +00:00
Dylan K. Taylor
dd9030f1f5 tools/generate-bedrock-data-from-packets: generate less noise for items
if we have only a name (the majority case), we can just return the name directly instead of an object.
this massively reduces the amount of noise in the files as seen in pmmp/BedrockData@f814036229
2025-08-28 21:15:09 +01:00
Dylan K. Taylor
e8eda19ae5 Merge remote-tracking branch 'origin/minor-next' into major-next 2025-08-24 23:18:21 +01:00
Dylan K. Taylor
0e498720bd Regenerate phpstan-bugs baseline 2025-08-24 20:10:34 +01:00
Dylan T.
7c521b456e Unify block serializers (#6769)
This has several advantages:

    Easier to implement new blocks (one less file to modify)
    Easier to adjust serialization of existing blocks
    Guaranteed consistency between serializers and deserializers
    Potentially, exposes more metadata for programmatic analysis, instead of having everything baked inside opaque Closures

There are some exceptions which still use the old approach: big dripleaf, cauldrons, mushroom stems, and pitcher crops. These all have multiple PM block types for a single ID, with relatively complex logic to select which to use. These weren't worth the effort to unify due to their small number. I may revisit this in the future, but I already spent a lot of brainpower on it.
2025-08-24 14:12:18 +01:00
Dylan K. Taylor
0330b25768 Merge branch 'minor-next' into major-next 2025-06-08 18:44:54 +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
pmmp-admin-bot[bot]
d5a1007c80 Merge 'minor-next' into 'major-next'
Automatic merge performed by: https://github.com/pmmp/RestrictedActions/actions/runs/15288247521
2025-05-28 00:03:15 +00:00
Dylan T.
059f4ee7bf Extract GeneratorExecutor system from World, v2 (#6682)
- `AsyncGeneratorExecutor` class added that encapsulates the logic of generating chunks using async tasks as previously
- `GeneratorExecutor` interface added that can be implemented to provide chunks in other ways
- `SyncGeneratorExecutor` which invokes the generator directly on the main thread, useful for simple generators like `Flat` where async tasks are not needed
- Some redundant APIs were removed from `World` (these will probably come back as deprecated stubs for the remainder of 5.x, but I was having too much fun deleting code)
- Removed internal `World->registerGeneratorToWorker()` (no longer useful)
- `World` now invokes generator executor instead of posting AsyncTasks directly
- Some internal classes moved to `pocketmine\world\generator\executor` (PopulationTask excluded because plugins use it in lieu of being able to regenerate chunks
- Generators can opt into main-thread execution by setting the `$fast` parameter to `true` in `GeneratorManager::register()`
2025-05-27 21:51:10 +01:00
Dylan K. Taylor
7847524df6 Merge branch 'minor-next' into major-next 2025-05-08 02:28:09 +01:00
Dylan K. Taylor
c1cee1fc24 Merge branch 'stable' into minor-next 2025-05-08 02:27:51 +01:00
Dylan K. Taylor
d789c75c00 Improve PHPStan error reporting for unsafe foreaches
these are actually two separate concerns: one for dodgy PHPStan type suppression on implicit keys, and the other for arrays being casted to strings by PHP.
2025-05-08 02:26:09 +01:00
pmmp-admin-bot[bot]
3de604ef95 Merge 'minor-next' into 'major-next'
Automatic merge performed by: https://github.com/pmmp/RestrictedActions/actions/runs/14816570368
2025-05-04 01:51:27 +00:00
Dylan K. Taylor
6bf9a305de Rename confusing PHPStan rule name
it never occurred to me that this was misleading until I read some Devin documentation,
noticed that Devin misunderstood was the class was for, and then realized actually
Devin understood correctly, and it was the name of the class that was wrong. Funny
how that happens...
2025-05-03 19:24:21 +01:00
Dylan K. Taylor
1d13054608 Merge branch 'minor-next' into major-next 2025-03-09 01:18:55 +00:00
Dylan K. Taylor
95284bc9de change error identifier 2025-03-09 00:54:39 +00:00
Dylan K. Taylor
2291546610 phpstan: added rule to ban new $class
see #6635 for rationale on why we want to get rid of this

for now, this rule will prevent this anti-feature from being used in new code
2025-03-09 00:51:12 +00:00
pmmp-admin-bot[bot]
ec140f7861 Merge 'minor-next' into 'major-next'
Automatic merge performed by: https://github.com/pmmp/RestrictedActions/actions/runs/13666455727
2025-03-05 01:27:21 +00:00
Dylan K. Taylor
d0d84d4c51 New rule: explode() limit parameter must be set 2025-03-04 20:44:01 +00:00
Dylan K. Taylor
c637d852e2 Merge branch 'minor-next' into major-next 2025-02-18 01:26:08 +00:00
Dylan K. Taylor
77be5f8e25 Update PHPStan 2025-02-17 17:51:39 +00:00
Dylan K. Taylor
02ac512b4e Merge branch 'minor-next' into major-next 2025-01-08 15:25:12 +00:00
Dylan K. Taylor
5e0f03dff0 Stub PalettedBlockArray functions that work with arrays
and workaround PHPStan stupidity
2025-01-08 01:48:15 +00:00
Dylan K. Taylor
e34f34f9f4 Update BedrockProtocol dependency 2025-01-07 23:09:28 +00:00
Dylan K. Taylor
e8c4b743b5 LevelDB: stop overriding types from NBT
NBT has better quality type info already
2025-01-07 22:54:10 +00:00
Dylan K. Taylor
689a7996b9 Update NBT dependency 2025-01-07 22:51:38 +00:00
Dylan K. Taylor
9633b7d8a7 Update to PHPStan 2.x 2025-01-07 22:34:43 +00:00
pmmp-admin-bot[bot]
708784b0a2 Merge 'minor-next' into 'major-next'
Automatic merge performed by: https://github.com/pmmp/RestrictedActions/actions/runs/12643390650
2025-01-07 01:24:48 +00:00
Dylan K. Taylor
84ec8b7abe Removed dead error patterns
I do think these are PHPStan bugs, since the trait should inherit the parent class's doc comment
But for the sake of catching more bugs, these doc comments have been manually added anyway.
2025-01-06 23:02:18 +00:00
Dylan K. Taylor
357dfb5c7e Fixed build 2025-01-06 23:01:14 +00:00
pmmp-admin-bot[bot]
f82c8dd3d3 Merge 'minor-next' into 'major-next'
Automatic merge performed by: https://github.com/pmmp/RestrictedActions/actions/runs/12307996607
2024-12-13 01:40:43 +00:00
ipad54
b341078765 Implement new pale oak blocks (#6570) 2024-12-12 17:53:52 +03:00
pmmp-admin-bot[bot]
1ee52b69b0 Merge 'minor-next' into 'major-next'
Automatic merge performed by: https://github.com/pmmp/RestrictedActions/actions/runs/12247725255
2024-12-10 01:41:10 +00:00
Dylan K. Taylor
bba525da02 Remove dead PHPStan ignored errors 2024-12-09 16:44:25 +00:00
Dylan K. Taylor
ad6d34f1a6 Remove legacy make-release script
we no longer use this release workflow, all releases should now be done via pull request
2024-12-09 16:44:07 +00:00
Dylan K. Taylor
02d181d0c8 Merge branch 'minor-next' into major-next 2024-12-01 15:02:36 +00:00
Dylan T.
61560ec375 Support for collecting timings from threads, and implement async task timings (#6333)
The following callbacks can now be registered in timings, to allow threads to be notified of these events:
- Turning on/off (`TimingsHandler::getToggleCallbacks()->add(...)`)
- Reset (`TimingsHandler::getReloadCallbacks()->add(...)`)
- Collect (`TimingsHandler::getCollectCallbacks()->add(...)`)

Collect callbacks must return `list<Promise>`. The promises must be `resolve()`d with `list<string>` of printed timings records, as returned by `TimingsHandler::printCurrentThreadRecords()`. It's recommended to use 1 promise per thread.

A timings report will be produced once all promises have been resolved.

This system is used internally to collect timings for async tasks (closes #6166).

For timings viewer developers:
Timings format version has been bumped to 3 to accommodate this change. Timings groups should now include a `ThreadId`  at the end of timings group names to ensure that their record IDs are segregated correctly, as they could otherwise conflict between threads. The main thread is not required to specify a thread ID. See pmmp/timings@13cefa6279 for implementation examples.

New PHPStan error is caused by phpstan/phpstan#10924
2024-12-01 14:49:27 +00:00
Dylan K. Taylor
15eaf67a0c Merge branch 'minor-next' into major-next 2024-11-25 14:36:25 +00:00