From 717b06238159f0d5ef9244c507b9a193d0a4a680 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E7=99=BD?= <67080574+xbaimiao@users.noreply.github.com> Date: Sat, 10 Sep 2022 18:33:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=91=BD=E4=BB=A4=E6=8C=89=E9=92=AE=E6=94=AF?= =?UTF-8?q?=E6=8C=81=20IA=20HEAD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xbaimiao/shoppro/core/item/ItemImpl.kt | 30 +++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/com/github/xbaimiao/shoppro/core/item/ItemImpl.kt b/src/main/kotlin/com/github/xbaimiao/shoppro/core/item/ItemImpl.kt index 89deebc..1ea09c7 100644 --- a/src/main/kotlin/com/github/xbaimiao/shoppro/core/item/ItemImpl.kt +++ b/src/main/kotlin/com/github/xbaimiao/shoppro/core/item/ItemImpl.kt @@ -5,14 +5,36 @@ import com.github.xbaimiao.shoppro.util.Util.replacePapi import org.bukkit.Material import org.bukkit.entity.Player import org.bukkit.inventory.ItemStack +import taboolib.library.xseries.XMaterial +import taboolib.platform.util.ItemBuilder import taboolib.platform.util.modifyLore +import java.util.* -open class ItemImpl( - override val material: Material, override val lore: List, override val name: String, +class ItemImpl( + materialString: String, override val lore: List, override val name: String, override val key: Char, override val vanilla: Boolean, override val commands: List, override val shop: Shop ) : Item { + override lateinit var material: Material + + var custom: Int? = null + var head: String? = null + + init { + if (materialString.startsWith("HEAD:")) { + material = XMaterial.PLAYER_HEAD.parseMaterial()!! + head = materialString.substring(5) + } else if (materialString.startsWith("IA:")) { + materialString.split(":").let { strings -> + material = XMaterial.matchXMaterial(strings[1]).get().parseMaterial()!! + custom = strings[2].toInt() + } + } else { + material = XMaterial.matchXMaterial(materialString).get().parseMaterial()!! + } + } + override fun isCommodity(): Boolean { return false } @@ -21,6 +43,10 @@ open class ItemImpl( return taboolib.platform.util.buildItem(material) { this.name = this@ItemImpl.name this.lore.addAll(this@ItemImpl.lore) + custom?.let { customModelData = it } + head?.let { + skullTexture = ItemBuilder.SkullTexture(it, UUID.randomUUID()) + } } }