18005 Commits

Author SHA1 Message Date
Dylan K. Taylor
6ac45526f9
Use new features in pocketmine/math 1.0.0 2023-08-03 16:46:16 +01:00
Dylan T
c91c8c2f9e
Improving performance of small moving entities (e.g. dropped items) (#5954)
* World: cache block AABBs directly in the world
this removes some indirection when fetching the AABBs, and also allows the AABB cache to live longer than the block cache.

In local testing this showed a 10-20% performance improvement, but it was difficult to properly measure.

* World: eliminate padding block checks in getCollisionBoxes()
this substantially improves the function's performance for small entities.

The padding of 1 block in each direction was previously necessary to account for blocks like fences, which might have an AABB larger than the cell containing them. However, by tracking this information in the collisionBoxCache directly, we can avoid the need to check this at the expense of slightly more complex code. This reduces the number of blocks checked for a moving item entity from 27-64 all the way down to 1-8, which is a major improvement.

Locally, this change allowed me to simulate 2100 item entities without lag, compared with 1500 on the previous commit.
2023-08-03 14:51:51 +01:00
dependabot[bot]
81941ae9e5
Bump phpunit/phpunit from 10.2.6 to 10.2.7 (#5957)
Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 10.2.6 to 10.2.7.
- [Changelog](https://github.com/sebastianbergmann/phpunit/blob/10.2.7/ChangeLog-10.2.md)
- [Commits](https://github.com/sebastianbergmann/phpunit/compare/10.2.6...10.2.7)

---
updated-dependencies:
- dependency-name: phpunit/phpunit
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-02 18:05:30 +01:00
jasonw_4331
1a2c10e844
World: Fixed getSafeSpawn() not accepting seed positions below y=1 (#5955)
this should have been changed during the introduction of y=-64 minimum world height, but it got missed.
2023-08-02 18:05:16 +01:00
Dylan K. Taylor
d88c3d8ced
Fixed coral block killing itself when calling getDropsForCompatibleTool()
this might be called by plugins without actually breaking the block, in which case the block will glitch.
2023-08-02 13:43:36 +01:00
Dylan K. Taylor
82f87cc2da
Reduce repeated block-change-event related code
the new helper code reveals even more repetition, but this is at least consistent now.
2023-08-02 13:40:12 +01:00
Dylan K. Taylor
bb0e648276
Fixed BlockDeathEvent usages showing an oldState which is already dead 2023-08-02 13:36:54 +01:00
Dylan T
6000bcccdd
Merge pull request #5707 from pmmp/hot-events-optimisation
Avoid unnecessary event-related work in hot paths when the events have no registered handlers
2023-08-01 18:19:10 +01:00
Dylan K. Taylor
0b86fafafb
Hot path optimisation for DataPacketSendEvent 2023-08-01 17:41:53 +01:00
Dylan K. Taylor
2608637210
HandlerListManager: track RegisteredListenerCache directly
This change improves the performance of calling an event with 0 handlers by about 10% with no other changes.

Since we have to access the list eventually anyway, we can cut out some unnecessary work by returning the handlers from the cache directly, instead of fetching the HandlerList for no reason.

This also improves the performance of Event::hasHandlers() by about 40%, which is pretty significant (120 ns -> 80 ns).
2023-08-01 17:37:49 +01:00
Dylan K. Taylor
442d65143d
Merge branch 'minor-next' into hot-events-optimisation 2023-08-01 17:01:52 +01:00
Dylan K. Taylor
53de55dcde
5.4.1 is next 2023-08-01 12:46:56 +01:00
Dylan K. Taylor
01664d2e81
Release 5.4.0 5.4.0 2023-08-01 12:46:53 +01:00
Dylan K. Taylor
0a90a5928a
Added TallGrassTrait, remove weirdly specific logic from FortuneDropHelper
this needs to be dealt with before release otherwise we'll be stuck with FortuneDropHelper::grass()
this is the obvious solution and should have been done some time ago - stuff like flammability was already a problem for double tall grass anyway
2023-08-01 12:33:36 +01:00
Dylan K. Taylor
46f24b165a
Rename PlayerMissedSwingEvent -> PlayerMissSwingEvent
all the other events are present tense, so it doesn't make sense for this one to be past tense.
2023-08-01 12:21:39 +01:00
Dylan K. Taylor
6f09286fed
Merge branch 'minor-next' into stable 2023-08-01 11:57:02 +01:00
Dylan K. Taylor
774eb3e72b
5.3.5 is next 2023-08-01 11:16:51 +01:00
Dylan K. Taylor
cd8219d9fd
Release 5.3.4 5.3.4 2023-08-01 11:16:50 +01:00
Dylan K. Taylor
52ce3444d8
Merge branch 'legacy/pm4' into stable 2023-08-01 11:13:31 +01:00
Dylan K. Taylor
e9e5923639
4.23.5 is next 2023-08-01 11:12:52 +01:00
Dylan K. Taylor
49a9da147b
Release 4.23.4 4.23.4 2023-08-01 11:12:41 +01:00
Dylan K. Taylor
4c0df5ee4e
Merge branch 'stable' of github.com:pmmp/PocketMine-MP into stable 2023-07-31 11:30:18 +01:00
Dylan K. Taylor
4c737b2ee3
Merge branch 'legacy/pm4' into stable 2023-07-31 11:29:58 +01:00
Dylan K. Taylor
eb53b795d5
ItemEntity: fixed O(n^2) performance issue when many of the same unstackable item are in the same place
this produced a 40% performance improvement in a simulation with 800 item entities.

If the items were all different, then this would still be a problem. However, many of the same unstackable items occupying the same space is a problem for SkyBlock farms, so this should improve performance for SkyBlock quite a bit.
2023-07-31 11:29:12 +01:00
dependabot[bot]
befd3637f6
Bump shivammathur/setup-php from 2.25.4 to 2.25.5 (#5951)
Bumps [shivammathur/setup-php](https://github.com/shivammathur/setup-php) from 2.25.4 to 2.25.5.
- [Release notes](https://github.com/shivammathur/setup-php/releases)
- [Commits](https://github.com/shivammathur/setup-php/compare/2.25.4...2.25.5)

---
updated-dependencies:
- dependency-name: shivammathur/setup-php
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-31 11:13:51 +01:00
Dylan K. Taylor
9b2a7b43c2
ItemEntity: fixed O(n^2) performance issue when many of the same unstackable item are in the same place
this produced a 40% performance improvement in a simulation with 800 item entities.

If the items were all different, then this would still be a problem. However, many of the same unstackable items occupying the same space is a problem for SkyBlock farms, so this should improve performance for SkyBlock quite a bit.
2023-07-28 16:06:29 +01:00
Dylan K. Taylor
5ec3f4655f
EntityDamageByEntityEvent: added APIs to get and set vertical knockback limits
this was requested and PR'd as far back as 2020 (see #3782).
Since no issue was filed about this, it became forgotten until #5946.
However, #5946 overcomplicates the solution to the problem, and breaks BC without an obvious reason.
2023-07-28 12:52:15 +01:00
Dylan K. Taylor
c972e65741
EntityDamageByEntityEvent: document methods 2023-07-28 12:41:27 +01:00
Dylan K. Taylor
a45763328b
Added constants for default knockback force and vertical limit 2023-07-28 12:36:46 +01:00
Dylan T
82a5ea9ed3
Allow thread errors and their traces to be properly recorded in crashdumps (#5910)
until now, any thread crash would show as a generic crash since we aren't able to get the trace from the crashed thread directly. This uses some dirty tricks to export a partially serialized stack trace to the main thread, where it can be written into a crashdump.
This enables us to see proper crash information for async tasks in the crash archive (finally!!!) as well as being able to capture RakLib errors properly.
2023-07-26 16:26:03 +01:00
rasu3n
bbdcab7277
Player: Added animation to missSwing() (#5942) 2023-07-26 10:04:36 +01:00
ipad54
6086ef667c
Added handling for attack-air action (#5912) 2023-07-25 14:50:28 +01:00
Dylan K. Taylor
486d4099df
5.3.4 is next 2023-07-24 17:29:59 +01:00
Dylan K. Taylor
a1f34a460b
Release 5.3.3 5.3.3 2023-07-24 17:29:56 +01:00
Dylan K. Taylor
5ff03c81f8
Merge branch 'legacy/pm4' into stable 2023-07-24 17:00:13 +01:00
Dylan K. Taylor
1c611a03e6
4.23.4 is next 2023-07-24 16:59:48 +01:00
Dylan K. Taylor
948875b025
Release 4.23.3 4.23.3 2023-07-24 16:59:45 +01:00
Dylan K. Taylor
fb43f59458
Merge branch 'stable' into minor-next 2023-07-24 16:45:49 +01:00
Dylan K. Taylor
16dfd27935
Merge branch 'legacy/pm4' into stable 2023-07-24 16:45:24 +01:00
Dylan K. Taylor
2a4909d328
Fixed missing handling for some ContainerUIIds
SMITHING_TABLE_TEMPLATE is new in 1.20
HORSE_EQUIP was always present, but somehow got overlooked when building up that big ugly switch table
2023-07-24 16:44:01 +01:00
Dylan K. Taylor
b078e01b65
JwtUtils: handle DER <-> raw signature conversion in-house, drop fgrosse/phpasn1 dependency
normally I would hesitate to reinvent the wheel, but we only need a tiny subset of the ASN.1 spec which is trivial to implement by itself.
I'd rather this than depend on another library that could introduce security vulnerabilities (I'm looking at you, jsonmapper).

closes #5935
2023-07-24 13:36:12 +01:00
dohwi
4eb9dacd3c
Remove unnecessary HorizontalFacingTrait (#5930)
FacingOppositePlacingPlayerTrait already includes HorizontalFacingTrait, so we don't need to include it twice.
2023-07-24 12:16:56 +01:00
Dylan K. Taylor
43770313ba
Update symfony/filesystem to 6.3.x 2023-07-24 12:07:32 +01:00
Dylan K. Taylor
3afe3b7f44
Merge branch 'stable' into minor-next 2023-07-24 12:02:24 +01:00
Dylan K. Taylor
fd23281183
Merge branch 'legacy/pm4' into stable 2023-07-24 12:00:29 +01:00
Dylan K. Taylor
70dd8732e2
Update build/php to pmmp/PHP-Binaries@46604f2f6a 2023-07-24 11:59:11 +01:00
Dylan K. Taylor
cdf72563f4
Update composer dependencies 2023-07-24 11:58:50 +01:00
Dylan K. Taylor
2779f92828
Bell: clean up code 2023-07-21 15:29:33 +01:00
Dylan K. Taylor
5899f2fc1d
Block: introduce new methods to reduce support type boilerplate checks
this switches from a 'can be supported by' concept to a 'can stay at this position' paradigm, which requires way less boilerplate code.

there may be further improvements we can make from here, such as adding traits, but this is a good first step.
2023-07-21 15:02:25 +01:00
Dylan K. Taylor
9ef835c82d
Merge remote-tracking branch 'origin/legacy/pm4' into stable 2023-07-21 11:07:32 +01:00