From 560f6db26bd94f907a7ee76fbd5a6ffe91e84c13 Mon Sep 17 00:00:00 2001 From: xbaimiao <3104026189@qq.com> Date: Mon, 15 Jan 2024 16:44:35 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=AF=E9=80=89=E5=85=B3=E9=97=AD=E4=B8=80?= =?UTF-8?q?=E6=AC=A1=E6=80=A7=E5=87=BA=E5=94=AE=E6=88=96=E8=B4=AD=E4=B9=B0?= =?UTF-8?q?=E4=B8=80=E7=BB=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle.properties | 2 +- .../github/xbaimiao/shoppro/core/item/Item.kt | 1 + .../xbaimiao/shoppro/core/item/ItemLoader.kt | 3 +- .../xbaimiao/shoppro/core/item/ShopItem.kt | 9 +++-- .../shoppro/core/item/impl/ItemImpl.kt | 6 ++-- .../xbaimiao/shoppro/core/shop/ShopImpl.kt | 33 +++++-------------- 6 files changed, 23 insertions(+), 31 deletions(-) diff --git a/gradle.properties b/gradle.properties index 2cf5eac..4105011 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,2 +1,2 @@ group=com.github.xbaimiao.shoppro -version=1.2.4 +version=1.2.5 diff --git a/src/main/kotlin/com/github/xbaimiao/shoppro/core/item/Item.kt b/src/main/kotlin/com/github/xbaimiao/shoppro/core/item/Item.kt index 31dc5b3..b54aee5 100644 --- a/src/main/kotlin/com/github/xbaimiao/shoppro/core/item/Item.kt +++ b/src/main/kotlin/com/github/xbaimiao/shoppro/core/item/Item.kt @@ -19,6 +19,7 @@ interface Item { val vanilla: Boolean val commands: List val shop: Shop + val enableRight: Boolean fun isCommodity(): Boolean fun buildItem(player: Player): ItemStack diff --git a/src/main/kotlin/com/github/xbaimiao/shoppro/core/item/ItemLoader.kt b/src/main/kotlin/com/github/xbaimiao/shoppro/core/item/ItemLoader.kt index 92620d2..32f537a 100644 --- a/src/main/kotlin/com/github/xbaimiao/shoppro/core/item/ItemLoader.kt +++ b/src/main/kotlin/com/github/xbaimiao/shoppro/core/item/ItemLoader.kt @@ -47,7 +47,8 @@ abstract class ItemLoader { conditionIcon = this.getString("condition-icon")?.parseToMaterial(), conditionLore = this.getStringList("condition-lore"), conditionName = this.getString("condition-name"), - limitPermissionMap = limitMap + limitPermissionMap = limitMap, + enableRight = this.getBoolean("right_click", true) ) } 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 e5b2c8c..921e628 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 @@ -27,7 +27,8 @@ abstract class ShopItem( val limitServer: Long, private val limitPlayer: Long, private val limitPermissionMap: Map, - val currency: Currency + val currency: Currency, + override val enableRight: Boolean ) : Item, KetherCondition { constructor(itemSetting: ItemSetting) : this( @@ -46,7 +47,8 @@ abstract class ShopItem( itemSetting.limitServer, itemSetting.limitPlayer, itemSetting.limitPermissionMap, - itemSetting.currency + itemSetting.currency, + itemSetting.enableRight ) class ItemSetting( @@ -65,7 +67,8 @@ abstract class ShopItem( val limitServer: Long, val limitPlayer: Long, val limitPermissionMap: Map, - var currency: Currency + var currency: Currency, + val enableRight: Boolean ) override fun isCommodity(): Boolean { diff --git a/src/main/kotlin/com/github/xbaimiao/shoppro/core/item/impl/ItemImpl.kt b/src/main/kotlin/com/github/xbaimiao/shoppro/core/item/impl/ItemImpl.kt index bdf43b1..1b158dc 100644 --- a/src/main/kotlin/com/github/xbaimiao/shoppro/core/item/impl/ItemImpl.kt +++ b/src/main/kotlin/com/github/xbaimiao/shoppro/core/item/impl/ItemImpl.kt @@ -21,7 +21,8 @@ class ItemImpl( override val key: Char, override val vanilla: Boolean, override val commands: List, - override val shop: Shop + override val shop: Shop, + override val enableRight: Boolean ) : Item { override lateinit var material: Material @@ -82,7 +83,8 @@ class ItemImpl( char, section.getBoolean("vanilla", true), section.getStringList("commands"), - shop + shop, + section.getBoolean("right_click", true) ) } } 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 907147b..940580e 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 @@ -9,8 +9,6 @@ import com.github.xbaimiao.shoppro.core.item.KetherCondition import com.github.xbaimiao.shoppro.core.item.ShopItem import com.github.xbaimiao.shoppro.util.Util.howManyItems import com.github.xbaimiao.shoppro.util.Util.replacePapi -import io.lumine.xikage.mythicmobs.utils.adventure.text.minimessage.MiniMessage -import io.lumine.xikage.mythicmobs.utils.adventure.text.minimessage.MiniMessageImpl import org.bukkit.Bukkit import org.bukkit.configuration.Configuration import org.bukkit.entity.Player @@ -110,7 +108,7 @@ class ShopImpl(private val configuration: Configuration) : Shop() { } val amount = when (event.clickEvent().click) { org.bukkit.event.inventory.ClickType.LEFT -> 1 - org.bukkit.event.inventory.ClickType.RIGHT -> 64 + org.bukkit.event.inventory.ClickType.RIGHT -> if (item.enableRight) 64 else 1 else -> return@onClick } checkBuyLimit(amount, item, player) @@ -124,32 +122,19 @@ class ShopImpl(private val configuration: Configuration) : Shop() { if (event.clickType != ClickType.CLICK) { return@onClick } - val amount : Int - if (configuration.getBoolean("items.${item.key}.right_click")){ - amount = when (event.clickEvent().click) { - org.bukkit.event.inventory.ClickType.LEFT -> 1 - org.bukkit.event.inventory.ClickType.RIGHT -> 64 - org.bukkit.event.inventory.ClickType.SHIFT_RIGHT -> { - player.inventory.howManyItems { - item.equal(it) - } + val amount = when (event.clickEvent().click) { + org.bukkit.event.inventory.ClickType.LEFT -> 1 + org.bukkit.event.inventory.ClickType.RIGHT -> if (item.enableRight) 64 else 1 + org.bukkit.event.inventory.ClickType.SHIFT_RIGHT -> { + player.inventory.howManyItems { + item.equal(it) } - - else -> return@onClick } - }else{ - amount = when (event.clickEvent().click) { - org.bukkit.event.inventory.ClickType.LEFT -> 1 - org.bukkit.event.inventory.ClickType.SHIFT_RIGHT -> { - player.inventory.howManyItems { - item.equal(it) - } - } - else -> return@onClick - } + else -> return@onClick } + checkSellLimit(amount, item, player) event.currentItem?.let { event.clickEvent().inventory.setItem(event.rawSlot, item.update(player))