17435 Commits

Author SHA1 Message Date
Dylan K. Taylor
24374297e7
NetworkSession: extract rate limiting functionality into its own unit, and apply a separate rate limit to game packets 2023-04-10 13:53:22 +01:00
Dylan K. Taylor
76ebedff6a
HandlerList: remove unnecessary variable 2023-04-07 22:58:30 +01:00
Dylan K. Taylor
3ea8d27a3b
HandlerList: improve listener list development to make way for #5678 2023-04-07 22:55:27 +01:00
Dylan K. Taylor
d6c923b525
ExperienceOrb: add get/setDespawnDelay
closes #5645

the code for this is borrowed from ItemEntity. I didn't feel like a base class was appropriate, and we can't (yet) declare constants in traits.
2023-04-07 22:33:30 +01:00
Dylan K. Taylor
7b55c984bf
InGamePacketHandler: reduce debug noise on outdated movements 2023-04-07 21:40:46 +01:00
Dylan K. Taylor
f5b4d64668
Player: increase max distance between movements to allow high levels of speed to work correctly
speed 255 may allow the player to move as much as 14.8 blocks per tick when sprinting.
2023-04-07 21:35:58 +01:00
Dylan K. Taylor
1683aa681d
TimingsHandler: added format version 2023-04-06 15:08:49 +01:00
Dylan K. Taylor
bf84caa02c
Timings: record peak tick time and active ticks
this information is useful for determining the sizes of lag spikes, and giving more accurate average times.
2023-04-06 15:05:40 +01:00
Dylan K. Taylor
734adec90d
TimingsCommand: log the response body on failed paste 2023-04-06 14:46:02 +01:00
Dylan K. Taylor
4724195791
Improved performance of event calls
This change significantly reduces the amount of work done by event handlers. Instead of traversing all of the priorities and event parent chain multiple times, we reduce event handlers down to a simple list, which doesn't require any logic to iterate over.
Previously, calling an event with lots of parents costed more than an event which directly descended from Event.
In addition, we had to do a lot of usually useless work to check all priorities, when in practice, only NORMAL will be used in almost all cases.

This change makes it more cost effective to implement the feature suggested by #5678; however, it will still require additional changes.
2023-04-05 23:02:44 +01:00
Dylan K. Taylor
f32a853bd4
HandlerList: remove useless isset 2023-04-05 21:37:08 +01:00
Dylan K. Taylor
dbcd2b1e65
ItemTypeIds::toBlockTypeId() now returns null for non-blockitem IDs
closes #5648
2023-04-05 21:04:00 +01:00
Dylan K. Taylor
61b0ad3e7f
PreSpawnPacketHandler: added dedicated timer for the humongous amount of crap that has to be sent pre-spawn 2023-04-05 20:58:49 +01:00
Dylan K. Taylor
b2f755720d
Use a proper Breakdown timing group instead of the unwieldy INCLUDED_BY_OTHER_TIMINGS_PREFIX 2023-04-05 20:47:47 +01:00
Dylan K. Taylor
8ef2780dcd
Use group format for tasks 2023-04-05 20:35:54 +01:00
Dylan K. Taylor
7e1467f3f7
Merge branch 'minor-next' into major-next 2023-04-05 20:14:59 +01:00
Dylan K. Taylor
b19c7212ab
Merge branch 'stable' into minor-next 2023-04-05 20:12:31 +01:00
Dylan K. Taylor
14c1a9550d
Update composer dependencies 2023-04-05 20:12:21 +01:00
Dylan K. Taylor
9037d5f16b
4.18.4 is next 2023-04-05 20:07:38 +01:00
Dylan K. Taylor
8b64ea9e65
Release 4.18.3 4.18.3 2023-04-05 20:07:23 +01:00
Dylan K. Taylor
2936726bf8
Fixed packets sent by EntityEventBroadcaster not firing DataPacketSendEvent
closes #5670

I'm not super happy with this fix, since it can still be broken if StandardPacketBroadcaster is replaced by something else. However, fixing that problem is probably going to require internal BC breaks, which are not suitable for a patch release.
2023-04-03 22:46:14 +01:00
Dylan K. Taylor
9cd07f6721
NetworkBroadcastUtils: remove dead code
we don't allow changing the target list anymore, since it increases internal complexity, so this code is redundant.
2023-04-03 22:37:22 +01:00
Dylan K. Taylor
4bb8daa1a5
ItemStackRequestExecutor: allow any action to take from the created output slot
fixes #5679
2023-04-03 22:24:40 +01:00
Dylan K. Taylor
6e8eda4ac1
Fixed creative inventory items getting modified by ItemStackRequests 2023-04-03 22:22:21 +01:00
Dylan K. Taylor
73522d06ef
... 2023-03-31 21:51:07 +01:00
Dylan K. Taylor
a6a360d179
Revert "Be more concise in event handler timing names"
This reverts commit 9db7e5f0ca984f17d6a8218d1c74b9be1c605863.
2023-03-31 21:51:00 +01:00
Dylan K. Taylor
199ef7401f
Revert "Timings: do not shorten event handler timing names"
This reverts commit a2ff9649d5f9a14a2bb6e9ab7bab4ea731d225a3.
2023-03-31 21:49:25 +01:00
Dylan K. Taylor
d731f5485a
Merge branch 'minor-next' into major-next 2023-03-31 21:29:42 +01:00
Dylan K. Taylor
f63d349be4
Merge remote-tracking branch 'origin/stable' into minor-next 2023-03-31 21:28:14 +01:00
Dylan T
02e11b5a60
Timings tree (#5587)
Split timings into tree reports
this will allow the timings site to display timings as a tree, instead of as a list as is done now, which will enable more precise identification of performance issues.

An example of this can be seen here: https://timings.pmmp.io/?id=302629

The format changes are fully backwards compatible, as the timings site
aggregates timings from timers with the same names, and doesn't limit
how much extra data can appear at the end of a line.
2023-03-31 21:26:58 +01:00
Dylan K. Taylor
4a770e5801
CS 2023-03-31 20:32:42 +01:00
Dylan K. Taylor
a2ff9649d5
Timings: do not shorten event handler timing names
this doesn't work very well in tree view timings
2023-03-31 19:44:06 +01:00
Dylan K. Taylor
a862cf5144
Workaround ItemStackRequest offhand incorrect slot bug
closes #5667

this appears to be a client bug specific to ItemStackRequest.
2023-03-31 17:27:11 +01:00
Dylan K. Taylor
5ac0d7ae11
TimingsRecord: fixed incorrect violations calculation
closes #5665
2023-03-31 17:08:59 +01:00
Dylan K. Taylor
0c47455b24
Timings: ensure that Average Players count is shown properly when custom player classes are used 2023-03-30 18:12:06 +01:00
Dylan K. Taylor
09bff60b04
Merge branch 'minor-next' into major-next 2023-03-29 23:57:19 +01:00
Dylan K. Taylor
821dd8885b
Merge branch 'stable' into minor-next 2023-03-29 23:56:08 +01:00
Dylan K. Taylor
a78ae73119
4.18.3 is next 2023-03-29 23:52:31 +01:00
Dylan K. Taylor
17a1266056
Release 4.18.2 4.18.2 2023-03-29 23:52:31 +01:00
Dylan K. Taylor
217d7ab4cf
Merge tag '4.17.2' into stable 2023-03-29 23:50:58 +01:00
Dylan K. Taylor
9e8c0a6bea
Release 4.17.2 4.17.2 2023-03-29 23:47:49 +01:00
Dylan K. Taylor
dc1b5a9285
it might help if we actually included the fix 2023-03-29 23:46:53 +01:00
Dylan K. Taylor
c3a16d9b1f
ItemStackResponseBuilder: fixed durability appearing to reset when moving durables around the inventory
closes #5656
2023-03-29 23:31:46 +01:00
Dylan K. Taylor
982d05affd
Merge branch 'major-next' of github.com:pmmp/PocketMine-MP into major-next 2023-03-29 23:22:12 +01:00
Dylan K. Taylor
10f3145af2
Merge branch 'minor-next' into major-next 2023-03-29 23:22:02 +01:00
Dylan K. Taylor
bed218d1dd
Fixed the first letter of event timing names getting trimmed off when src-namespace-prefix is not used 2023-03-29 23:11:30 +01:00
Dylan K. Taylor
5e1f837a73
... 2023-03-28 22:46:18 +01:00
Dylan K. Taylor
b49a9ae81d
Added timings for calling events
this gives a somewhat better overview of events, particularly if many plugins are subscribed to the same costly event (e.g. PlayerMoveEvent).

In addition, it allows us to see the frequency that events are occurring.
2023-03-28 17:26:20 +01:00
IvanCraft623
bea878e9e9
Implement anvil fall damage (#5312) 2023-03-27 20:17:08 +01:00
Dylan K. Taylor
04197d6b80
Merge remote-tracking branch 'origin/minor-next' into major-next 2023-03-27 19:08:34 +01:00