From 93461954d9fe2fb2baf9e3e8756a44b9398eae3c Mon Sep 17 00:00:00 2001 From: Auxilor Date: Thu, 10 Mar 2022 11:22:54 +0000 Subject: [PATCH] Fixed crafting permissions --- .../com/willfp/talismans/TalismansPlugin.kt | 2 - .../willfp/talismans/talismans/Talisman.kt | 21 +++---- .../talismans/util/TalismanCraftListener.kt | 60 ------------------- 3 files changed, 11 insertions(+), 72 deletions(-) delete mode 100644 eco-core/core-plugin/src/main/kotlin/com/willfp/talismans/talismans/util/TalismanCraftListener.kt diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/talismans/TalismansPlugin.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/talismans/TalismansPlugin.kt index 32f1f1d..654c545 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/talismans/TalismansPlugin.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/talismans/TalismansPlugin.kt @@ -11,7 +11,6 @@ import com.willfp.talismans.talismans.Talismans import com.willfp.talismans.talismans.util.BlockPlaceListener import com.willfp.talismans.talismans.util.DiscoverRecipeListener import com.willfp.talismans.talismans.util.TalismanChecks -import com.willfp.talismans.talismans.util.TalismanCraftListener import com.willfp.talismans.talismans.util.TalismanEnableListeners import org.bukkit.event.Listener @@ -44,7 +43,6 @@ class TalismansPlugin : LibReforgePlugin(611, 9865, "&6") { override fun loadListeners(): List { return listOf( BlockPlaceListener(), - TalismanCraftListener(), TalismanEnableListeners(this), DiscoverRecipeListener(this) ) diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/talismans/talismans/Talisman.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/talismans/talismans/Talisman.kt index d14ed0e..50f49ae 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/talismans/talismans/Talisman.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/talismans/talismans/Talisman.kt @@ -5,8 +5,9 @@ import com.willfp.eco.core.display.Display import com.willfp.eco.core.items.CustomItem import com.willfp.eco.core.items.Items import com.willfp.eco.core.items.builder.ItemStackBuilder +import com.willfp.eco.core.recipe.Recipes import com.willfp.eco.core.recipe.parts.EmptyTestableItem -import com.willfp.eco.core.recipe.recipes.ShapedCraftingRecipe +import com.willfp.eco.core.recipe.recipes.CraftingRecipe import com.willfp.libreforge.Holder import com.willfp.libreforge.conditions.Conditions import com.willfp.libreforge.effects.Effects @@ -46,17 +47,17 @@ class Talisman( val craftable = config.getBool("craftable") - val recipe: ShapedCraftingRecipe? = run { + val recipe: CraftingRecipe? = run { if (craftable) { - val builder = ShapedCraftingRecipe.builder(plugin, key.key) - .setOutput(itemStack) - val recipeStrings = config.getStrings("recipe") - for (i in recipeStrings.indices) { - builder.setRecipePart(i, Items.lookup(recipeStrings[i])) - } - builder.build() + Recipes.createAndRegisterRecipe( + plugin, + key.key, + itemStack, + config.getStrings("recipe"), + "talismans.fromtable.${key.key}" + ) } else null - }.apply { this?.register() } + } val customItem = CustomItem( key, diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/talismans/talismans/util/TalismanCraftListener.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/talismans/talismans/util/TalismanCraftListener.kt deleted file mode 100644 index 9de6dfc..0000000 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/talismans/talismans/util/TalismanCraftListener.kt +++ /dev/null @@ -1,60 +0,0 @@ -package com.willfp.talismans.talismans.util - -import com.willfp.talismans.talismans.Talismans.getByID -import org.bukkit.Material -import org.bukkit.entity.Player -import org.bukkit.event.EventHandler -import org.bukkit.event.Listener -import org.bukkit.event.inventory.CraftItemEvent -import org.bukkit.event.inventory.PrepareItemCraftEvent -import org.bukkit.inventory.ItemStack -import org.bukkit.inventory.ShapedRecipe - -class TalismanCraftListener : Listener { - /** - * Called on item craft. - * - * @param event The event to listen for. - */ - @EventHandler - fun onCraft(event: PrepareItemCraftEvent) { - val recipe = event.recipe as? ShapedRecipe ?: return - - val key = recipe.key.key.replace("_displayed", "") - getByID(key) ?: return - - if (event.viewers.isEmpty()) { - return - } - - val player = event.viewers[0] as Player - val permission = "talismans.fromtable.$key" - if (!player.hasPermission(permission)) { - event.inventory.result = ItemStack(Material.AIR) - } - } - - /** - * Called on item craft. - * - * @param event The event to listen for. - */ - @EventHandler - fun onCraft(event: CraftItemEvent) { - val recipe = event.recipe as? ShapedRecipe ?: return - - val key = recipe.key.key.replace("_displayed", "") - getByID(key) ?: return - - if (event.viewers.isEmpty()) { - return - } - - val player = event.viewers[0] as Player - val permission = "talismans.fromtable.$key" - if (!player.hasPermission(permission)) { - event.inventory.result = ItemStack(Material.AIR) - event.isCancelled = true - } - } -} \ No newline at end of file