Cooking for Blockheads (Fabric Edition)

Cooking for Blockheads (Fabric Edition)

2M Downloads

[1.18.2] CFB leads to empty tags in a bunch of recipes

gchpaco opened this issue ยท 8 comments

commented

Minecraft Version

1.18.x

Mod Loader

Forge

Mod Loader Version

40.0.48

Mod Version

12.0.0

Describe the Issue

I noticed that something was causing certain Farmer's Delight and Farmer's Respite recipes to screw up tags; in particular Black Cod.

Reloading the Farmer's Delight datapack fixes the recipes, so it's an ordering problem or something. Eventually I bisected my mod list and concluded that pulling Cooking for Blockheads made the problem go away.

image

image

I could not find anything in the log files

Logs

No response

Do you use any performance-enhancing mods (e.g. OptiFine)?

No

commented

If I delete the kubejs folder in the mod pack I'm playing the recipes are restored.

commented

A friend of mine looked into this and suggested that the problem is a change made in Forge 40.0.18; https://maven.minecraftforge.net/net/minecraftforge/forge/1.18.2-40.0.52/forge-1.18.2-40.0.52-changelog.txt

 - 40.0.18 [1.18.2] Fix tags for custom forge registries. (#8495)
           Tag-enabled registries must now be registered to vanilla's root registry. See RegistryBuilder#hasTags.
           Modded tag-enabled registries have to use the format `data/<namespace>/tags/<registrynamespace>/<registryname>/<tag>.json`
           This format is to prevent conflicts for registries with the same path but different namespaces
           EX: Registry name `examplemod:shoe`, tag name `blue_shoes` would be `data/<namespace>/tags/examplemod/shoe/blue_shoes.json`
           RegistryEvent.NewRegistry has been moved and renamed to NewRegistryEvent.
           RegistryBuilder#create has been made private. See NewRegistryEvent#create
           Created new ITagManager system for looking up Forge tags. See IForgeRegistry#tags.
           Add lookup methods for Holders from forge registries. See IForgeRegistry#getHolder.
commented

There are further patches in .36 and .40.

commented

In general this happens on 1.18.2 if Ingredient#dissolve is called too early. With Immersive Engineering and a couple of other mods (Tinkers is the main one IIRC), there's an additional issue: Some of our recipes use a tag as the output. This is quite useful when adding compat recipes for metals we don't add ourselves, they will work with any mod adding the metal; and also means that it's trivial to make all IE machines produce ingots from a specific mod. Since you query the output of all recipes before tags are available, a lot of IEs recipes produce named barriers (Forge's warning item for empty tags) when CFB is installed. The stacktrace for the problematic call is here.

commented

In general this happens on 1.18.2 if Ingredient#dissolve is called too early. With Immersive Engineering and a couple of other mods (Tinkers is the main one IIRC), there's an additional issue: Some of our recipes use a tag as the output. This is quite useful when adding compat recipes for metals we don't add ourselves, they will work with any mod adding the metal; and also means that it's trivial to make all IE machines produce ingots from a specific mod. Since you query the output of all recipes before tags are available, a lot of IEs recipes produce named barriers (Forge's warning item for empty tags) when CFB is installed. The stacktrace for the problematic call is here.

Does this mean the recipes still work and things like JEI just show it as an error? Or will the recipe fail to work because of the issue?

commented

The observed effect is that it completely disables the recipes. I had an IE Coke Oven spitting out minecraft:barrier with names instead of blocks of coal coke, for example.

commented

Ah thank you! I had the same issue with IE Coke Oven and Blast Furnace, barriers were being placed into the output instead of blocks of Coal Coke and Steel. Gotta drop CFB until this is addressed, what a mess.

commented

Confirmed issue still present with KubeJS fully removed.