[1.18.2] CFB leads to empty tags in a bunch of recipes
gchpaco opened this issue ยท 8 comments
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.
I could not find anything in the log files
Logs
No response
Do you use any performance-enhancing mods (e.g. OptiFine)?
No
If I delete the kubejs folder in the mod pack I'm playing the recipes are restored.
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.
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.
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?
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.
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.