Commit Graph

13625 Commits

Author SHA1 Message Date
Dylan K. Taylor
419962d3a2 Added timer for player-specific movement code
players use an entirely different pathway for movement processing, which could be costly.
2023-03-19 16:12:47 +00:00
Dylan K. Taylor
054c06fab9 Add specialized entityBaseTick timer for item entities
since item merging is a potential hotspot, we want to know if this code section is a performance problem.
Current timers only tell us whether overall ticking of a particular entity is slow, but that includes movement and therefore isn't particularly helpful.
2023-03-19 15:59:06 +00:00
Dylan K. Taylor
7bc5d8c824 Rename more timers 2023-03-19 15:57:36 +00:00
Dylan K. Taylor
607bdfa42f Timings: added new timers for entity move collision checks and projectile move ray tracing
projectiles get their own distinct sub-timer, since the logic is completely different from regular entities.
2023-03-19 15:49:35 +00:00
Dylan K. Taylor
eec53f9ae0 Timings: clean up timer names 2023-03-19 15:39:44 +00:00
Dylan K. Taylor
3d56bd267c Timings: fixup network timer inheritance 2023-03-18 23:13:25 +00:00
Dylan K. Taylor
9a969e21c7 ÂNetworkSession: ensure onResolve handler for CompressBatchPromise is covered by network send timings 2023-03-18 22:49:52 +00:00
Dylan K. Taylor
195bc3b623 NetworkSession: prevent dev client asserts from missing ability flags 2023-03-18 21:53:17 +00:00
Dylan K. Taylor
765aef0810 4.18.0-ALPHA2 is next 2023-03-16 21:45:21 +00:00
Dylan K. Taylor
bd21feffc4 Release 4.18.0-ALPHA1 2023-03-16 21:45:18 +00:00
Dylan K. Taylor
ef45180b80 Rename DataPacketPreReceiveEvent -> DataPacketDecodeEvent
thank you @IvanCraft623 for the suggestion
2023-03-16 13:40:37 +00:00
Dylan K. Taylor
941fd03998 Remove useless code 2023-03-15 22:58:10 +00:00
Dylan K. Taylor
1af8da3c1f Merge branch 'minor-next' of github.com:pmmp/PocketMine-MP into minor-next 2023-03-15 22:54:05 +00:00
Dylan K. Taylor
a5985dcf7d Merge branch 'stable' into minor-next 2023-03-15 22:53:44 +00:00
Armen Deroian
183d1f4038 Implement DataPacketPreReceiveEvent (#5559)
closes #5554

This is called just before the packet is decoded, allowing the event to be used to drop packets from clients without wasting CPU time decoding them. This can be particularly useful for mitigating denial-of-service attacks.
2023-03-15 22:47:19 +00:00
Dylan K. Taylor
08ee825d91 StandardPacketBroadcaster: Include varint length prefix in length calculation
varints encode 7 bits per byte, so a log with base 128 will tell us how many bytes are required to encode the length of the packet.
2023-03-15 22:41:19 +00:00
Dylan K. Taylor
337a254768 Use NetworkBroadcastUtils for broadcasting packets
this eradicates all but 4 usages of Server in Entity, which is extremely cool.
2023-03-15 22:28:51 +00:00
Dylan K. Taylor
a31e3331fd Move Server::broadcastPackets() to NetworkBroadcastUtils::broadcastPackets()
this has no business being in Server, and it also doesn't need to be an instance method, since it never uses $this.
2023-03-15 22:25:23 +00:00
Dylan K. Taylor
cc8660629b First look at shared EntityEventBroadcaster,
this improves performance in PvP servers and other areas where lots of players or entities exist in one space.

fixes #5622
2023-03-15 18:22:56 +00:00
Dylan K. Taylor
e7e19abe85 IPv4 and IPv6 RakLibInterface instances now both use the same broadcaster and context
fixes #5625
2023-03-15 17:17:56 +00:00
Dylan K. Taylor
5f9e0081fd Fixed mushroom block silk-touch drops and block picking behaviour
fixes #5284
2023-03-15 16:36:35 +00:00
Dylan K. Taylor
34ced382db Eliminate final remaining usage of TypeConverter::netItemStackToCore()
instead, we can verify that the held items match by comparing the received ItemStack with the one cached in InventoryManager, which is more cost effective and closes off internal item deserializers to external attacks.
2023-03-14 22:56:11 +00:00
Dylan K. Taylor
a573a279fa Merge branch 'minor-next' into item-stack-request 2023-03-14 22:25:49 +00:00
Dylan K. Taylor
14f141fab2 NetworkSession: Stop counting DataPacketReceiveEvent in handler timings
we want it to be included in receive timings, but not handler timings. Handler timings should reflect the time spent in the actual session PacketHandler, not in the event.
2023-03-14 19:00:15 +00:00
Dylan K. Taylor
daff955bc4 Merge remote-tracking branch 'origin/stable' into minor-next 2023-03-14 18:42:14 +00:00
Dylan K. Taylor
0022d82779 Merge commit 'd376399b7f332384532a82eaf69b9b02dad5bd0c' into minor-next 2023-03-14 18:39:03 +00:00
Dylan K. Taylor
590f6dad08 4.17.1 is next 2023-03-14 18:14:40 +00:00
Dylan K. Taylor
9564c81582 Release 4.17.0 2023-03-14 18:14:40 +00:00
Dylan K. Taylor
3de7a8c27f Updated for 1.19.70 2023-03-14 18:08:10 +00:00
Dylan K. Taylor
8e280ebb8b RuntimeBlockMapping: avoid unnecessary PacketSerializer usage 2023-03-11 22:16:24 +00:00
Dylan K. Taylor
fa7c38276c Fixing gigantic clusterfuck with protocol contexts and broadcasting
fixes #5623
2023-03-11 21:54:14 +00:00
Dylan K. Taylor
b13e97de3d Timings: fixed receivePacket timer showing 2x the actual number of received packets 2023-03-11 19:13:10 +00:00
Dylan K. Taylor
3aec0fa3df 4.16.1 is next 2023-03-07 16:19:51 +00:00
Dylan K. Taylor
fa131dab12 Release 4.16.0 2023-03-07 16:19:50 +00:00
Dylan K. Taylor
e227e6d8bf Merge branch 'stable' into next-minor 2023-03-04 16:55:56 +00:00
Dylan K. Taylor
035d4b7263 MemoryManager: stringify floats, fixes #5598 2023-03-04 16:47:58 +00:00
Dylan K. Taylor
3db1492c18 Fix CS again 2023-03-04 16:43:29 +00:00
Dylan K. Taylor
a523189149 Added separate timings for broadcast and session buffer compression 2023-03-04 16:41:41 +00:00
Dylan K. Taylor
f8893efb94 Don't bother with global batch compression if there is only 1 recipient
this allows the session to achieve better ratios, and also reduces worker pool spam.
2023-03-04 16:34:00 +00:00
Dylan K. Taylor
eb2f0ed3d0 4.16.0-BETA3 is next 2023-03-04 16:19:34 +00:00
Dylan K. Taylor
14e7d3e143 Release 4.16.0-BETA2 2023-03-04 16:19:34 +00:00
Dylan K. Taylor
6d636fc2c7 4.16.0-BETA2 is next 2023-03-04 16:18:04 +00:00
Dylan K. Taylor
a39f61a33d Release 4.16.0-BETA1 2023-03-04 16:18:01 +00:00
Dylan K. Taylor
aaec21f544 Compressor: Use minCompressionThreshold exclusively
closes #5589
2023-03-04 15:07:50 +00:00
Dylan K. Taylor
0fcd2e7894 Merge branch 'stable' into next-minor 2023-02-28 19:23:25 +00:00
Dylan K. Taylor
e7209679fb ... 2023-02-24 22:23:00 +00:00
Dylan K. Taylor
d92173cded 4.15.3 is next 2023-02-24 22:18:34 +00:00
Dylan K. Taylor
308cdb6863 Release 4.15.2 2023-02-24 22:18:34 +00:00
Dylan K. Taylor
ae50b952f1 Accept 1.19.63 (same protocol, different protocol version) 2023-02-24 22:15:58 +00:00
Dylan K. Taylor
f704bfb63a Use BedrockData 2.0.0 2023-02-23 21:52:17 +00:00