Cannot re-obtain a taken recipe by receiving the item
The bug
When you get a recipe either by crafting or obtaining an item, and then remove the recipe using /recipe take, the recipe will no longer be learned if you obtain the item without crafting, To re-obtain the recipe, you have to craft it.
How to reproduce
- Create a new world (obtaining recipe by receiving the item only works once)
- /give @p planks
- /give @p log
(used to prevent more recipes from obtaining later) - /clear @p planks
- /clear @p log
- /recipe take @p *
- /give @p planks
→ You do not get a recipe notification - /give @p log
- Craft a plank
→ The recipe is now given
Linked Issues
Created Issue:
Cannot re-obtain a taken recipe by getting the item
When you get a recipe either by crafting or obtaining an item, and then remove the recipe using /recipe take, the recipe will no longer be learned if you obtain the item without crafting, To re-obtain the recipe, you have to craft it.
To reproduce:
1. /give @p planks
2. /give @p logs (used to prevent more recipes from obtaining later)
3. /clear @p planks
4. /recipe take @p *
5. /give @p planks - notice that you do not get a recipe notification
6. /give @p logs
7. Craft a plank and notice the recipe is now given
When you get a recipe either by crafting or obtaining an item, and then remove the recipe using /recipe take, the recipe will no longer be learned if you obtain the item without crafting, To re-obtain the recipe, you have to craft it.
To reproduce:
1. /give @p planks
2. /give @p logs(used to prevent more recipes from obtaining later)
3. /clear @p planks
4. /recipe take@p*
5. /give @p planks - notice that you do not get a recipe notification
6. /give @p logs
7. Craft a plank and notice the recipe is now givenWhen you get a recipe either by crafting or obtaining an item, and then remove the recipe using /recipe take, the recipe will no longer be learned if you obtain the item without crafting, To re-obtain the recipe, you have to craft it.
To reproduce:
1. /give @p planks
2. /give @p log (used to prevent more recipes from obtaining later)
3. /clear @p planks
4. /clear @p log
5. /recipe take @p *
6. /give @p planks - notice that you do not get a recipe notification
7. /give @p log
8. Craft a plank and notice the recipe is now given
Cannot re-obtain a taken recipe bygetting the itemCannot re-obtain a taken recipe by recieving the item
Cannot re-obtain a taken recipe by recieving the itemCannot re-obtain a taken recipe by receiving the item
When you get a recipe either by crafting or obtaining an item, and then remove the recipe using /recipe take, the recipe will no longer be learned if you obtain the item without crafting, To re-obtain the recipe, you have to craft it.
To reproduce:
0. Create a new world (obtaining recipe by receiving the item only works once)
1. /give @p planks
2. /give @p log (used to prevent more recipes from obtaining later)
3. /clear @p planks
4. /clear @p log
5. /recipe take @p *
6. /give @p planks - notice that you do not get a recipe notification
7. /give @p log
8. Craft a plank and notice the recipe is now given
When you get a recipe either by crafting or obtaining an item, and then remove the recipe using /recipe take, the recipe will no longer be learned if you obtain the item without crafting, To re-obtain the recipe, you have to craft it.
To reproduce:
0. Create a new world (obtaining recipe by receiving the item only works once)
1. /give @p planks
2. /give @p log (used to prevent more recipes from obtaining later)
3. /clear @p planks
4. /clear @p log
5. /recipe take @p *
6. /give @p planks - notice that you do not get a recipe notification
7. /give @p log
8. Craft a plank and notice the recipe is now givenThe bug
When you get a recipe either by crafting or obtaining an item, and then remove the recipe using /recipe take, the recipe will no longer be learned if you obtain the item without crafting, To re-obtain the recipe, you have to craft it.
How to reproduce
- Create a new world (obtaining recipe by receiving the item only works once)
- /give @p planks
- /give @p log
(used to prevent more recipes from obtaining later)- /clear @p planks
- /clear @p log
- /recipe take @p *
- /give @p planks
→ You do not get a recipe notification- /give @p log
- Craft a plank
→ The recipe is now given
Can confirm (17w15a)
Probably because the advancement that looks for wood in your inventory has already been achieved and the reward given.
Would it make more sense for the advancement to reward you every time you fulfill it? Perhaps, but then you'd get spammed with other potential rewards too. A "re-earnable" flag for advancements might help remedy this.
Can someone explain why this is WAI? To me it clearly sounds like a bug, not a design choice.
Surely revoking a recipe should have the same result as having never earned the recipe?
Because there are recipes and advancements that unlock recipes.
So, when you take a recipe, you don't reset it (1), only remove it from the list of things you can craft via recipe book; because you already earned that recipe, you can't earn it again (2); and if you already have a recipe, then it was already earned (3) (so, you don't have other options)
Is there a work around using /advancemt? Something like
or
Or maybe, since /recipe grants recipe advancements when giving recipes, it should also revoke them when taking recipes?
Since the 1.12-pre5 you can use