Some blocks disappear after disassembling the train
yamitaso opened this issue ยท 7 comments
Describe the Bug
When dismantling the train, some blocks in the front part of the train disappear. At the same time, an error appears in the server console (the log was sent to pastebin).
Reproduction Steps
- Disassemble the train at the station
- Some blocks disappear
Expected Result
Blocks do not disappear
Screenshots and Videos
No response
Crash Report or Log
Operating System
Debian Linux (Server)
Mod Version
0.5.1c
Minecraft Version
1.19.2
Other Mods
- audioplayer 1.19.2-1.8.1
- automobility 0.4.2+1.19.2-fabric
- badpackets 0.2.2
- cardinal-components 5.0.2
- cloth-config 8.3.103
- collective 6.66
- create 0.5.1-c-build.1160+mc1.19.2
- dawn 3.5.0
- dcintegration-fabric 3.0.2
- doubledoors 5.0
- editsign 2.6.0
- emi 1.0.20+1.19.2+fabric
- exlinefurniture 2.3.2
- expandeddelight 0.2.5
- expandedstorage 8.3.4
- fabric-api 0.76.1+1.19.2
- fabric-language-kotlin 1.10.10+kotlin.1.9.10
- fabricloader 0.14.22
- farmersdelight 1.19.2-1.3.10.1
- ferritecore 5.0.3
- fusion 1.0.6
- jei 11.6.0.1018
- krypton 0.2.1
- lithium 0.11.1
- memoryleakfix 1.1.2
- minimotd-fabric 2.0.9
- mob_captains_mr 1-v2.1.2
- openpartiesandclaims 0.19.3
- pfm 1.1.1
- ping-wheel 1.5.1
- promenade 2.7.1
- railways 1.5.1+fabric-mc1.19.2
- rechiseled 1.1.4+a
- rechiseledcreate 1.0.0
- servercore 1.3.3-1.19.2
- sliceanddice 2.3.2
- sound_physics_remastered 1.19.2-1.2.1
- supermartijn642configlib 1.1.8
- supermartijn642corelib 1.1.13
- tawct 1.4.3+1.19.2
- travelersbackpack 1.19.2-8.2.28
- universal-graves 2.1.3+1.19.2
- voicechat 1.19.2-2.4.25
- wthit 5.19.0
- xaerominimap 23.8.2
- xaeroworldmap 1.34.1
Additional Context
No response
As I understand it, the problem only appears when using storage from other mods on the train, for example chests from the Expanded Storage mod. If you use standard minecraft chests, everything works as it should.
As I understand it, the problem only appears when using storage from other mods on the train, for example chests from the Expanded Storage mod. If you use standard minecraft chests, everything works as it should.
Nah, it happens with standard chests and barrels. The bug comes from using shift+click to remove things from chests/barrels before disassembly. I have submitted a PR to fix this bug here though that fix is for 1.20, no fix for 1.19 yet.
Found steps to reproduce, inspired by: #1080 (comment)
- Create a minimal train with a barrel glued on
- Fill the barrel with a block
- Assemble the train
- While the train is assembled, open a barrel and shift+click to remove stacks of items from the barrel
- disassemble the train
Edit:
Confirmed similar issue (server crash) happens with a single barrel attached to mechanical sticky piston (items where "removed" from barrel using via shift+click while piston was fully extended in "only place in starting position" mode)
Edit 2:
Tested chests with piston setup, crash stacktrace is slightly different
java.lang.IllegalArgumentException: Transfer variant may not be blank.
at net.fabricmc.fabric.api.transfer.v1.storage.StoragePreconditions.notBlank(StoragePreconditions.java:39)
at net.fabricmc.fabric.api.transfer.v1.storage.StoragePreconditions.notBlankNotNegative(StoragePreconditions.java:58)
at net.fabricmc.fabric.api.transfer.v1.item.base.SingleStackStorage.extract(SingleStackStorage.java:136)
at net.fabricmc.fabric.api.transfer.v1.item.base.SingleStackStorage.extract(SingleStackStorage.java:42)
at io.github.fabricators_of_create.porting_lib.transfer.TransferUtil.clearStorage(TransferUtil.java:343)
at com.simibubi.create.content.contraptions.MountedStorageManager.clear(MountedStorageManager.java:189)
at com.simibubi.create.content.contraptions.Contraption.addBlocksToWorld(Contraption.java:1132)
[truncated]
Edit 3:
Confirm that this issue exists even if there's only 1 item in the barrel when it is removed via shift+clicking while in a contraption. Also confirmed the issue does NOT happen when inserting items via shift+click
Edit 4:
Issues does not happen if the world is saved + reloaded after shift+clicking removal while the contraption is an entity. Suggesting that the NBT data is still always correct. (viewing the world in NBTExplorer confirmed that things are apparently sane after shift+click removal)
Edit 5:
Speculation: io.github.fabricators_of_create.porting_lib.transfer.item.ItemStackHandler
does not properly handle shift+clicking, will probably have to see what methods it's supposed to override later.
Discovery: io.github.fabricators_of_create.porting_lib.transfer.item.ItemStackHandler.onStackChange
only gets called with oldStack: "0 air", newStack: "0 air"
during shift+clicking removal. The assumption that the oldStack
contains the previous block does not apply.
duplicate of #1080