Fixed crafting permissions

This commit is contained in:
Auxilor
2022-03-10 11:22:54 +00:00
parent 184b5182aa
commit 93461954d9
3 changed files with 11 additions and 72 deletions

View File

@@ -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<Listener> {
return listOf(
BlockPlaceListener(),
TalismanCraftListener(),
TalismanEnableListeners(this),
DiscoverRecipeListener(this)
)

View File

@@ -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,

View File

@@ -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
}
}
}