Many combs are missing processing recipes in 1.21 Neoforge
Saereth opened this issue · 14 comments
After testers reported diamond combs not processing I went and checked every comb in jei to see and most have recipes but these combs speciifcally have no way to process them in the centrifuge or otherwise.
The pack does have modern industrialization so things like invar/electrum/nickle/iridium/platinum/tungsten all have valid ores/ingots/dusts. Pack also has Mekanism for fluorite/osmium etc. Several of these (lapis/gold/emerald) being vanilla also have no centrifuge processing recipe.
productivebees:configurable_honeycomb{"productivebees:bee_type":"productivebees:tin"}
productivebees:configurable_honeycomb{"productivebees:bee_type":"productivebees:diamond"}
productivebees:configurable_honeycomb{"productivebees:bee_type":"productivebees:sulfur"}
productivebees:configurable_honeycomb{"productivebees:bee_type":"productivebees:fluorite"}
productivebees:configurable_honeycomb{"productivebees:bee_type":"productivebees:arcane_debris"}
productivebees:configurable_honeycomb{"productivebees:bee_type":"productivebees:platinum"}
productivebees:configurable_honeycomb{"productivebees:bee_type":"productivebees:frosty"}
productivebees:configurable_honeycomb{"productivebees:bee_type":"productivebees:tungsten"}
productivebees:configurable_honeycomb{"productivebees:bee_type":"productivebees:silicon"}
productivebees:configurable_honeycomb{"productivebees:bee_type":"productivebees:iridium"}
productivebees:configurable_honeycomb{"productivebees:bee_type":"productivebees:withered"}
productivebees:configurable_honeycomb{"productivebees:bee_type":"productivebees:experience"}
productivebees:configurable_honeycomb{"productivebees:bee_type":"productivebees:steel"}
productivebees:configurable_honeycomb{"productivebees:bee_type":"productivebees:lapis"}
productivebees:configurable_honeycomb{"productivebees:bee_type":"productivebees:entro"}
productivebees:configurable_honeycomb{"productivebees:bee_type":"productivebees:arcane_crystal"}
productivebees:configurable_honeycomb{"productivebees:bee_type":"productivebees:radioactive"}
productivebees:configurable_honeycomb{"productivebees:bee_type":"productivebees:electrum"}
productivebees:configurable_honeycomb{"productivebees:bee_type":"productivebees:emerald"}
productivebees:configurable_honeycomb{"productivebees:bee_type":"productivebees:graphite"}
productivebees:configurable_honeycomb{"productivebees:bee_type":"productivebees:mithril"}
productivebees:configurable_honeycomb{"productivebees:bee_type":"productivebees:nickel"}
productivebees:configurable_honeycomb{"productivebees:bee_type":"productivebees:osmium"}
productivebees:configurable_honeycomb{"productivebees:bee_type":"productivebees:lead"}
productivebees:configurable_honeycomb{"productivebees:bee_type":"productivebees:invar"}
productivebees:configurable_honeycomb{"productivebees:bee_type":"productivebees:obsidian"}
If I can provide any more testing or debug help let me know and I'm glad to assist.
latest.log: https://mclo.gs/sKLpgZV
Minecraft: 1.21.1
Neoforge: 21.1.22
ProductiveBees: productivebees-1.21.0-13.4.1
do you have any datapacks installed? I don't specify mekanism:nugget_bronze in the recipe so something is changing them
[19Aug2024 15:37:20.002] [Render thread/ERROR] [net.minecraft.world.item.crafting.RecipeManager/]: Parsing error loading recipe productivebees:centrifuge/alloys/honeycomb_bronze: com.google.gson.JsonParseException: Failed to parse either. First: Not a json array: {"id":"mekanism:nugget_bronze"}; Second: No key tag in MapLike[{"id":"mekanism:nugget_bronze"}]; No key item in MapLike[{"id":"mekanism:nugget_bronze"}]
sure thing, this is with it disabled
https://mclo.gs/glrfkdk
no, no datapacks installed other than kube's internal one. Perhaps Almost unified?
Hi there, Almost Unified dev here. Seems that our output replacement causes the centrifuge recipe serializer to break.
The following is an example recipe (productivebees:centrifuge/raw_materials/honeycomb_leaden
) that breaks. This is before (line 1) and after (line 2) the unification:
{"type":"productivebees:centrifuge","ingredient":{"type":"productivebees:component","components":{"productivebees:bee_type":"productivebees:lead"},"items":"productivebees:configurable_honeycomb"},"outputs":[{"item":{"tag":"c:raw_materials/lead"},"chance":0.4},{"item":{"item":"productivebees:wax"}}],"neoforge:conditions":[{"type":"neoforge:not","value":{"type":"neoforge:tag_empty","tag":"c:raw_materials/lead"}}]}
{"type":"productivebees:centrifuge","ingredient":{"type":"productivebees:component","components":{"productivebees:bee_type":"productivebees:lead"},"items":"productivebees:configurable_honeycomb"},"outputs":[{"item":{"id":"mekanism:raw_lead"},"chance":0.4},{"item":{"item":"productivebees:wax"}}],"neoforge:conditions":[{"type":"neoforge:not","value":{"type":"neoforge:tag_empty","tag":"c:raw_materials/lead"}}]}
As you can see, we replace output tags with the preferred item of the tag determined by the mod priority list in our config but the serializer doesn't seem to like that. The source is sadly not very easy to read since you are using a lib called productive lib that doesn't seem to be open source. I see you uploaded the JAR files to the repository but I don't have the time to decompile and look at it right now.
Usually, when using the vanilla ingredient codec, item stacks should also be allowed but you probably use a custom serializer that doesn't allow output stacks. There are a few ways to solve this. Either you add support for output stacks as well, we ship a default config where this recipe type gets ignored completely (not very nice for modpack devs because they wouldn't be unified), or you resolve the preferred stack from the tag output via Almost Unified integration (when it's installed). There seems to be a bit of integration here which did this already. This would be a sufficient solution too once Almost Unified is released for 1.21 and is on Maven again. The FTB team currently uses an internal testing version so integration won't be possible yet.
Please let me know which option you would prefer. I am sorry for the inconvenience.
hey relentless, here's the code in the lib for the codec https://github.com/JDKDigital/productivelib/blob/dev-1.21.0/src/main/java/cy/jdkdigital/productivelib/common/recipe/TagOutputRecipe.java#L183
I just use Ingredient.CODEC
I see, thank you for the heads up. It seems to be caused by the odd decision of Mojang to have different keys in their codecs. ItemStack is using id
while Ingredient is still using item
. So when a recipe supports tag outputs and we replace it with an item, we should probably use item
instead of id
because the ingredient serializer is being used. 🫠