270 Commits

Author SHA1 Message Date
Dylan K. Taylor
18b528f72d
ItemStackRequestExecutor: fixed borked taking of created items
closes #5695
2023-04-12 21:01:46 +01:00
Dylan K. Taylor
9e9b4db00f
Merge branch 'stable' into minor-next 2023-04-10 14:32:33 +01:00
Dylan K. Taylor
7b55c984bf
InGamePacketHandler: reduce debug noise on outdated movements 2023-04-07 21:40:46 +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
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
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
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
3ee62d8440
InGamePacketHandler: increase max ItemStackRequest actions to 60
due to implementation quirks + some unforeseen ways these actions can behave, there can be as many as 53 actions in a single crafting request. This is an edge case, but it has to be catered for.
2023-03-27 15:44:42 +01:00
Dylan K. Taylor
811639f2cd
InGamePacketHandler: relax errors on normal transactions to fix book editing
for some reason book edits generate a transaction in addition to BookEditPacket. PM has never used the transaction, and it doesn't pass anyway because CreateItemAction can't be used in survival mode.
However, since the strict validation introduced since ItemStackRequest, this dud transaction now causes the player to get kicked without these changes.
2023-03-27 13:26:26 +01:00
Dylan K. Taylor
58974765a6
InGamePacketHandler: fixed crash when attempting to drop more of an item than is available 2023-03-27 13:26:26 +01:00
Dylan K. Taylor
ea386c42d3
InGamePacketHandler: fixed dropping items from unselected hotbar slots 2023-03-21 14:45:18 +00:00
Dylan K. Taylor
1a9322c00a
ItemStackRequestExecutor: added some missing @throws 2023-03-21 00:23:31 +00:00
Dylan K. Taylor
c8d9477da1
ItemStackRequestExecutor: make non-final, and make some stuff protected
this allows for plugin extension, for example to implement anvils.
2023-03-21 00:22:21 +00:00
Dylan K. Taylor
08e8ef275f
remove comment 2023-03-21 00:17:24 +00:00
Dylan K. Taylor
e57fbff28c
ItemStackRequestExecutor: added a sanity check for recipe repetitions 2023-03-21 00:16:03 +00:00
Dylan K. Taylor
f90315c4a2
ItemStackRequestExecutor: harden against invalid item counts
these cases should all be impossible, but that's assuming that the core code doesn't start using them for a different purpose in the future.
2023-03-21 00:13:21 +00:00
Dylan K. Taylor
955f7944bb
ItemStackRequestExecutor: fixed another possible crash condition 2023-03-21 00:06:33 +00:00
Dylan K. Taylor
ccd288d7fa
Avoid repeated calls to getItemInHand() in drop item handler 2023-03-21 00:04:29 +00:00
Dylan K. Taylor
097632902a
InGamePacketHandler: fixed crash condition in drop item handler 2023-03-21 00:02:32 +00:00
Dylan K. Taylor
ee72e80fbb
ItemStackResponseBuilder: removed incorrect code
the client expects that all itemstacks must be acked by ItemStackResponse, regardless of whether the server changed them to some other item.
We'll overwrite the item to the correct thing at the end of the tick anyway.
2023-03-20 23:21:24 +00:00
Dylan K. Taylor
63310cf764
Do not cache ItemStacks for every item
this is very memory inefficient, and only provides a performance advantage in cold code anyway.
2023-03-20 23:18:43 +00:00
Dylan K. Taylor
8408da8534
Merge branch 'item-stack-request' into minor-next 2023-03-20 22:05:50 +00:00
Dylan K. Taylor
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
Dylan K. Taylor
c91168db66
... 2023-03-20 01:35:15 +00:00
Dylan K. Taylor
4e55433ed8
Fixed request rejecting 2023-03-20 01:35:03 +00:00
Dylan K. Taylor
eece6c4433
InGamePacketHandler: remove dead code 2023-03-20 01:28:18 +00:00
Dylan K. Taylor
67b7b60d18
.............. 2023-03-20 01:19:07 +00:00
Dylan K. Taylor
804feedb67
Added some dumb limits 2023-03-20 00:54:33 +00:00
Dylan K. Taylor
d57aca1367
CS 2023-03-20 00:53:00 +00:00
Dylan K. Taylor
7b0816e42f
Properly handle transaction building errors instead of kicking the player 2023-03-20 00:52:26 +00:00
Dylan K. Taylor
4864444440
Added CraftingManager::getCraftingRecipeFromIndex() 2023-03-19 22:14: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
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
3de7a8c27f
Updated for 1.19.70 2023-03-14 18:08:10 +00:00
Dylan K. Taylor
e7209679fb
... 2023-02-24 22:23:00 +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
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
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
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
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
d2eddf9d33
relocate comments 2023-01-08 20:56:51 +00:00
Dylan K. Taylor
4a3d9f8f83
Make client-aware translation handling more coherent
I have no clear idea why this was still using translateString(), since it's entirely unnecessary when we aren't selectively translating.
2023-01-08 16:45:57 +00:00
Dylan K. Taylor
1c96e7936c
Remove dead translation code
we don't translate raw string parameters anywhere else these days, so there's no reason to do so here either. The parameters array is already reduced to string[] by this point anyway.
2023-01-08 16:20:05 +00:00
Dylan K. Taylor
faaec12aaf
Update BedrockProtocol 2023-01-06 22:16:29 +00:00
Dylan K. Taylor
d3cea2ca7c
CS 2023-01-06 02:07:31 +00:00
Dylan K. Taylor
ece49f011c
Merge branch 'stable' into next-minor 2023-01-06 01:50:17 +00:00