Commit Graph

13224 Commits

Author SHA1 Message Date
Dylan K. Taylor
b25e8e26f0 BaseBanner: fixed incorrect support requirements 2023-01-12 21:31:50 +00:00
Dylan K. Taylor
a79be994de World: fixed block placement when clicking on replaceable blocks
in vanilla, it appears to behave as if the player always clicked on the up face if a block was replaced.

In PM, we were still using the original face, which caused bugs when, for example, placing a button next to a wall by clicking on the side of tallgrass. The button would replace the tallgrass, but stick to the wall, instead of placing itself on the ground like vanilla expects.

This may appear unusual to anyone who also happens to implement canBePlacedAt(), since the facing behaviour will be different. However, this behaviour appears to match vanilla, and even slabs (which I feared might break because of this change) work perfectly.

In the future, it may be desirable to pass some other value here, such as null, to indicate that the clicked block is being replaced. However, that's a BC break and therefore outside of the scope of a stable bug fix.
2023-01-12 21:11:48 +00:00
Dylan K. Taylor
e26c8b9e9f block: eliminate suspicious usages of $blockClicked in place() 2023-01-12 20:35:26 +00:00
Dylan K. Taylor
4e9c3e101d Bell: fixed blocks not being able to be placed when not ringing the bell 2023-01-12 19:42:33 +00:00
Dylan K. Taylor
d295e1be54 PressurePlate: destroy self when no support is present 2023-01-12 19:36:47 +00:00
Dylan K. Taylor
2f3fcef97c Fixed blocks incorrectly using blockClicked for support checks
this caused some interesting bugs, such as being able to place floating pressure plates by clicking on the side of a solid block halfway up a wall.
2023-01-12 19:36:23 +00:00
Dylan K. Taylor
f7930a3a0b 4.12.9 is next 2023-01-09 00:04:40 +00:00
Dylan K. Taylor
bb7df60a4d Release 4.12.8 2023-01-09 00:04:40 +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
fc77b14760 4.12.8 is next 2023-01-08 20:23:18 +00:00
Dylan K. Taylor
52b6f1a492 Release 4.12.7 2023-01-08 20:23:15 +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
Dylan K. Taylor
6cecd690b2 CS 2023-01-07 21:33:53 +00:00
Dylan K. Taylor
91e38d1f97 NetworkSession: compensate for server lag in batch budgeting 2023-01-07 21:33:34 +00:00
Dylan K. Taylor
653178c1fd 4.12.7 is next 2023-01-07 16:22:01 +00:00
Dylan K. Taylor
eb06535ed1 Release 4.12.6 2023-01-07 16:22:01 +00:00
Dylan K. Taylor
f9bcc8e862 NetworkSession: added a rate-limit for incoming batches 2023-01-07 16:19:02 +00:00
Dylan K. Taylor
f43ca405d4 4.12.6 is next 2023-01-06 00:44:58 +00:00
Dylan K. Taylor
d146175d27 Release 4.12.5 2023-01-06 00:44:58 +00:00
Dylan K. Taylor
3baa5ab712 InGamePacketHandler: removed obsolete workaround 2023-01-06 00:41:57 +00:00
IvanCraft623
433f5451d7 Improve World::notifyNeighbourBlockUpdate() doc (#5491) 2023-01-04 20:11:55 +00:00
Dylan K. Taylor
33d1755eae Player: fixed not receiving slot updates for small crafting grid
I'm not really sure why this tracking logic is here and not in InventoryManager, but for now it is what it is.
2023-01-04 01:28:25 +00:00
Dylan K. Taylor
fc63c54116 CraftingManager: more detailed type information for shapelessRecipes and shapedRecipes 2023-01-04 00:32:26 +00:00
Dylan K. Taylor
db07976aab TypeConverter: do not send useless meta to the client 2023-01-03 23:50:31 +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
588c9b114b 4.12.5 is next 2023-01-03 19:30:02 +00:00
Dylan K. Taylor
b095f606c1 Release 4.12.4 2023-01-03 19:29:47 +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
90beaeaeb4 4.12.4 is next 2022-12-28 21:01:50 +00:00
Dylan K. Taylor
466f7e98ed Release 4.12.3 2022-12-28 21:01:47 +00:00
Dylan K. Taylor
59be901efe Fixed unauthenticated sessions taking up player slots 2022-12-28 20:42:33 +00:00
Dylan K. Taylor
5d2b0acfc8 GamemodeCommand: report failure if the target's game mode is already the desired game mode
this has irritated me for years.
2022-12-22 18:38:10 +00:00
Dylan K. Taylor
1e5597f0d5 World: account for null chunk edge case in tickChunk()
the target chunk may no longer be loaded if it was unloaded during a previous chunk's tick (e.g. during BlockGrowEvent).
Since the parent function iterates over a pre-selected array of chunks, the chunk will still be present in the list even if it's no longer loaded by the time it's reached.
2022-12-19 20:20:52 +00:00
Dylan K. Taylor
97ef209c5f HandlerList: added missing class-string type for constructor 2022-12-19 16:26:36 +00:00
Dylan K. Taylor
529700bb8b PotionTypeIdMap: fixed uninitialized fields
I have no idea why this didn't ever cause a problem before... probably an edge-case in the typed properties implementation
2022-12-19 15:33:15 +00:00
Dylan K. Taylor
437fa615b8 4.12.3 is next 2022-12-15 21:08:28 +00:00
Dylan K. Taylor
0ee6cdb058 Release 4.12.2 2022-12-15 21:08:23 +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 b5cfab497d.
2022-12-10 21:16:08 +00:00
Dylan K. Taylor
8bf85d4a18 bootstrap: avoid using is_writable() to check for data directory access permissions
closes #5440
2022-12-06 14:13:37 +00:00
Dylan K. Taylor
b5e6dec0c6 Filesystem: capture error information from attempted lock file creation 2022-12-06 14:06:08 +00:00
Dylan K. Taylor
a3306914cc bootstrap: do not require the plugins dir to be writable
on a modern installation, the plugins folder does not need to be writable by the server. Perhaps DevTools should be checking this for /genplugin, but it's not required otherwise.
2022-12-06 13:58:50 +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
0a9b52618d 4.12.2 is next 2022-12-04 23:11:48 +00:00
Dylan K. Taylor
7ae6425d05 Release 4.12.1 2022-12-04 23:11:48 +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