Applied Energistics 2

Applied Energistics 2

137M Downloads

Entropy recipes use minecraft:empty if they contain an unknown fluid, resulting in really odd behaviour.

ChiefArug opened this issue ยท 2 comments

commented

Describe the bug

I am making custom recipes for the entropy manipulator, converting between blocks and fluids. I'm using kubejs to procedurally add them, and iterating over a list of blocks, which also correspond to fluids.

Some of the blocks do not have corresponding liquids, and so it creates a recipe with a fluid that does not exist (such as tconstruct:ichor_slime). When this is the input it results in anything that is the fluid minecraft:empty (every single block that is not waterlogged or already a fluid) being valid for the recipe.
(To view a blocks fluid look at it with the F3 debug screen open, its on the right just under what block you are looking at)

How to reproduce the bug

Make a new world and load this datapack (either using the datapacks button on world creation, or by dropping it into the datapacks folder in the world folder then enabling it with /datapack enable file/entropy_bug.zip)
entropy_bug.zip

Get a charged entropy staff (/give @s appliedenergistics2:entropy_manipulator{internalCurrentPower: 200000.0d})

Right click anything that doesn't have a pre-defined recipe, it will turn into a diamond block.

Expected behavior

When you add a custom entropy recipe with an invalid block/fluid the recipe is not loaded and an error is printed to the log.

Additional details

The datapack included above's recipe file:

{
  "type": "appliedenergistics2:entropy",
  "mode": "heat",
  "input": {
    "fluid": {
      "id": "ae2:this_fluid_doesnt_exist"
    }
  },
  "output": {
    "block": {
      "id": "minecraft:diamond_block"
    }
  }
}

Untested on 1.18, it would at least require changing the recipe type to have the new modid

Which minecraft version are you using?

1.16

On which mod loaders does it happen?

Forge

Crash log

https://gist.github.com/ChiefArug/cd5a2fc063b793df3e18fb00a1c3dd90

commented

Thanks for reporting this. I'll try this on 1.18 (we're unlikely to fix this back in 1.16, since there is a workaround by not using unknown IDs ๐Ÿ˜).

commented

Yeah this was fixed in the port to 1.17 I think.

If I use the recipe you posted (and change the type to ae2:entropy), I get the following error on startup:

[11:59:19] [Render thread/ERROR] (Minecraft) Parsing error loading recipe ae2:entropy/test
 java.lang.IllegalArgumentException: Unknown id ae2:this_fluid_doesnt_exist for Registry[ResourceKey[minecraft:root / minecraft:fluid] (Experimental)]