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))