647 Commits

Author SHA1 Message Date
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
Dylan K. Taylor
61933624d2
NetworkSession: Lift batch limit to 1300 to allow shift-click crafting to work correctly
the theoretical limit for transactions in this case is 64x9 (inputs) + 64x9 (output on crafting grid) + 64 (outputs to main slot) + 64 CraftingEventPackets = 1280.
This is an extreme case which assumes that a recipe could generate up to 64x10 (640) output items per iteration, filling every slot of the output grid, which should never occur in any reasonable circumstances.
2022-12-30 22:11:35 +00:00
Dylan K. Taylor
59be901efe
Fixed unauthenticated sessions taking up player slots 2022-12-28 20:42:33 +00:00
Rush2929
31465525e3
Fixed PHP-CS-Fixer not import global constants. (#5449) 2022-12-12 17:12:33 +00:00
Dylan K. Taylor
1cefe24414
InGamePacketHandler: fixed transaction predictions not getting rolled back for failed use/release/interact transactions
this was caused by b5cfab497dc75ff884b5d91831d5a2f7a5016d99.
2022-12-10 21:16:08 +00:00
Dylan K. Taylor
99996b62d6
Align PhpDoc @param tags according to PHP-CS-Fixer 2022-12-06 13:21:20 +00:00
Dylan K. Taylor
b5cfab497d
Clean up inventory content syncing, fixes #5441
these remnants should have been cleaned up in 4.11, but I somehow managed to skip over them.
2022-12-04 23:05:30 +00:00
Dylan K. Taylor
cdbdcb5d67
Merge branch 'stable' into next-minor 2022-11-04 20:44:28 +00:00
Dylan K. Taylor
2fdc46c165
PHPStan 1.9 features 2022-11-04 20:23:34 +00:00
Dylan K. Taylor
b6f6671a81
Merge branch 'stable' into next-minor 2022-10-31 15:34:24 +00:00
jasonw_4331
44af519cd6
SpawnResponsePacketHandler: silence PlayerAuthInputPacket debug spam (#5368) 2022-10-30 19:24:26 +00:00
Dylan K. Taylor
a9361b3f8b
Changes for 1.19.40 2022-10-25 23:11:41 +01:00
Dylan K. Taylor
d74824c8d5
Correctly use Command->getLabel() instead of Command->getName()
getName() essentially serves as an ID for the command for CommandExecutors. It has no other sane use case.

Since it's not unique (multiple commands with the same name may be registered, and the fallback alias will be used on conflict), it cannot be used for array indexing. It's also not correct to use it for any display purpose, since the command may not be able to be invoked by its 'name' if there was a conflict.

There is an open debate about what to do with getName() and the wider CommandExecutor ecosystem, but that's a topic for another discussion.

closes #5344
2022-10-18 19:34:12 +01:00
Dylan K. Taylor
7bcc663b60
Migrate core code to using symfony/filesystem
webmozart/path-util is retained for plugin compatibility, but is dropped in 5.0
2022-10-14 21:51:29 +01:00
Dylan K. Taylor
57deb60355
Merge branch 'stable' into next-minor 2022-10-13 21:03:50 +01:00
Dylan K. Taylor
b84c110819
Fix CS according to newest php-cs-fixer 2022-10-13 21:00:57 +01:00
Dylan K. Taylor
6ae7cb288e
Merge remote-tracking branch 'origin/stable' into next-minor 2022-10-11 21:59:40 +01:00
Dylan K. Taylor
ac16378410
Silence pre-spawn PlayerAuthInputPacket debug spam 2022-09-28 21:58:23 +01:00
Dylan K. Taylor
1f9dfa77bf
PreSpawnPacketHandler: emit a separate debug message for sending creative data 2022-09-28 21:58:23 +01:00
BrandPVP
b21cd82e94
Allow specifying a key for encrypted resource packs (#5297) 2022-09-28 17:27:33 +01:00
Dylan K. Taylor
86a2f8e360
Merge branch 'stable' into next-minor 2022-09-28 01:01:51 +01:00
Dylan K. Taylor
def2f8c145
InventoryManager: ensure the windowID is valid before attempting to remove any window
this is currently a harmless bug, since remove() isn't currently doing any heavy lifting.
2022-09-28 01:01:42 +01:00
Dylan K. Taylor
ed7c95549d
PreSpawnPacketHandler: add a bunch of debug messages
this is useful for observing timings during first spawn, so that performance issues can be more easily spotted.
2022-09-27 21:08:31 +01:00
famima65536
e4fc523251
Introduce Player::sendToastNotification() (#5102) 2022-09-23 11:37:08 +01:00
Dylan K. Taylor
89e29448ee
Merge branch 'stable' into next-minor 2022-09-20 20:18:06 +01:00
Dylan K. Taylor
d459afaa54
fix CS 2022-09-20 20:00:40 +01:00
Dylan K. Taylor
db586233da
Changes for 1.19.30 support 2022-09-20 19:50:27 +01:00
Dylan K. Taylor
441b06f6c7
Merge branch 'stable' into next-minor 2022-09-15 12:44:53 +01:00
Dylan K. Taylor
3d03bb1301
Fix CS 2022-09-15 12:01:26 +01:00
Dylan K. Taylor
5b89833d5c
Merge branch 'stable' into next-minor 2022-08-27 17:27:15 +01:00
Dylan K. Taylor
fb25e05416
InventoryManager: fixed current window getting removed in race conditions with close window ACK
this could be observed by pressing E and immediately clicking a chest, which, if timed correctly, would lead to the chest lid closing, but the inventory being opened anyway.
2022-08-27 17:26:43 +01:00
Dylan K. Taylor
d6af2b12f4
Merge branch 'complex-inventory-rewrite' into next-minor 2022-08-18 17:30:00 +01:00
Dylan K. Taylor
ad2d59923c
Merge branch 'stable' into next-minor 2022-08-18 17:06:15 +01:00
Dylan K. Taylor
e90abecf38
Rewrite InventoryManager handling of complex mapped inventories
this turned out to be necessary when dealing with the ItemStackRequest system.
2022-08-17 14:42:30 +01:00
Dylan K. Taylor
dce8bd6d21
CS: Standardize new with braces 2022-08-15 17:16:23 +01:00
Dylan K. Taylor
f7ab0a3b92
Merge branch 'stable' into next-minor 2022-08-14 18:37:56 +01:00
Dylan K. Taylor
036e06e889
Revert "Workaround items in blockentity NBT not being processed correctly in 1.19.10"
This reverts commit 2b61c025c26394c3293bcc12a2d0b2301cb4c7ee.
2022-08-14 17:25:55 +01:00
Dylan K. Taylor
df7a1fcba6
Changes for 1.19.20 2022-08-09 19:06:05 +01:00
Dylan K. Taylor
16ed16722a
Merge branch 'stable' into next-minor 2022-07-24 21:21:37 +01:00
Dylan K. Taylor
42f9336f7a
Split packet receive timings into decode and handle subcomponents 2022-07-24 21:16:52 +01:00
Dylan K. Taylor
5d9f783037
InGamePacketHandler: do not update player rotation if it didn't change
setRotation() does an alarmingly large amount of work...
2022-07-24 21:07:35 +01:00
Dylan K. Taylor
01ca14c314
InGamePacketHandler: avoid processing movement if position is unchanged since last tick 2022-07-24 21:00:12 +01:00
Dylan K. Taylor
c26631d06d
InGamePacketHandler: avoid useless object allocations when forceMoveSync=false (99.9% of the time) 2022-07-24 20:44:27 +01:00
Dylan K. Taylor
b75bc61a64
InGamePacketHandler: don't bother checking for flag changes if the flag fields are identical
we don't need to check this on a bit by bit level if the integers are the same.

this saves 2-3 microseconds per packet on my machine, which doesn't sound like much, but it adds up when there are lots of players.
2022-07-24 20:35:49 +01:00
Dylan K. Taylor
3724479be3
InGamePacketHandler: improve performance of input flag resolving 2022-07-24 20:33:35 +01:00
Dylan K. Taylor
2940547026
Eliminate repeated calls to Position->getWorld()
as well as improving readability, it also improves performance in some areas.
2022-07-20 20:44:05 +01:00
Dylan K. Taylor
93254523e6
Merge branch 'stable' into next-minor 2022-07-14 22:04:38 +01:00
Dylan K. Taylor
2b61c025c2
Workaround items in blockentity NBT not being processed correctly in 1.19.10
closes #5154

this hack sends only the bare essential data to create the tiles in LevelChunkPacket,
and then separately sending the full tile data using BlockActorDataPacket afterwards.

This is necessary because the client doesn't handle items correctly in NBT when chunks are sent without using the SubChunkRequest system.
In 4.6 this is observed with incorrect items shown in item frames; in 5.0 it's seen with items simply not showing up at all (difference due to modernization of the serialization format in 5.0).
2022-07-14 21:54:01 +01:00
Dylan K. Taylor
e00f8e3a32
Merge branch 'stable' into next-minor 2022-07-14 20:59:06 +01:00