ca6d51498f
Buffer slot and content syncing until the end of the tick
...
we may receive multiple requests in one tick (e.g. crafting in a batch)
2023-03-20 19:16:00 +00:00
e8085e22a0
Fixed crash when opening main inventory
...
the InventoryManagerEntry was getting overwritten, since we don't expect to open the same inventory with two different window IDs.
2023-03-20 18:40:18 +00:00
a83fc85f1e
InventoryManagerEntry: fixed missing default
2023-03-20 17:32:44 +00:00
3d70a169e1
Reduce chaos in InventoryManager
...
the information in these arrays is usually needed all at the same time, so it doesn't make sense to force multiple array lookups for it.
in addition, this (obviously) cleans up the code quite a lot.
2023-03-20 17:31:54 +00:00
6ccb8f7373
git
2023-03-20 16:57:38 +00:00
59bae9b077
Give InventoryManager internals clearer names
...
and stop mixing 'window' and 'inventory' terminology...
2023-03-20 16:53:57 +00:00
c91168db66
...
2023-03-20 01:35:15 +00:00
4e55433ed8
Fixed request rejecting
2023-03-20 01:35:03 +00:00
eece6c4433
InGamePacketHandler: remove dead code
2023-03-20 01:28:18 +00:00
67b7b60d18
..............
2023-03-20 01:19:07 +00:00
804feedb67
Added some dumb limits
2023-03-20 00:54:33 +00:00
d57aca1367
CS
2023-03-20 00:53:00 +00:00
7b0816e42f
Properly handle transaction building errors instead of kicking the player
2023-03-20 00:52:26 +00:00
4864444440
Added CraftingManager::getCraftingRecipeFromIndex()
2023-03-19 22:14:23 +00:00
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
a573a279fa
Merge branch 'minor-next' into item-stack-request
2023-03-14 22:25:49 +00:00
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
daff955bc4
Merge remote-tracking branch 'origin/stable' into minor-next
2023-03-14 18:42:14 +00:00
0022d82779
Merge commit 'd376399b7f332384532a82eaf69b9b02dad5bd0c' into minor-next
2023-03-14 18:39:03 +00:00
3de7a8c27f
Updated for 1.19.70
2023-03-14 18:08:10 +00:00
8e280ebb8b
RuntimeBlockMapping: avoid unnecessary PacketSerializer usage
2023-03-11 22:16:24 +00:00
fa7c38276c
Fixing gigantic clusterfuck with protocol contexts and broadcasting
...
fixes #5623
2023-03-11 21:54:14 +00:00
b13e97de3d
Timings: fixed receivePacket timer showing 2x the actual number of received packets
2023-03-11 19:13:10 +00:00
3db1492c18
Fix CS again
2023-03-04 16:43:29 +00:00
a523189149
Added separate timings for broadcast and session buffer compression
2023-03-04 16:41:41 +00:00
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
aaec21f544
Compressor: Use minCompressionThreshold exclusively
...
closes #5589
2023-03-04 15:07:50 +00:00
0fcd2e7894
Merge branch 'stable' into next-minor
2023-02-28 19:23:25 +00:00
e7209679fb
...
2023-02-24 22:23:00 +00:00
ae50b952f1
Accept 1.19.63 (same protocol, different protocol version)
2023-02-24 22:15:58 +00:00
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
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
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
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
d5e92b4ae6
...
2023-02-19 16:53:04 +00:00
2a3288c4f9
Avoid useless throwaway PacketBatch objects
2023-02-19 16:50:03 +00:00
9cdb641936
Added encode packet timings
...
these changes required some new APIs in BedrockProtocol.
2023-02-19 16:47:20 +00:00
71aad310c6
stfu
2023-02-17 16:39:46 +00:00
1e3b025916
1.19.62
2023-02-17 16:36:32 +00:00
c5dcd268ad
CS
2023-02-15 15:04:41 +00:00
2fd6e769e6
NetworkSession: Improved packet budgeting
...
this fixes players getting kicked during server lag spikes.
closes #5532
2023-02-15 14:59:05 +00:00
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
40b90bb722
InGamePacketHandler: log a debug when processing skin change requests
2023-02-08 19:47:12 +00:00
5a4550a4fc
CS
2023-02-08 18:55:49 +00:00
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
3ba662f64f
1.19.60
2023-02-08 18:46:37 +00:00
d37142af4b
Merge branch 'stable' into next-minor
2023-01-18 15:30:42 +00:00
7c068101b7
CSÂ
2023-01-18 15:17:37 +00:00
a8556dff02
RakLibInterface: include Snooze events in Connection Handler timings
2023-01-18 15:02:33 +00:00
ad6a423d12
Merge branch 'stable' into next-minor
2023-01-16 18:30:13 +00:00