Commit Graph

1213 Commits

Author SHA1 Message Date
Dylan K. Taylor
ae50b952f1 Accept 1.19.63 (same protocol, different protocol version) 2023-02-24 22:15:58 +00:00
Dylan K. Taylor
c82b43a586 Merge branch 'next-minor' into next-major 2023-02-23 22:00:14 +00:00
Dylan K. Taylor
9acb4d64db Added generated constants for available BedrockData files
this makes it easier to detect unused files, detect removed files, and also avoid typos in usages.
2023-02-23 21:45:12 +00:00
Dylan K. Taylor
5854b1c8c2 Merge branch 'next-minor' into next-major 2023-02-22 22:51:51 +00:00
Dylan K. Taylor
8234360c8d Avoid creating batch buffers just to determine whether a batch should be globally compressed
Instead, sum together the lengths of encoded packet buffers and use that to decide whether to build the buffer or not.
2023-02-22 22:43:10 +00:00
Dylan K. Taylor
6a64486f55 StandardPacketBroadcaster: Improve performance when broadcasting small packets
In refactors during PM4, I stripped out packet buffer caching, as it was problematic when events alter packets in undetectable ways.
However, I never cleaned this part of the code up properly after enabling DataPacketSendEvent to include multiple packets and multiple targets, so we were still individually encoding the packet(s) for every single session if the sum total of the sizes was below 256 bytes.

This change encodes packets once in the StandardPacketBroadcaster and retains their buffers to post to the session's send buffer directly if the resulting batch is below compression threshold.
This code is still not optimal (see ##5589), but fixing this brings broadcasting performance back to PM3 levels, without any of PM3's problems.
2023-02-22 21:52:12 +00:00
Dylan K. Taylor
50b8d39aba Merge branch 'next-minor' into next-major 2023-02-21 15:41:57 +00:00
Dylan K. Taylor
4dbcd714bd NetworkSession: fixed some segments of recv/send logic not being covered by their respective network timings 2023-02-19 17:21:10 +00:00
Dylan K. Taylor
d5e92b4ae6 ... 2023-02-19 16:53:04 +00:00
Dylan K. Taylor
2a3288c4f9 Avoid useless throwaway PacketBatch objects 2023-02-19 16:50:03 +00:00
Dylan K. Taylor
9cdb641936 Added encode packet timings
these changes required some new APIs in BedrockProtocol.
2023-02-19 16:47:20 +00:00
Dylan K. Taylor
42df1a5c70 Fixed merge error 2023-02-17 20:19:32 +00:00
Dylan K. Taylor
0e0f5e85eb Merge branch 'next-minor' into next-major 2023-02-17 20:00:51 +00:00
Dylan K. Taylor
71aad310c6 stfu 2023-02-17 16:39:46 +00:00
Dylan K. Taylor
1e3b025916 1.19.62 2023-02-17 16:36:32 +00:00
Dylan K. Taylor
c5dcd268ad CS 2023-02-15 15:04:41 +00:00
Dylan K. Taylor
2fd6e769e6 NetworkSession: Improved packet budgeting
this fixes players getting kicked during server lag spikes.

closes #5532
2023-02-15 14:59:05 +00:00
Dylan K. Taylor
d891646d0a Fix CS 2023-02-13 14:10:42 +00:00
Dylan K. Taylor
886b40a455 ÂLocalize disconnect reasons for RakLib disconnects 2023-02-13 14:10:25 +00:00
Dylan K. Taylor
525f62e1e4 ÂRakLib 0.15 2023-02-13 14:00:16 +00:00
Dylan K. Taylor
2d56aa50b9 A bunch of mostly inseparable changes to PlayerPreLoginEvent
including support for separated disconnect reasons and disconnect screen messages (closes #4512)

While the refactoring of kick reason -> kick flag wasn't exactly in my agenda, I realized that these changes would become pretty confusing and inconsistent with other events if they weren't refactored.
Hopefully I don't have to break this API again for a while...
2023-02-13 11:32:32 +00:00
Dylan K. Taylor
074e7586cb Merge branch 'next-minor' into next-major 2023-02-11 17:17:08 +00:00
Dylan K. Taylor
475888b031 InGamePacketHandler: do not process repeated skin change requests for the same full skin ID
this fixes a feedback loop with persona skins in 1.19.60.
2023-02-08 20:16:41 +00:00
Dylan K. Taylor
40b90bb722 InGamePacketHandler: log a debug when processing skin change requests 2023-02-08 19:47:12 +00:00
Dylan K. Taylor
5a4550a4fc CS 2023-02-08 18:55:49 +00:00
Dylan K. Taylor
7bbc04e6de Silence PlayerSkinPacket debug messages during spawn response stage
the client sends its skin here in 1.19.60 for some reason, which makes no sense - I can only assume it's a bug
2023-02-08 18:55:38 +00:00
Dylan K. Taylor
3ba662f64f 1.19.60 2023-02-08 18:46:37 +00:00
Dylan K. Taylor
da5302ca86 BlockStateData: introduce and use current() 2023-02-02 16:21:50 +00:00
Dylan K. Taylor
222415859a Require pthreads ^5.1
This version of pthreads has a substantially improved API, improved
performance, improved memory usage, and much less magical and broken
behaviour.
2023-01-23 20:02:33 +00:00
Dylan K. Taylor
b8f6b66e42 First look at separating disconnect reason and disconnect screen messages (#4512) 2023-01-18 20:57:17 +00:00
Dylan K. Taylor
41e60cb62c NetworkSession: remove unnecessary translation 2023-01-18 20:36:53 +00:00
Dylan K. Taylor
072a9202ef Merge branch 'next-minor' into next-major 2023-01-18 19:05:44 +00:00
Dylan K. Taylor
d37142af4b Merge branch 'stable' into next-minor 2023-01-18 15:30:42 +00:00
Dylan K. Taylor
7c068101b7 CSÂ 2023-01-18 15:17:37 +00:00
Dylan K. Taylor
a8556dff02 RakLibInterface: include Snooze events in Connection Handler timings 2023-01-18 15:02:33 +00:00
Dylan K. Taylor
7abfc46567 First look at 3D biome support 2023-01-17 21:41:30 +00:00
Dylan K. Taylor
d9b8251f7b Merge branch 'next-minor' into next-major 2023-01-16 18:31:51 +00:00
Dylan K. Taylor
ad6a423d12 Merge branch 'stable' into next-minor 2023-01-16 18:30:13 +00:00
Dylan K. Taylor
7e16f9be8f InGamePacketHandler: handle block actions before use item transactions
the START_BREAK and transaction to break the block may arrive in the same packet, causing events to be fired in the wrong order.

fixes #5490
2023-01-16 17:50:11 +00:00
Dylan K. Taylor
950eddf405 Fix build 2023-01-13 17:57:41 +00:00
Dylan K. Taylor
69967a0e55 Properly localize jukebox popups 2023-01-13 17:48:56 +00:00
Dylan K. Taylor
ba18a81e88 NetworkSession: fixed rate limit getting exhausted after 2.5 seconds during PvP 2023-01-13 15:28:03 +00:00
Dylan K. Taylor
ecd8f151f1 Merge branch 'next-minor' into next-major 2023-01-12 22:08:25 +00:00
Dylan K. Taylor
d74719704e Merge branch 'stable' into next-minor 2023-01-12 19:02:07 +00:00
Dylan K. Taylor
992cb06da6 NetworkSession: fixed rate limit not being increased correctly on Windows
due to the 15ms scheduler interval, the server will often sleep 45ms instead of 50ms, which causes the budget not to get updated.
2023-01-09 00:01:56 +00:00
Dylan K. Taylor
bb3f87f862 NetworkSession: allow 2 batches per tick
apparently InventoryTransactionPacket may arrive outside of the normal update cycle, since it's prioritized to reduce latency.
2023-01-09 00:00:39 +00:00
Dylan K. Taylor
d2eddf9d33 relocate comments 2023-01-08 20:56:51 +00:00
Dylan K. Taylor
0233e74f4f NetworkSession: micro optimisation - do not check if a debugger is active unless the packet limit is exceeded 2023-01-08 19:45:14 +00:00
Dylan K. Taylor
dd355c58d8 NetworkSession: fix CS 2023-01-08 19:35:43 +00:00
Dylan K. Taylor
267032cff9 NetworkSession: do not rate limit packets if a debugging session is active 2023-01-08 19:31:39 +00:00