@@ -1,51 +0,0 @@
|
||||
package com.willfp.eco.internal.items
|
||||
|
||||
import com.willfp.eco.core.Eco
|
||||
import com.willfp.eco.core.items.args.LookupArgParser
|
||||
import com.willfp.eco.util.NamespacedKeyUtils
|
||||
import org.bukkit.NamespacedKey
|
||||
import org.bukkit.inventory.ItemStack
|
||||
import org.bukkit.inventory.meta.ItemMeta
|
||||
import org.bukkit.persistence.PersistentDataType
|
||||
import java.util.function.Predicate
|
||||
|
||||
object ArgParserUndyeable : LookupArgParser {
|
||||
override fun parseArguments(args: Array<out String>, meta: ItemMeta): Predicate<ItemStack>? {
|
||||
var undyeable = false
|
||||
|
||||
for (arg in args) {
|
||||
if (arg.equals("undyeable", true)) {
|
||||
undyeable = true
|
||||
}
|
||||
}
|
||||
|
||||
if (!undyeable) {
|
||||
return null
|
||||
}
|
||||
|
||||
meta.isUndyeable = true
|
||||
|
||||
return Predicate {
|
||||
val testMeta = it.itemMeta ?: return@Predicate false
|
||||
|
||||
testMeta.isUndyeable
|
||||
}
|
||||
}
|
||||
|
||||
override fun serializeBack(meta: ItemMeta): String? {
|
||||
if (!meta.isUndyeable) {
|
||||
return null
|
||||
}
|
||||
|
||||
return "undyeable"
|
||||
}
|
||||
|
||||
val key: NamespacedKey
|
||||
get() = NamespacedKeyUtils.fromString("eco:undyeable")
|
||||
|
||||
var ItemMeta.isUndyeable: Boolean
|
||||
get() = this.persistentDataContainer.get(key, PersistentDataType.INTEGER) == 1
|
||||
set(value) {
|
||||
this.persistentDataContainer.set(key, PersistentDataType.INTEGER, if (value) 1 else 0)
|
||||
}
|
||||
}
|
||||
@@ -38,7 +38,13 @@ import com.willfp.eco.internal.entities.EntityArgParserSilent
|
||||
import com.willfp.eco.internal.entities.EntityArgParserSize
|
||||
import com.willfp.eco.internal.entities.EntityArgParserSpawnReinforcements
|
||||
import com.willfp.eco.internal.entities.EntityArgParserSpeed
|
||||
import com.willfp.eco.internal.items.*
|
||||
import com.willfp.eco.internal.items.ArgParserColor
|
||||
import com.willfp.eco.internal.items.ArgParserCustomModelData
|
||||
import com.willfp.eco.internal.items.ArgParserEnchantment
|
||||
import com.willfp.eco.internal.items.ArgParserFlag
|
||||
import com.willfp.eco.internal.items.ArgParserName
|
||||
import com.willfp.eco.internal.items.ArgParserTexture
|
||||
import com.willfp.eco.internal.items.ArgParserUnbreakable
|
||||
import com.willfp.eco.internal.lookup.SegmentParserGroup
|
||||
import com.willfp.eco.internal.lookup.SegmentParserUseIfPresent
|
||||
import com.willfp.eco.internal.particle.ParticleFactoryRGB
|
||||
@@ -81,6 +87,7 @@ import com.willfp.eco.internal.spigot.integrations.antigrief.AntigriefCombatLogX
|
||||
import com.willfp.eco.internal.spigot.integrations.antigrief.AntigriefCombatLogXV11
|
||||
import com.willfp.eco.internal.spigot.integrations.antigrief.AntigriefCrashClaim
|
||||
import com.willfp.eco.internal.spigot.integrations.antigrief.AntigriefDeluxeCombat
|
||||
import com.willfp.eco.internal.spigot.integrations.antigrief.AntigriefFabledSkyBlock
|
||||
import com.willfp.eco.internal.spigot.integrations.antigrief.AntigriefFactionsUUID
|
||||
import com.willfp.eco.internal.spigot.integrations.antigrief.AntigriefGriefPrevention
|
||||
import com.willfp.eco.internal.spigot.integrations.antigrief.AntigriefIridiumSkyblock
|
||||
@@ -116,7 +123,6 @@ import com.willfp.eco.internal.spigot.recipes.CraftingRecipeListener
|
||||
import com.willfp.eco.internal.spigot.recipes.StackedRecipeListener
|
||||
import com.willfp.eco.internal.spigot.recipes.listeners.ComplexInComplex
|
||||
import com.willfp.eco.internal.spigot.recipes.listeners.ComplexInVanilla
|
||||
import com.willfp.eco.internal.spigot.recipes.listeners.Undyeable
|
||||
import com.willfp.eco.internal.spigot.recipes.stackhandlers.ShapedCraftingRecipeStackHandler
|
||||
import com.willfp.eco.internal.spigot.recipes.stackhandlers.ShapelessCraftingRecipeStackHandler
|
||||
import net.kyori.adventure.platform.bukkit.BukkitAudiences
|
||||
@@ -139,7 +145,6 @@ abstract class EcoSpigotPlugin : EcoPlugin() {
|
||||
Items.registerArgParser(ArgParserFlag)
|
||||
Items.registerArgParser(ArgParserUnbreakable)
|
||||
Items.registerArgParser(ArgParserName)
|
||||
Items.registerArgParser(ArgParserUndyeable)
|
||||
|
||||
Entities.registerArgParser(EntityArgParserName)
|
||||
Entities.registerArgParser(EntityArgParserNoAI)
|
||||
@@ -169,7 +174,6 @@ abstract class EcoSpigotPlugin : EcoPlugin() {
|
||||
|
||||
CraftingRecipeListener.registerListener(ComplexInComplex)
|
||||
CraftingRecipeListener.registerListener(ComplexInVanilla)
|
||||
CraftingRecipeListener.registerListener(Undyeable)
|
||||
|
||||
StackedRecipeListener.registerHandler(ShapedCraftingRecipeStackHandler)
|
||||
StackedRecipeListener.registerHandler(ShapelessCraftingRecipeStackHandler)
|
||||
@@ -258,7 +262,7 @@ abstract class EcoSpigotPlugin : EcoPlugin() {
|
||||
IntegrationLoader("IridiumSkyblock") { AntigriefManager.register(AntigriefIridiumSkyblock()) },
|
||||
IntegrationLoader("DeluxeCombat") { AntigriefManager.register(AntigriefDeluxeCombat()) },
|
||||
IntegrationLoader("SuperiorSkyblock2") { AntigriefManager.register(AntigriefSuperiorSkyblock2()) },
|
||||
// IntegrationLoader("FabledSkyBlock") { AntigriefManager.register(AntigriefFabledSkyBlock()) },
|
||||
IntegrationLoader("FabledSkyBlock") { AntigriefManager.register(AntigriefFabledSkyBlock()) },
|
||||
IntegrationLoader("BentoBox") { AntigriefManager.register(AntigriefBentoBox()) },
|
||||
IntegrationLoader("WorldGuard") { AntigriefManager.register(AntigriefWorldGuard()) },
|
||||
IntegrationLoader("GriefPrevention") { AntigriefManager.register(AntigriefGriefPrevention()) },
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
package com.willfp.eco.internal.spigot.recipes.listeners
|
||||
|
||||
import com.willfp.eco.internal.items.ArgParserUndyeable.isUndyeable
|
||||
import com.willfp.eco.internal.spigot.recipes.GenericCraftEvent
|
||||
import com.willfp.eco.internal.spigot.recipes.RecipeListener
|
||||
import org.bukkit.inventory.meta.LeatherArmorMeta
|
||||
|
||||
object Undyeable : RecipeListener {
|
||||
override fun handle(event: GenericCraftEvent) {
|
||||
val item = event.inventory.matrix.firstOrNull { it != null && it.itemMeta is LeatherArmorMeta
|
||||
&& it.itemMeta?.isUndyeable == true }?: return
|
||||
|
||||
val result = event.inventory.result?: return
|
||||
if (result.type != item.type || result.itemMeta !is LeatherArmorMeta) return
|
||||
|
||||
if ((item.itemMeta as LeatherArmorMeta).color != (result.itemMeta as LeatherArmorMeta).color) {
|
||||
event.deny()
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user