Fixed crafting permissions
This commit is contained in:
@@ -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)
|
||||
)
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user