Added tags

This commit is contained in:
Auxilor
2024-07-21 11:53:14 +01:00
parent 377d4b9d98
commit b118f5c4d0
4 changed files with 38 additions and 9 deletions

View File

@@ -3,7 +3,6 @@ package com.willfp.ecoitems
import com.willfp.eco.core.command.impl.PluginCommand import com.willfp.eco.core.command.impl.PluginCommand
import com.willfp.eco.core.display.DisplayModule import com.willfp.eco.core.display.DisplayModule
import com.willfp.eco.core.items.Items import com.willfp.eco.core.items.Items
import com.willfp.eco.core.items.tag.CustomItemTag
import com.willfp.ecoitems.commands.CommandEcoItems import com.willfp.ecoitems.commands.CommandEcoItems
import com.willfp.ecoitems.display.ItemsDisplay import com.willfp.ecoitems.display.ItemsDisplay
import com.willfp.ecoitems.display.RarityDisplay import com.willfp.ecoitems.display.RarityDisplay
@@ -12,10 +11,10 @@ import com.willfp.ecoitems.items.EcoItems
import com.willfp.ecoitems.items.EcoItemsRecipes import com.willfp.ecoitems.items.EcoItemsRecipes
import com.willfp.ecoitems.items.ItemAttributeListener import com.willfp.ecoitems.items.ItemAttributeListener
import com.willfp.ecoitems.items.ItemListener import com.willfp.ecoitems.items.ItemListener
import com.willfp.ecoitems.items.ecoItem
import com.willfp.ecoitems.libreforge.ConditionHasEcoItem import com.willfp.ecoitems.libreforge.ConditionHasEcoItem
import com.willfp.ecoitems.rarity.ArgParserRarity import com.willfp.ecoitems.rarity.ArgParserRarity
import com.willfp.ecoitems.rarity.Rarities import com.willfp.ecoitems.rarity.Rarities
import com.willfp.ecoitems.items.EcoItemTag
import com.willfp.ecoitems.util.DiscoverRecipeListener import com.willfp.ecoitems.util.DiscoverRecipeListener
import com.willfp.libreforge.conditions.Conditions import com.willfp.libreforge.conditions.Conditions
import com.willfp.libreforge.loader.LibreforgePlugin import com.willfp.libreforge.loader.LibreforgePlugin
@@ -33,9 +32,7 @@ class EcoItemsPlugin : LibreforgePlugin() {
override fun handleEnable() { override fun handleEnable() {
Items.registerArgParser(ArgParserRarity) Items.registerArgParser(ArgParserRarity)
Items.registerTag(CustomItemTag(this.createNamespacedKey("item")) { Items.registerTag(EcoItemTag(this))
it.ecoItem != null
})
Conditions.register(ConditionHasEcoItem) Conditions.register(ConditionHasEcoItem)

View File

@@ -0,0 +1,15 @@
package com.willfp.ecoitems.items
import com.willfp.eco.core.EcoPlugin
import com.willfp.eco.core.items.tag.CustomItemTag
import org.bukkit.inventory.ItemStack
class EcoItemTag(plugin: EcoPlugin): CustomItemTag(plugin.createNamespacedKey("item")) {
override fun matches(p0: ItemStack): Boolean {
return p0.ecoItem != null
}
override fun getExampleItem(): ItemStack? {
return EcoItems.values().randomOrNull()?.itemStack
}
}

View File

@@ -3,7 +3,6 @@ package com.willfp.ecoitems.rarity
import com.willfp.eco.core.config.interfaces.Config import com.willfp.eco.core.config.interfaces.Config
import com.willfp.eco.core.display.Display import com.willfp.eco.core.display.Display
import com.willfp.eco.core.items.Items import com.willfp.eco.core.items.Items
import com.willfp.eco.core.items.tag.CustomItemTag
import com.willfp.eco.core.recipe.parts.EmptyTestableItem import com.willfp.eco.core.recipe.parts.EmptyTestableItem
import com.willfp.eco.core.registry.KRegistrable import com.willfp.eco.core.registry.KRegistrable
import com.willfp.ecoitems.EcoItemsPlugin import com.willfp.ecoitems.EcoItemsPlugin
@@ -24,9 +23,7 @@ class Rarity(
val displayLore = lore.map { Display.PREFIX + it } val displayLore = lore.map { Display.PREFIX + it }
val tag = CustomItemTag(plugin.createNamespacedKey(id)) { val tag = RarityTag(plugin, this)
it.ecoItemRarity == this
}
init { init {
Items.registerTag(tag) Items.registerTag(tag)

View File

@@ -0,0 +1,20 @@
package com.willfp.ecoitems.rarity
import com.willfp.eco.core.EcoPlugin
import com.willfp.eco.core.items.tag.CustomItemTag
import com.willfp.ecoitems.items.EcoItems
import com.willfp.ecoitems.items.ecoItem
import org.bukkit.inventory.ItemStack
class RarityTag(
plugin: EcoPlugin,
private val rarity: Rarity
) : CustomItemTag(plugin.createNamespacedKey(rarity.id)) {
override fun matches(p0: ItemStack): Boolean {
return p0.ecoItemRarity == rarity
}
override fun getExampleItem(): ItemStack? {
return rarity.items.randomOrNull()?.item
}
}