Skip to content

Commit 0678305

Browse files
ANRAR4ANRAR4
authored andcommitted
fix smeltable items not containing all choices from recipes with taglist as input
(e. g. `#minecraft:logs_that_burn` -> `charcoal`)
1 parent 30fa2f9 commit 0678305

File tree

1 file changed

+32
-3
lines changed

1 file changed

+32
-3
lines changed

src/main/java/com/sk89q/craftbook/util/ItemUtil.java

Lines changed: 32 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import org.bukkit.inventory.Recipe;
2121
import org.bukkit.inventory.ShapedRecipe;
2222
import org.bukkit.inventory.ShapelessRecipe;
23+
import org.bukkit.inventory.RecipeChoice.MaterialChoice;
2324
import org.bukkit.inventory.meta.BookMeta;
2425
import org.bukkit.inventory.meta.Damageable;
2526
import org.bukkit.inventory.meta.EnchantmentStorageMeta;
@@ -55,13 +56,41 @@ public static void setupSmeltableItemLists() {
5556
Recipe recipe = it.next();
5657

5758
if (recipe instanceof FurnaceRecipe) {
58-
smeltableItems.put(((FurnaceRecipe)recipe).getInput().getType(), ((FurnaceRecipe)recipe).getResult());
59+
60+
if (((FurnaceRecipe)recipe).getInputChoice() instanceof MaterialChoice) {
61+
for (Material choice :
62+
((MaterialChoice)((FurnaceRecipe)recipe).getInputChoice()).getChoices()) {
63+
smeltableItems.put(choice, ((FurnaceRecipe)recipe).getResult());
64+
}
65+
}
66+
else {
67+
smeltableItems.put(((FurnaceRecipe)recipe).getInput().getType(),
68+
((FurnaceRecipe)recipe).getResult());
69+
}
5970
}
6071
else if (recipe instanceof BlastingRecipe) {
61-
blastSmeltableItems.put(((BlastingRecipe)recipe).getInput().getType(), ((BlastingRecipe)recipe).getResult());
72+
if (((BlastingRecipe)recipe).getInputChoice() instanceof MaterialChoice) {
73+
for (Material choice :
74+
((MaterialChoice)((BlastingRecipe)recipe).getInputChoice()).getChoices()) {
75+
blastSmeltableItems.put(choice, ((BlastingRecipe)recipe).getResult());
76+
}
77+
}
78+
else {
79+
blastSmeltableItems.put(((BlastingRecipe)recipe).getInput().getType(),
80+
((BlastingRecipe)recipe).getResult());
81+
}
6282
}
6383
else if (recipe instanceof CookingRecipe) {
64-
cookableItems.put(((CookingRecipe)recipe).getInput().getType(), ((CookingRecipe)recipe).getResult());
84+
if (((CookingRecipe)recipe).getInputChoice() instanceof MaterialChoice) {
85+
for (Material choice :
86+
((MaterialChoice)((CookingRecipe)recipe).getInputChoice()).getChoices()) {
87+
cookableItems.put(choice, ((CookingRecipe)recipe).getResult());
88+
}
89+
}
90+
else {
91+
cookableItems.put(((CookingRecipe)recipe).getInput().getType(),
92+
((CookingRecipe)recipe).getResult());
93+
}
6594
}
6695
}
6796
}

0 commit comments

Comments
 (0)