From bfecd5508f4aabaa45d6876887806aed47d7314e Mon Sep 17 00:00:00 2001 From: Auxilor Date: Sat, 2 Jan 2021 17:36:08 +0000 Subject: [PATCH] Fixed talisman crafting including talisman --- .../java/com/willfp/talismans/talismans/Talisman.java | 11 +++++++---- .../talismans/util/TalismanCraftListener.java | 6 ------ 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/Talisman.java b/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/Talisman.java index 675b1f5..59dfab2 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/Talisman.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/Talisman.java @@ -13,6 +13,7 @@ import com.willfp.talismans.talismans.util.TalismanUtils; import com.willfp.talismans.talismans.util.Watcher; import lombok.AccessLevel; import lombok.Getter; +import org.apache.commons.lang.Validate; import org.apache.commons.lang.WordUtils; import org.bukkit.Bukkit; import org.bukkit.Material; @@ -20,6 +21,7 @@ import org.bukkit.NamespacedKey; import org.bukkit.World; import org.bukkit.event.Listener; import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.RecipeChoice; import org.bukkit.inventory.ShapedRecipe; import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.permissions.Permission; @@ -208,16 +210,17 @@ public abstract class Talisman implements Listener, Watcher { for (int i = 0; i < 9; i++) { recipeTalismanOverlay[i] = null; char ingredientChar = String.valueOf(i).toCharArray()[0]; - Material material; if (recipeStrings.get(i).startsWith("talisman:")) { - material = Material.PLAYER_HEAD; String talismanKey = recipeStrings.get(i).split(":")[1]; NamespacedKey talismanNamespacedKey = new NamespacedKey(this.getPlugin(), talismanKey); + Talisman talisman = Talismans.getByKey(talismanNamespacedKey); + Validate.notNull(talisman, "Talisman specified in " + this.getConfigName() + ".yml's recipe is invalid!"); recipeTalismanOverlay[i] = Talismans.getByKey(talismanNamespacedKey); + RecipeChoice.ExactChoice recipeChoice = new RecipeChoice.ExactChoice(talisman.getItemStack()); + recipe.setIngredient(ingredientChar, recipeChoice); } else { - material = Material.valueOf(recipeStrings.get(i).toUpperCase()); + recipe.setIngredient(ingredientChar, Material.valueOf(recipeStrings.get(i).toUpperCase())); } - recipe.setIngredient(ingredientChar, material); } Bukkit.getServer().addRecipe(recipe); diff --git a/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/util/TalismanCraftListener.java b/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/util/TalismanCraftListener.java index 8fcd71a..e71b03e 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/util/TalismanCraftListener.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/talismans/talismans/util/TalismanCraftListener.java @@ -2,7 +2,6 @@ package com.willfp.talismans.talismans.util; import com.willfp.talismans.talismans.Talisman; import com.willfp.talismans.talismans.Talismans; -import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -13,7 +12,6 @@ import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ShapedRecipe; import org.jetbrains.annotations.NotNull; -import java.util.Arrays; import java.util.Objects; public class TalismanCraftListener implements Listener { @@ -89,10 +87,6 @@ public class TalismanCraftListener implements Listener { for (int i = 0; i < 9; i++) { ItemStack itemStack = event.getInventory().getMatrix()[i]; - Bukkit.getLogger().info("==============="); - Bukkit.getLogger().info(Arrays.toString(event.getInventory().getMatrix())); - Bukkit.getLogger().info(Arrays.toString(talisman.getRecipeTalismanOverlay())); - if (itemStack == null) { continue; }