Commit Graph

18188 Commits

Author SHA1 Message Date
Dylan K. Taylor
069ecf007f Merge branch 'stable' into minor-next 2025-03-14 15:41:46 +00:00
Dylan K. Taylor
341c7a03a9 CopperMaterial: fixed missing @return $this docs 2025-03-14 15:40:27 +00:00
pmmp-admin-bot[bot]
7ae90dda5d Merge 'stable' into 'minor-next'
Automatic merge performed by: https://github.com/pmmp/RestrictedActions/actions/runs/13825107599
2025-03-13 01:36:47 +00:00
Dylan T.
73a4b076d6 actions: tidy support response message 2025-03-12 16:19:11 +00:00
Dylan T.
00df508727 Update bug-report.yml 2025-03-12 13:06:57 +00:00
pmmp-admin-bot[bot]
a6553097f4 Merge 'stable' into 'minor-next'
Automatic merge performed by: https://github.com/pmmp/RestrictedActions/actions/runs/13754675430
2025-03-10 01:14:10 +00:00
Lee Siu San
afc4a3c7f1 Fixed entity position offset not being included in AddActorPacket (#6643)
this was causing TNT and falling blocks to briefly appear half a block lower than their true position, because their positions are measured from the center and not the base.
2025-03-09 02:09:53 +00:00
pmmp-admin-bot[bot]
ac7b5b3b13 Merge 'stable' into 'minor-next'
Automatic merge performed by: https://github.com/pmmp/RestrictedActions/actions/runs/13743358576
2025-03-09 01:16:28 +00:00
Dylan K. Taylor
7af5eb3da2 crafting: validate array inputs
this makes sure wrong parameters don't show up as core errors, as seen in crash report 12373907
closes #6642
2025-03-09 01:10:12 +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
Dylan T.
aad2bce9e4 readme: call out Easy tasks issues 2025-03-09 00:23:59 +00:00
pmmp-admin-bot[bot]
09f0ce458c Merge 'stable' into 'minor-next'
Automatic merge performed by: https://github.com/pmmp/RestrictedActions/actions/runs/13666455727
2025-03-05 01:27:20 +00:00
pmmp-admin-bot[bot]
50a1e59aa4 5.25.3 is next
Commit created by: https://github.com/pmmp/RestrictedActions/actions/runs/13662905668
2025-03-04 21:05:10 +00:00
Dylan T.
e8824a36b9 Merge pull request #6645 from pmmp/explode-limit
5.25.2
5.25.2
2025-03-04 21:03:52 +00:00
Dylan T.
b1e63e544f Merge branch 'stable' into explode-limit 2025-03-04 21:00:40 +00:00
Dylan K. Taylor
9e9f8a4870 Prepare 5.25.2 release 2025-03-04 20:57:47 +00:00
Dylan K. Taylor
d0d84d4c51 New rule: explode() limit parameter must be set 2025-03-04 20:44:01 +00:00
pmmp-admin-bot[bot]
9382e6e5b3 Merge 'stable' into 'minor-next'
Automatic merge performed by: https://github.com/pmmp/RestrictedActions/actions/runs/13610829991
2025-03-02 01:38:07 +00:00
dependabot[bot]
e3e0c14275 Bump the github-actions group with 2 updates (#6644) 2025-03-01 10:04:01 +00:00
Dylan K. Taylor
afac178cf4 Merge branch 'stable' into minor-next 2025-02-26 17:31:55 +00:00
Dylan K. Taylor
e2f5e3e73c Update composer dependencies 2025-02-26 17:31:26 +00:00
Dylan K. Taylor
3a2d0d77d1 Update composer dependencies 2025-02-26 17:30:20 +00:00
Dylan T.
32b98dcbde draft-release: add a warning about bug reporting
too many people just spam on discord and expect that to somehow do something ...
2025-02-26 17:23:27 +00:00
pmmp-admin-bot[bot]
092ea07d51 5.25.2 is next
Commit created by: https://github.com/pmmp/RestrictedActions/actions/runs/13549549222
2025-02-26 17:14:49 +00:00
Dylan T.
706f391068 Release 5.25.1 (#6641) 5.25.1 2025-02-26 17:13:44 +00:00
dependabot[bot]
7c654271a8 Bump phpstan/phpstan in the development-patch-updates group (#6640) 2025-02-25 13:40:11 +00:00
pmmp-admin-bot[bot]
19425e35ea Merge 'stable' into 'minor-next'
Automatic merge performed by: https://github.com/pmmp/RestrictedActions/actions/runs/13488997706
2025-02-24 01:26:36 +00:00
Dylan K. Taylor
3df2bdb879 Fixed door facing
this was broken in 1.21.60 update.

should've known better to expect a blockstate upgrade to mean a
blockstate fix...
2025-02-24 01:04:52 +00:00
Dylan K. Taylor
1fed9f6cb5 BlockBreakInfo: fixed confusing error message 2025-02-23 20:02:27 +00:00
Dylan K. Taylor
3050af0bc0 ResourcePackManager: validate pack UUIDs
fixes CrashArchive ##12248760
2025-02-23 19:45:38 +00:00
Dylan K. Taylor
a08b06d322 also sort table by ID 2025-02-18 15:34:20 +00:00
Dylan K. Taylor
c876253f76 tools/blockstate-upgrade-schema-utils: added dump-table command
this command dumps a human-readable version of pmmp/mapping palette mapping files to a .txt file.
may be useful for debugging issues with the schema generator or the upgrade process.
2025-02-18 15:30:39 +00:00
Dylan K. Taylor
67272f8f2b Merge branch 'stable' of github.com:pmmp/PocketMine-MP into minor-next 2025-02-18 01:25:46 +00:00
Dylan K. Taylor
77be5f8e25 Update PHPStan 2025-02-17 17:51:39 +00:00
Dylan K. Taylor
9744bd7073 CraftingManager: make a less dumb hash function
fixes #4415
2025-02-17 15:35:18 +00:00
Dylan K. Taylor
51cf6817b1 World: fixed overflow checks for getCollisionBlocks(), closes #6630 2025-02-16 23:24:39 +00:00
Dylan K. Taylor
fd04894a7b Merge branch 'stable' of github.com:pmmp/PocketMine-MP into minor-next 2025-02-16 23:18:34 +00:00
Dylan K. Taylor
d2d6a59c72 ItemDeserializer: fix doc comment typo 2025-02-16 22:52:11 +00:00
Dylan K. Taylor
788ee9a008 Allow overriding deserializers for block and item IDs
there's no technical reason not to support this, since it doesn't violate any assumptions and the type returned is a base anyway.

this enables implementing stuff like snow cauldrons in a plugin, which previously would require reflection due to the minecraft:cauldron deserializer being registered already.
it also enables overriding IDs to map to custom blocks, which might be useful for overriding some functionality (although this is inadvisable - and won't alter the usage of stuff like VanillaBlocks::WHATEVER()).

we do *not* allow overriding serializers, since type IDs are expected to be paired to block implementations, and allowing them to be reassigned could lead to crashes if the new class was incorrect. So the correct approach for overriding nether portals would be to create a custom type ID as if you were adding a fully custom item. This will also allow other plugins to distinguish between your implementation and the built-in one.
2025-02-16 22:49:40 +00:00
pmmp-admin-bot[bot]
34f801ee3c 5.25.1 is next
Commit created by: https://github.com/pmmp/RestrictedActions/actions/runs/13359320328
2025-02-16 22:18:20 +00:00
Dylan T.
d96ef21c4d Prepare 5.25.0 release (#6631) 5.25.0 2025-02-16 22:16:47 +00:00
Dylan K. Taylor
246c1776df InventoryAction: avoid throwaway Item clones 2025-02-16 21:47:35 +00:00
Dylan K. Taylor
03e4b53ac4 BedrockDataFiles: added constants for folders as well as files
we probably should have it recurse too, but this is an easy win.
2025-02-16 20:57:16 +00:00
Dries C
91ac64783f Bedrock 1.21.60 (#6627)
Co-authored-by: Dylan K. Taylor <dktapps@pmmp.io>
2025-02-16 20:51:53 +00:00
Dylan T.
9402a20ee3 Update Utils::getOS() doc comment
closes #6628
2025-02-16 16:12:29 +00:00
Dylan K. Taylor
2670e81668 Merge branch 'stable' of github.com:pmmp/PocketMine-MP into minor-next 2025-02-12 02:14:51 +00:00
ipad54
e29aa2f337 Added resin material color (#6622) 2025-02-11 16:15:42 +00:00
dependabot[bot]
5ef89200c6 Bump phpstan/phpstan in the development-patch-updates group (#6620) 2025-02-10 22:14:30 +00:00
Dylan T.
9b3b45258a Optimise collision box checks by caching some basic info (#6606)
This PR significantly improves performance of entity movement calculation.

Previous attempts to optimise this were ineffective, as they used a cache to mitigate the cost of recomputing AABBs. Entities tend to move around randomly, so the non-cached pathway really needed to be optimized.

This change improves performance on multiple fronts:
1) avoiding Block allocations for blocks with 1x1x1 AABBs and with no AABBs (the most common)
2) avoiding Block allocations and overlapping intersection checks unless a stateID is specifically known to potentially exceed its cell boundaries (like fences)
3) avoiding overlapping AABB checks when overlaps can't make any difference anyway (cubes)

Together, these changes improve the performance of World->getBlockCollisionBoxes() by a factor of 5. In real-world terms, this shows up as a major performance improvement in situations with lots of entities moving in random directions. Testing with item entities showed an increase from 400 to 1200 moving items with the same CPU usage.

This change is built on the assumption that `Block->recalculateCollisionBoxes()` and its overrides don't interact with any world. This is technically possible due to the crappy design of the `Block` architecture, but should be avoided. As a world is not available during `RuntimeBlockStateRegistry` initialization, attempting to interact with a world during `recalculateCollisionBoxes()` will now cause a crash.

This turned out to be a problem for `ChorusPlant`, which was fixed by 70fb9bbdfd. The correct solution in this case was to use dynamic states similar to how we currently deal with fence connections.
2025-02-06 15:42:10 +00:00