diff options
Diffstat (limited to 'Spigot-API-Patches-Unmapped/0150-Add-ItemStackRecipeChoice-Draft-API.patch')
-rw-r--r-- | Spigot-API-Patches-Unmapped/0150-Add-ItemStackRecipeChoice-Draft-API.patch | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/Spigot-API-Patches-Unmapped/0150-Add-ItemStackRecipeChoice-Draft-API.patch b/Spigot-API-Patches-Unmapped/0150-Add-ItemStackRecipeChoice-Draft-API.patch new file mode 100644 index 0000000000..1a4eca8cc0 --- /dev/null +++ b/Spigot-API-Patches-Unmapped/0150-Add-ItemStackRecipeChoice-Draft-API.patch @@ -0,0 +1,66 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Aikar <[email protected]> +Date: Thu, 13 Sep 2018 21:39:26 -0400 +Subject: [PATCH] Add ItemStackRecipeChoice Draft API + +This is based on Spigots Draft API. This is subject to change + +Allows creating recipes that must match isSimilar to full item stack. + +diff --git a/src/main/java/com/destroystokyo/paper/inventory/ItemStackRecipeChoice.java b/src/main/java/com/destroystokyo/paper/inventory/ItemStackRecipeChoice.java +new file mode 100644 +index 0000000000000000000000000000000000000000..43e6576b1d1bb811f9feb22de0024d9c823cb21a +--- /dev/null ++++ b/src/main/java/com/destroystokyo/paper/inventory/ItemStackRecipeChoice.java +@@ -0,0 +1,51 @@ ++package com.destroystokyo.paper.inventory; ++ ++import org.bukkit.inventory.ItemStack; ++import org.bukkit.inventory.RecipeChoice; ++ ++import java.util.ArrayList; ++import java.util.List; ++ ++/** ++ * Allows crafting Items that require full matching itemstacks to complete the recipe for custom items ++ * @deprecated Draft API ++ */ ++@Deprecated ++public class ItemStackRecipeChoice implements RecipeChoice { ++ ++ protected final List<ItemStack> choices = new ArrayList<>(); ++ ++ public ItemStackRecipeChoice(ItemStack choices) { ++ this.choices.add(choices); ++ } ++ ++ public ItemStackRecipeChoice(List<ItemStack> choices) { ++ this.choices.addAll(choices); ++ } ++ ++ @Override ++ public ItemStack getItemStack() { ++ return choices.isEmpty() ? null : choices.get(0); ++ } ++ ++ @Override ++ public RecipeChoice clone() { ++ try { ++ ItemStackRecipeChoice clone = (ItemStackRecipeChoice) super.clone(); ++ clone.choices.addAll(this.choices); ++ return clone; ++ } catch (CloneNotSupportedException ex) { ++ throw new AssertionError(ex); ++ } ++ } ++ ++ @Override ++ public boolean test(ItemStack itemStack) { ++ for (ItemStack stack : choices) { ++ if (stack.isSimilar(itemStack)) { ++ return true; ++ } ++ } ++ return false; ++ } ++} |