Dylan K. Taylor
ed11fd5a83
CS again...
2023-05-06 17:51:00 +01:00
Dylan K. Taylor
e0a6ec0c24
Start deglobalizing TypeConverter
...
there's a bunch of places we can't reach with this right now:
- particles
- sounds
- tile NBT
- entity metadata
- crafting data cache
- chunk encoding
- world block update encoding
this is a work in progress, but ultimately we want to get rid of these singletons entirely.
2023-05-06 17:47:09 +01:00
Dylan K. Taylor
5c7f4570b4
Merge branch 'minor-next' into major-next
2023-05-06 17:20:37 +01:00
Dylan K. Taylor
7c19f14cf5
Fixed up offhand handling for ItemStackRequest, fixes #5723
2023-04-27 13:25:08 +01:00
Dylan K. Taylor
0dca85af44
Merge branch 'minor-next' into major-next
2023-04-26 23:28:27 +01:00
Dylan K. Taylor
0d21e591d1
Support sign editing UI in 1.19.80, with APIs to allow plugins to use it
...
this doesn't support editing the rear side of a sign, since the 1.12 format doesn't allow us to represent the rear text, and it would necessitate API breaks to support anyway.
However, we can quite trivially support APIs for the sign GUI, which plugins can use to enable editing signs. PocketMine-MP doesn't currently permit this, since it's currently an experimental feature in 1.20, but plugins can simply use Player->openSignEditor() to mimic it.
This is, however, a byproduct of the fact that APIs needed to be added in order to facilitate the use of OpenSignPacket in 1.19.80.
2023-04-26 22:55:05 +01:00
Dylan K. Taylor
a0346fb6d3
Merge branch 'minor-next' into major-next
2023-04-26 14:29:32 +01:00
Dylan K. Taylor
a4f2b99ed5
InGamePacketHandler: queue slots for syncing if they appear in requestChangedSlots
...
this is essentially a prediction without the actual predicted item. We have to sync these regardless of what happens.
fixes #5708
2023-04-24 14:06:29 +01:00
Dylan K. Taylor
a0dadc6e37
Merge branch 'minor-next' into major-next
2023-04-10 14:38:23 +01:00
Dylan K. Taylor
7b55c984bf
InGamePacketHandler: reduce debug noise on outdated movements
2023-04-07 21:40:46 +01:00
Dylan K. Taylor
10f3145af2
Merge branch 'minor-next' into major-next
2023-03-29 23:22:02 +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
3b11191043
Merge remote-tracking branch 'origin/minor-next' into major-next
2023-03-22 22:49:22 +00:00
Dylan K. Taylor
ea386c42d3
InGamePacketHandler: fixed dropping items from unselected hotbar slots
2023-03-21 14:45:18 +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
a4d34be6df
Merge branch 'minor-next' into major-next
2023-03-20 23:42:40 +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
453ad997e9
Merge branch 'item-stack-request' into item-stack-request-pm5
2023-03-20 22:05:12 +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
804feedb67
Added some dumb limits
2023-03-20 00:54:33 +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
6c29c3d2dd
Merge branch 'item-stack-request' into item-stack-request-pm5
2023-03-14 22:56:47 +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
dace20ad1f
Merge branch 'item-stack-request' into item-stack-request-pm5
2023-03-14 22:34:47 +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
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
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
c2918709a3
Merge branch 'next-minor' into next-major
2023-01-06 01:59:04 +00:00
Dylan K. Taylor
ece49f011c
Merge branch 'stable' into next-minor
2023-01-06 01:50:17 +00:00
Dylan K. Taylor
5d6dba96af
Merge branch 'stable' into item-stack-request
2023-01-06 01:47:27 +00:00
Dylan K. Taylor
3baa5ab712
InGamePacketHandler: removed obsolete workaround
2023-01-06 00:41:57 +00:00
Dylan K. Taylor
b24eb153f9
Constrain inventory transaction predictions
...
these are now only used for actions done with a closed inventory window. This means that they can only predict the slots of inventory, offhand and armor (total 41 slots) and perhaps include some DropItem actions.
2023-01-05 21:18:30 +00:00
Dylan K. Taylor
eedc943766
Confine legacy transaction handling to dropping items only
2023-01-05 17:23:50 +00:00
Dylan K. Taylor
5fdbb19852
Fixed a whole bunch of issues with legacy transactions
2023-01-04 00:13:51 +00:00
Dylan K. Taylor
d8d236842f
Fixed merge error
2023-01-03 19:54:41 +00:00
Dylan K. Taylor
f51717323b
Merge branch 'stable' into item-stack-request
2023-01-03 19:53:25 +00:00
Dylan K. Taylor
0e4b79ea77
InGamePacketHandler: fixed client-side predictions not getting rolled back for block placementÂ
2023-01-03 19:43:21 +00:00
Dylan K. Taylor
b312e93176
Limit list max size in transactions
...
this duct tape is to limit the impact of a security vulnerability being actively exploited.
2023-01-02 22:59:48 +00:00
Alexey
0d31b25fba
Use str_starts_with and str_contains instead of strpos ( #5482 )
2022-12-30 21:41:30 +00:00
Dylan K. Taylor
6e2685cbbb
Merge branch 'next-minor' into next-major
2022-12-18 22:25:32 +00:00