From f0398e444e43a9c63249e668eb85f5fecbb4b6db Mon Sep 17 00:00:00 2001 From: md_5 Date: Sat, 3 Nov 2018 21:04:33 +1100 Subject: SPIGOT-4438: Add choice API to furnace recipes --- nms-patches/FurnaceRecipe.patch | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) (limited to 'nms-patches') diff --git a/nms-patches/FurnaceRecipe.patch b/nms-patches/FurnaceRecipe.patch index 4d150e73..a26f71d9 100644 --- a/nms-patches/FurnaceRecipe.patch +++ b/nms-patches/FurnaceRecipe.patch @@ -1,17 +1,23 @@ --- a/net/minecraft/server/FurnaceRecipe.java +++ b/net/minecraft/server/FurnaceRecipe.java -@@ -2,6 +2,10 @@ +@@ -2,6 +2,16 @@ import com.google.gson.JsonElement; import com.google.gson.JsonObject; ++// CraftBukkit start ++import java.util.ArrayList; ++import java.util.List; +import org.bukkit.craftbukkit.inventory.CraftFurnaceRecipe; +import org.bukkit.craftbukkit.inventory.CraftItemStack; ++import org.bukkit.craftbukkit.util.CraftMagicNumbers; +import org.bukkit.craftbukkit.util.CraftNamespacedKey; +import org.bukkit.inventory.Recipe; ++import org.bukkit.inventory.RecipeChoice; ++// CraftBukkit end public class FurnaceRecipe implements IRecipe { -@@ -56,6 +60,19 @@ +@@ -56,6 +66,23 @@ return this.key; } @@ -20,9 +26,13 @@ + CraftItemStack result = CraftItemStack.asCraftMirror(this.result); + RecipeItemStack list = this.ingredient; + list.buildChoices(); -+ net.minecraft.server.ItemStack stack = list.choices[0]; + -+ CraftFurnaceRecipe recipe = new CraftFurnaceRecipe(CraftNamespacedKey.fromMinecraft(this.key), result, CraftItemStack.asCraftMirror(stack), this.experience, this.cookingTime); ++ List choices = new ArrayList<>(list.choices.length); ++ for (ItemStack i : list.choices) { ++ choices.add(CraftMagicNumbers.getMaterial(i.getItem())); ++ } ++ ++ CraftFurnaceRecipe recipe = new CraftFurnaceRecipe(CraftNamespacedKey.fromMinecraft(this.key), result, new RecipeChoice.MaterialChoice(choices), this.experience, this.cookingTime); + recipe.setGroup(this.group); + + return recipe; @@ -31,7 +41,7 @@ public static class a implements RecipeSerializer { public a() {} -@@ -106,11 +123,11 @@ +@@ -106,11 +133,11 @@ return "smelting"; } -- cgit v1.2.3