Describe the bug
When both Fluidlogged API and Scape and Run Parasites are installed, any entity (player, item, zombie, etc.) that moves near a block containing a SRParasites fluid (specifically “dead blood”) that has been fluidlogged by Fluidlogged API will cause the game to crash with an IllegalArgumentException. The crash states:
Cannot get property PropertyInteger{name=level, clazz=class java.lang.Integer, values=[0, 1, ..., 15]} as it does not exist in BlockStateContainer{block=...}
This occurs because SRParasites’ internal fluid logic (BlockFluid.getFlow()) attempts to read the level property from a block that does not have it (e.g., vanilla stone slabs, wooden slabs, parasite stain slabs), after Fluidlogged API has injected the fluid into that block. Other fluids from different mods do not cause this issue, because they follow the standard “level” property convention; only SRParasites fluids trigger the problematic code path.
To Reproduce
The crash can be reliably reproduced with a minimal test environment containing only 13 mods: Forge 14.23.5.2860, OptiFine HD U G5, MixinBooter, ConfigAnytime, Patchouli, MrCrayfish’s Furniture, LoliASM, VintageFix, Fluidlogged API (v3.2.0), Scape and Run Parasites (v1.10.4), Balkon’s WeaponMod, and a few libraries. No other mods are needed.
Steps:
Install the mods listed above on Minecraft 1.12.2 (Forge or Cleanroom, Java 8 or 25 – the bug occurs regardless).
Create a new superflat world in creative mode.
Place a vanilla half‑slab (e.g., minecraft:stone_slab, minecraft:wooden_slab, minecraft:stone_slab2).
Pick up a bucket containing “dead blood” or “dead water” (e.g., /give @p forge:bucketfilled 1 0 {FluidName:"deadblood",Amount:1000}).
Pour the fluid next to/on the slab, so that Fluidlogged API attempts to turn the slab into a fluidlogged block containing the parasite fluid.
Drop an item (e.g., glass block) or simply move the player near the fluidlogged slab.
The game will immediately crash with the level property error described above.
Expected behavior
The game should handle the fluidlogged block normally, applying appropriate fluid physics (e.g., slowing movement) without crashing. Either Fluidlogged API should gracefully skip blocks that lack the level property, or SRParasites’ fluid code should avoid requiring that property on arbitrary fluidlogged blocks.
Screenshots
Not applicable.
Logs
Relevant crash excerpt (full logs available if needed):
https://mclo.gs/lnbbPCf
java.lang.IllegalArgumentException: Cannot get property PropertyInteger{name=level, clazz=class java.lang.Integer, values=[0, 1, ..., 15]} as it does not exist in BlockStateContainer{block=minecraft:stone_slab, properties=[half, variant]}
at net.minecraft.block.state.BlockStateContainer$StateImplementation.getValue(BlockStateContainer.java:209)
at com.dhanantry.scapeandrunparasites.block.BlockFluid.getFlow(BlockFluid.java:120)
at com.dhanantry.scapeandrunparasites.block.BlockFluid.modifyAcceleration(BlockFluid.java:74)
at git.jbredwards.fluidlogged_api.mod.asm.plugins.vanilla.world.PluginWorld$Hooks.handleMaterialAcceleration(PluginWorld.java:719)
at net.minecraft.world.World.handleMaterialAcceleration(World.java)
...
Should I submit this issue to the SRP mod's author...?
Describe the bug
When both Fluidlogged API and Scape and Run Parasites are installed, any entity (player, item, zombie, etc.) that moves near a block containing a SRParasites fluid (specifically “dead blood”) that has been fluidlogged by Fluidlogged API will cause the game to crash with an IllegalArgumentException. The crash states:
Cannot get property PropertyInteger{name=level, clazz=class java.lang.Integer, values=[0, 1, ..., 15]} as it does not exist in BlockStateContainer{block=...}
This occurs because SRParasites’ internal fluid logic (BlockFluid.getFlow()) attempts to read the level property from a block that does not have it (e.g., vanilla stone slabs, wooden slabs, parasite stain slabs), after Fluidlogged API has injected the fluid into that block. Other fluids from different mods do not cause this issue, because they follow the standard “level” property convention; only SRParasites fluids trigger the problematic code path.
To Reproduce
The crash can be reliably reproduced with a minimal test environment containing only 13 mods: Forge 14.23.5.2860, OptiFine HD U G5, MixinBooter, ConfigAnytime, Patchouli, MrCrayfish’s Furniture, LoliASM, VintageFix, Fluidlogged API (v3.2.0), Scape and Run Parasites (v1.10.4), Balkon’s WeaponMod, and a few libraries. No other mods are needed.
Steps:
Install the mods listed above on Minecraft 1.12.2 (Forge or Cleanroom, Java 8 or 25 – the bug occurs regardless).
Create a new superflat world in creative mode.
Place a vanilla half‑slab (e.g., minecraft:stone_slab, minecraft:wooden_slab, minecraft:stone_slab2).
Pick up a bucket containing “dead blood” or “dead water” (e.g., /give @p forge:bucketfilled 1 0 {FluidName:"deadblood",Amount:1000}).
Pour the fluid next to/on the slab, so that Fluidlogged API attempts to turn the slab into a fluidlogged block containing the parasite fluid.
Drop an item (e.g., glass block) or simply move the player near the fluidlogged slab.
The game will immediately crash with the level property error described above.
Expected behavior
The game should handle the fluidlogged block normally, applying appropriate fluid physics (e.g., slowing movement) without crashing. Either Fluidlogged API should gracefully skip blocks that lack the level property, or SRParasites’ fluid code should avoid requiring that property on arbitrary fluidlogged blocks.
Screenshots
Not applicable.
Logs
Relevant crash excerpt (full logs available if needed):
https://mclo.gs/lnbbPCf
Should I submit this issue to the SRP mod's author...?