noeppi-noeppi / MythicBotany

Apache License 2.0
17 stars 13 forks source link

Runes aren't consumed when consume tag is true #121

Closed LeonardoTeixeira00 closed 1 year ago

LeonardoTeixeira00 commented 1 year ago

I'm using CraftTweaker-forge-1.18.2-9.1.193 to make recipes and on MythicBotany-1.18.2-2.1.13 when I set the consume tag to true the rune still not being consumed. Recipe

Here is the code:

.addJsonRecipe("azure_silver_ingot", { "type": "mythicbotany:rune_ritual", "group": "rune_rituals", "center": { "item": "botania:gaia_ingot" }, "runes": [ { "rune": { "item": "mythicbotany:alfheim_rune" }, "x": 2, "z": 2, "consume": true }, { "rune": { "item": "mythicbotany:midgard_rune" }, "x": -2, "z": 2, "consume": true }, { "rune": { "item": "botania:rune_envy" }, "x": -2, "z": -2, "consume": true }, { "rune": { "item": "botania:rune_mana" }, "x": 2, "z": -2, "consume": true }, { "rune": { "item": "botania:rune_air" }, "x": 4, "z": 4, "consume": true }, { "rune": { "item": "botania:rune_fire" }, "x": -4, "z": -4, "consume": true }, { "rune": { "item": "botania:rune_earth" }, "x": -4, "z": 4, "consume": true }, { "rune": { "item": "botania:rune_water" }, "x": 4, "z": -4, "consume": true }, { "rune": { "item": "mythicbotany:muspelheim_rune" }, "x": -4, "z": 0, "consume": true }, { "rune": { "item": "mythicbotany:niflheim_rune" }, "x": 4, "z": 0, "consume": true } ], "mana": 0, "ticks": 200, "inputs": [ { "item": "mekanism:dust_lapis_lazuli" }, { "item": "mekanism:dust_lapis_lazuli" }, { "item": "thermal:silver_ingot" }, { "item": "minecraft:chorus_fruit" }, { "item": "minecraft:chorus_fruit" }, { "item": "minecraft:chorus_fruit" }, { "item": "minecraft:chorus_fruit" } ], "outputs": [ { "item": "moremekanismprocessing:azure_silver_ingot", "count": 1 } ] });
noeppi-noeppi commented 1 year ago

This is not an issue with MythicBotany. CraftTweaker seems to convert the true to a 1 before passing the json to the recipe serializer. MythicBotany then expects a boolean but finds a number which causes it to use te default value (false).

Seems like this is a problem with CraftTweaker, please report it there.

In the meantime, you could add the recipe via datapack using OpenLoader.

LeonardoTeixeira00 commented 1 year ago

Strangely, if it's use true as string instead of boolean, the recipe seems to work fine.

noeppi-noeppi commented 1 year ago

That is not strange but intended behaviour in the json library, minecraft uses. Strings are untouched by CraftTweaker and passed as a string which the json library sees as wrong but correctable and thus gives true as a boolean.