From b4957ef748a64aa114b8b2da008bcdb6eec69663 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 16:07:54 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=9D=E8=AF=95=E6=94=AF=E6=8C=81ItemsAdder?= =?UTF-8?q?=E8=B4=B4=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../github/xbaimiao/shoppro/core/item/ItemImpl.kt | 4 ++-- .../github/xbaimiao/shoppro/core/item/ShopItem.kt | 8 ++++---- .../com/github/xbaimiao/shoppro/core/shop/Shop.kt | 2 +- .../github/xbaimiao/shoppro/core/shop/ShopImpl.kt | 9 +++++---- .../xbaimiao/shoppro/core/vault/VaultImpl.kt | 2 +- .../com/github/xbaimiao/shoppro/{ => util}/Util.kt | 14 +++++++++++++- 6 files changed, 26 insertions(+), 13 deletions(-) rename src/main/kotlin/com/github/xbaimiao/shoppro/{ => util}/Util.kt (59%) 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 3cf21b4..89deebc 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 @@ -1,7 +1,7 @@ package com.github.xbaimiao.shoppro.core.item import com.github.xbaimiao.shoppro.core.shop.Shop -import me.clip.placeholderapi.PlaceholderAPI +import com.github.xbaimiao.shoppro.util.Util.replacePapi import org.bukkit.Material import org.bukkit.entity.Player import org.bukkit.inventory.ItemStack @@ -28,7 +28,7 @@ open class ItemImpl( val item = buildItem().modifyLore { val newLore = ArrayList() for (line in this) { - newLore.add(PlaceholderAPI.setPlaceholders(player, line)) + newLore.add(line.replacePapi(player)) } this.clear() this.addAll(newLore) diff --git a/src/main/kotlin/com/github/xbaimiao/shoppro/core/item/ShopItem.kt b/src/main/kotlin/com/github/xbaimiao/shoppro/core/item/ShopItem.kt index c955c6d..5cddb1f 100644 --- a/src/main/kotlin/com/github/xbaimiao/shoppro/core/item/ShopItem.kt +++ b/src/main/kotlin/com/github/xbaimiao/shoppro/core/item/ShopItem.kt @@ -1,10 +1,10 @@ package com.github.xbaimiao.shoppro.core.item import com.github.xbaimiao.shoppro.ShopPro -import com.github.xbaimiao.shoppro.Util.format -import com.github.xbaimiao.shoppro.Util.howManyItems import com.github.xbaimiao.shoppro.core.shop.Shop -import me.clip.placeholderapi.PlaceholderAPI +import com.github.xbaimiao.shoppro.util.Util.format +import com.github.xbaimiao.shoppro.util.Util.howManyItems +import com.github.xbaimiao.shoppro.util.Util.replacePapi import org.bukkit.entity.Player import org.bukkit.inventory.ItemStack import taboolib.platform.util.modifyLore @@ -55,7 +55,7 @@ abstract class ShopItem : Item { } * price).format() newLine = newLine.replace("\${priceAll}", priceAll.toString()) } - newLore.add(PlaceholderAPI.setPlaceholders(player, newLine)) + newLore.add(newLine.replacePapi(player)) } this.clear() this.addAll(newLore) diff --git a/src/main/kotlin/com/github/xbaimiao/shoppro/core/shop/Shop.kt b/src/main/kotlin/com/github/xbaimiao/shoppro/core/shop/Shop.kt index 4ac9f73..067d5fb 100644 --- a/src/main/kotlin/com/github/xbaimiao/shoppro/core/shop/Shop.kt +++ b/src/main/kotlin/com/github/xbaimiao/shoppro/core/shop/Shop.kt @@ -15,7 +15,7 @@ abstract class Shop { } - abstract fun getTitle(): String + abstract fun getTitle(player: Player): String abstract fun getType(): ShopType diff --git a/src/main/kotlin/com/github/xbaimiao/shoppro/core/shop/ShopImpl.kt b/src/main/kotlin/com/github/xbaimiao/shoppro/core/shop/ShopImpl.kt index e46bee4..0768591 100644 --- a/src/main/kotlin/com/github/xbaimiao/shoppro/core/shop/ShopImpl.kt +++ b/src/main/kotlin/com/github/xbaimiao/shoppro/core/shop/ShopImpl.kt @@ -1,11 +1,12 @@ package com.github.xbaimiao.shoppro.core.shop import com.github.xbaimiao.shoppro.ShopPro -import com.github.xbaimiao.shoppro.Util.howManyItems import com.github.xbaimiao.shoppro.api.ShopProBuyEvent import com.github.xbaimiao.shoppro.api.ShopProSellEvent import com.github.xbaimiao.shoppro.core.database.LimitData import com.github.xbaimiao.shoppro.core.item.* +import com.github.xbaimiao.shoppro.util.Util.howManyItems +import com.github.xbaimiao.shoppro.util.Util.replacePapi import org.bukkit.Bukkit import org.bukkit.configuration.Configuration import org.bukkit.entity.Player @@ -77,8 +78,8 @@ class ShopImpl(private val configuration: Configuration) : Shop() { } } - override fun getTitle(): String { - return configuration.getString("title")!!.colored() + override fun getTitle(player: Player): String { + return configuration.getString("title")!!.colored().replacePapi(player) } override fun getType(): ShopType { @@ -90,7 +91,7 @@ class ShopImpl(private val configuration: Configuration) : Shop() { } override fun open(player: Player) { - player.openMenu(getTitle()) { + player.openMenu(getTitle(player)) { rows(slots.size) slots = ArrayList>().also { it.addAll(this@ShopImpl.slots) } onClick { diff --git a/src/main/kotlin/com/github/xbaimiao/shoppro/core/vault/VaultImpl.kt b/src/main/kotlin/com/github/xbaimiao/shoppro/core/vault/VaultImpl.kt index 4969ede..8965f39 100644 --- a/src/main/kotlin/com/github/xbaimiao/shoppro/core/vault/VaultImpl.kt +++ b/src/main/kotlin/com/github/xbaimiao/shoppro/core/vault/VaultImpl.kt @@ -1,6 +1,6 @@ package com.github.xbaimiao.shoppro.core.vault -import com.github.xbaimiao.shoppro.Util.format +import com.github.xbaimiao.shoppro.util.Util.format import org.bukkit.entity.Player import taboolib.platform.compat.VaultService diff --git a/src/main/kotlin/com/github/xbaimiao/shoppro/Util.kt b/src/main/kotlin/com/github/xbaimiao/shoppro/util/Util.kt similarity index 59% rename from src/main/kotlin/com/github/xbaimiao/shoppro/Util.kt rename to src/main/kotlin/com/github/xbaimiao/shoppro/util/Util.kt index d4c3244..74fdd9f 100644 --- a/src/main/kotlin/com/github/xbaimiao/shoppro/Util.kt +++ b/src/main/kotlin/com/github/xbaimiao/shoppro/util/Util.kt @@ -1,5 +1,8 @@ -package com.github.xbaimiao.shoppro +package com.github.xbaimiao.shoppro.util +import me.clip.placeholderapi.PlaceholderAPI +import org.bukkit.Bukkit +import org.bukkit.entity.Player import org.bukkit.inventory.Inventory import org.bukkit.inventory.ItemStack import taboolib.platform.util.isNotAir @@ -7,6 +10,8 @@ import java.text.DecimalFormat object Util { + private val hasPapi by lazy { Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null } + fun Double.format(): Double { val df = DecimalFormat("#0.00") return df.format(this).toDouble() @@ -24,4 +29,11 @@ object Util { return amount } + fun String.replacePapi(player: Player): String { + if (hasPapi) { + return PlaceholderAPI.setPlaceholders(player, this) + } + return this + } + } \ No newline at end of file