diff --git a/build.gradle.kts b/build.gradle.kts index 3614fd0..e8b2e16 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -12,6 +12,7 @@ taboolib { name("Vault").optional(true) name("MMOItems").optional(true) name("Zaphkiel").optional(true) + name("NeigeItems").optional(true) } contributors { name("xbaimiao") @@ -39,6 +40,7 @@ taboolib { repositories { mavenCentral() maven("https://maven.xbaimiao.com/repository/maven-public/") + maven("https://r.irepo.space/maven/") } dependencies { @@ -50,6 +52,7 @@ dependencies { compileOnly("ink.ptms.core:v11902:11902-minimize:mapped") compileOnly("ink.ptms.core:v11902:11902-minimize:universal") compileOnly("public:Zaphkiel:1.0.0") + compileOnly("pers.neige.neigeitems:NeigeItems:1.15.113") compileOnly("public:MMOItems:6.9.4") taboo("com.xbaimiao.ktor:ktor-plugins-bukkit:1.0.8") taboo(kotlin("stdlib")) diff --git a/src/main/kotlin/com/github/xbaimiao/shoppro/core/item/ItemLoaderManager.kt b/src/main/kotlin/com/github/xbaimiao/shoppro/core/item/ItemLoaderManager.kt index 67ca6b4..0842946 100644 --- a/src/main/kotlin/com/github/xbaimiao/shoppro/core/item/ItemLoaderManager.kt +++ b/src/main/kotlin/com/github/xbaimiao/shoppro/core/item/ItemLoaderManager.kt @@ -14,6 +14,7 @@ class ItemLoaderManager { itemLoaders.add(ZapItem) itemLoaders.add(MMOItem) itemLoaders.add(MythicItem) + itemLoaders.add(NeigeItem) } fun getVanillaShop(): ItemLoader = VanillaShopItem.Companion diff --git a/src/main/kotlin/com/github/xbaimiao/shoppro/core/item/impl/NeigeItem.kt b/src/main/kotlin/com/github/xbaimiao/shoppro/core/item/impl/NeigeItem.kt new file mode 100644 index 0000000..74f3cea --- /dev/null +++ b/src/main/kotlin/com/github/xbaimiao/shoppro/core/item/impl/NeigeItem.kt @@ -0,0 +1,55 @@ +package com.github.xbaimiao.shoppro.core.item.impl + +import com.github.xbaimiao.shoppro.core.item.Item +import com.github.xbaimiao.shoppro.core.item.ItemLoader +import com.github.xbaimiao.shoppro.core.shop.Shop +import ink.ptms.zaphkiel.Zaphkiel +import org.bukkit.Bukkit +import org.bukkit.Material +import org.bukkit.configuration.ConfigurationSection +import org.bukkit.entity.Player +import org.bukkit.inventory.ItemStack +import pers.neige.neigeitems.item.ItemGenerator +import pers.neige.neigeitems.manager.ItemManager + +/** + * @author dongzh1 + * @date 2024/1/9 17:59 + **/ +class NeigeItem( + private val neigeItem: ItemGenerator, + itemSetting: ItemSetting, + private val neigeId :String +) : VanillaShopItem(itemSetting) { + + override val material: Material + get() = neigeItem.staticItemStack.type + + override fun vanillaItem(player: Player): ItemStack { + return ItemManager.getItemStack(neigeId,player)!! + } + + override fun equal(itemStack: ItemStack): Boolean { + val item = ItemManager.getItemStack(neigeId) ?: return false + return ItemManager.getItemStack(neigeId) == item + } + + companion object : ItemLoader() { + override val prefix: String = "NeigeItems" + + override fun formSection(char: Char, section: ConfigurationSection, shop: Shop): Item { + if (Bukkit.getPluginManager().plugins.find { it.name.lowercase() == "NeigeItems".lowercase() } == null) { + error("NeigeItems Plugin not found") + } + val neigeId = section.getString("material")!!.substring(prefix.length + 1) + val item = ItemManager.getItem(neigeId)?: error("NeigeItems $neigeId not found") + return NeigeItem(item, section.toItemSetting(char, shop),neigeId) + } + + override fun parseToMaterial(section: ConfigurationSection): Material { + return Material.AIR + } + + } + +} \ No newline at end of file