You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Picking up a Paradox Machine can ban someone from a multiplayer server due to excessive NBT data.
This occurs because a Paradox Machine can save as many blocks and entities as possible, limited only by the size of their NBT data. With enough saved blocks and entities, the NBT data of the machine block item becomes too large to fit inside the packets being sent, causing the player to be disconnected on pick up and when re-joining.
Steps to reproduce
Start a dedicated server and join it.
Craft and place a Paradox Machine.
Set the Paradox Machine to capture a large but confined area.
Spawn over a hundred entities in the area
Capture the area, which will save it to the machine's NBT data.
In survival mode, break the machine with a silk touch pickaxe and pick it up.
Depending on the number and arrangement of blocks and entities saved, the player picking up the machine may be disconnected and unable to rejoin.
Expected behaviour
A single Paradox Machine should not be able to kick or ban a player from a multiplayer server.
This can be done by adding a limit on the amount of blocks, entities, and/or NBT data that can be captured at once.
Alternatively, the Paradox Machine can hold a UUID which references an entry in a data file or spatial storage-like dimension containing the actual captured area. This is the approach taken by mods like Refined Storage and Sophisticated Backpacks.
Just Dire Things version
1.4.4
Minecraft Version
1.21(.1)
(Neo)Forge Version
21.1.66
Modpack & Version
Craftoria 1.5.0 (Craftoria EU Server)
Do you have optifine or Rubidium installed?
None
Describe the issue
Picking up a Paradox Machine can ban someone from a multiplayer server due to excessive NBT data.
This occurs because a Paradox Machine can save as many blocks and entities as possible, limited only by the size of their NBT data. With enough saved blocks and entities, the NBT data of the machine block item becomes too large to fit inside the packets being sent, causing the player to be disconnected on pick up and when re-joining.
Steps to reproduce
Expected behaviour
A single Paradox Machine should not be able to kick or ban a player from a multiplayer server.
This can be done by adding a limit on the amount of blocks, entities, and/or NBT data that can be captured at once.
Alternatively, the Paradox Machine can hold a UUID which references an entry in a data file or spatial storage-like dimension containing the actual captured area. This is the approach taken by mods like Refined Storage and Sophisticated Backpacks.
Screenshots
No response
Log files
No response
Additional information
Originally reported in https://discord.com/channels/570630340075454474/1297364070579835043, re-posted here as this still looks like a problem.
See also:
JustDireThings/src/main/java/com/direwolf20/justdirethings/common/blockentities/ParadoxMachineBE.java
Lines 585 to 621 in b72e69d
The text was updated successfully, but these errors were encountered: