[1.19.2] Crash when flowing fluid touches Hopper input or output edge
samuel-hunter opened this issue ยท 2 comments
Version Information
- Minecraft 1.19.2
- Canary 0.2.0
- Forge 43.2.0 and 43.2.7
Reproducible with no other mods installed.
Actual Behavior
When a fluid flows to the top of a Hopper, or the output edge of a Hopper, either the server crashes if on Multiplayer, or if on Singleplayer, the entire game crashes (not just its internal server) with a Caused by: java.lang.ClassCastException: class net.minecraft.server.level.ServerLevel cannot be cast to class com.abdelaziz.canary.common.world.blockentity.BlockEntityGetter
.
Even more strange, after the hopper and fluid is cleaned up, then any block that is at the position of the old hopper, once broken, suppresses the same Exception, and the block item is not dropped.
Reproduction Steps
- Place a water bucket two blocks above a hopper
- Wait for water to flow down
Or:
- Place a water bucket two blocks manhattan distance away from the output side of a hopper
- Wait for water to flow to the hopper
Other Information
- Client log generated on crash
- Backtrace on server when placing, breaking block where Hopper used to be
Here's all the experiments I've done:
- Forge 43.2.0; flow water to hopper top: CRASH
- Forge 43.2.7; flow water to hopper top: CRASH
- Forge 43.2.0; flow water to (non-output) hopper side: OK
- Forge 43.2.0; flow water to (non-output) hopper bottom: OK
- Forge 43.2.0; flow water to (output) hopper side: CRASH
- Forge 43.2.0; flow water to (output) hopper bottom: CRASH
- Forge 43.2.0; place water source directly above hopper top: OK
- Forge 43.2.0; reload crashed world, remove water source, and wait for flowing water to dissipate: CRASH
- Forge 43.2.0; flow lava to hopper top: CRASH