mojira.dev
MC-299582

Special crafting recipes behave differently than other recipe types with the /recipe and doLimitedCrafting gamerule

Recipes cannot be either given or taken from the player by using a /recipe command if their behaviour is hardcoded (their type identifier string inside a JSON file begins with minecraft:crafting_special_). These recipes are also always available in the crafting table when the doLimitedCrafting game rule is set to true, while the other recipes need to be given to the player to be accessible.

This affects all of these recipes:

armor_dye
banner_duplicate
book_cloning
decorated_pot
firework_rocket
firework_star
firework_star_fade
map_cloning
map_extending
repair_item
shield_decoration
tipped_arrow

Steps to reproduce:

  1. Prepare items for the 3rd step.

  2. Type the command /gamerule doLimitedCrafting true.

  3. Take all the recipes from yourself: /recipe take @s *.

  4. Try making a firework rocket with any flight duration (or any item that requires a special crafting recipe) inside a crafting table. Make sure you don’t trigger any recipe advancement so that none of the recipes could be given to you.
    Expected: Unable to craft the item.
    Result: Able to craft the item.

  5. Try giving the recipe to yourself: /recipe give @s minecraft:firework_rocket.
    Expected: The Unlocked 1 recipe(s) for <player name> message.
    Result: The No new recipes were learned message.

  6. Try taking the recipe from yourself: /recipe take @s minecraft:firework_rocket.
    Expected (if the 4th step gave the expected result): The Took 1 recipe(s) from <player name> message.
    Result (if the 4th step did not give the expected result): The No new recipes could be forgotten message.

I think it is a pretty old bug and it might have been partially fixed for some other items that also had their special crafting recipes (for example the shulker box colouring) and now they have the “normal” recipes (crafting_transmute for shulker box colouring).

Comments 0

No comments.

ToasterCoder

(Unassigned)

Confirmed

(Unassigned)

1.21.7, 1.21.8, 25w35a

Retrieved