Chemical Thrower causes players to disconnect.
NotDracon opened this issue ยท 3 comments
Minecraft Version
1.18
Immersive Engineering Version
1.18.2-8.0.2-149
Expected Behavior
Chemical Thrower will spray the loaded chemical at an enemy and... not cause the player using it to disconnect.
Actual Behavior
Chemical Thrower will cause the player using it and any adjacent players to disconnect (not crash) when any fluid is sprayed, whether with pilot light on or off. Players can then reconnect as normal after a period of around 2 minutes. Disconnect message is as follows:
Connection Lost
Internal Exception: io.netty.handler.codec.DecoderException: Unknown serializer type 108
Steps to reproduce
- Join a non-singleplayer server
- Obtain Chemical Thrower
- Load Chemical Thrower with any fluid that it can shoot
- Right click to fire Thrower and disconnect
Pack used is the "Craft Down Under" modpack https://www.curseforge.com/minecraft/modpacks/craft-down-under
Debug Crash Log
https://gist.github.com/NotDracon/7ce9850d6973b2d5ee626ad50188ffb7
@malte0811
My suspicion is that our EntityDataSerializer for FluidStacks is not properly registered, but I'm not entirely sure why.
Should we maybe move it to a DeferredRegister?
Have you managed to reproduce this? I wasn't able to when I tried, but I also didn't do anything beyond a basic test.
It isn't a registry, so we can't use DeferredRegister
. My guess is that the code runs during parallel mod setup, which causes ENTITY_ID_POOL
to loose a value under some race condition. So my suggestion would be to move the SynchedEntityData::defineId
call to IEContent::onThreadCommonSetup
.