This commit is contained in:
小白
2022-10-09 19:18:33 +08:00
parent e72a7305bf
commit 528d981cf0
3 changed files with 36 additions and 12 deletions
+1 -1
View File
@@ -1,2 +1,2 @@
group=com.github.xbaimiao.shoppro
version=1.0.9-beta
version=1.0.9
@@ -74,7 +74,7 @@ class ShopImpl(private val configuration: Configuration) : Shop() {
shopItem.equal(it)
}
if (amount > 0) {
sell(amount, shopItem, player)
checkSellLimit(amount, shopItem, player)
}
}
}
@@ -99,7 +99,7 @@ class ShopImpl(private val configuration: Configuration) : Shop() {
org.bukkit.event.inventory.ClickType.RIGHT -> 64
else -> return@onClick
}
buy(amount, item, player)
checkBuyLimit(amount, item, player)
event.currentItem?.let {
event.clickEvent().inventory.setItem(event.rawSlot, item.update(player))
}
@@ -121,7 +121,7 @@ class ShopImpl(private val configuration: Configuration) : Shop() {
else -> return@onClick
}
sell(amount, item, player)
checkSellLimit(amount, item, player)
event.currentItem?.let {
event.clickEvent().inventory.setItem(event.rawSlot, item.update(player))
}
@@ -136,17 +136,29 @@ class ShopImpl(private val configuration: Configuration) : Shop() {
}
}
private fun buy(amount: Int, item: ShopItem, player: Player) {
private fun checkBuyLimit(amount: Int, item: ShopItem, player: Player) {
if (item.isLimit()) {
if (ShopPro.database.getPlayerAlreadyData(player, item).buy + amount > item.limitPlayer) {
if (ShopPro.database.getPlayerAlreadyData(player, item).buy >= item.limitPlayer) {
player.sendLang("buy-limit-player", item.limitPlayer)
return
}
if (ShopPro.database.getServerAlreadyData(item).buy >= item.limitServer) {
player.sendLang("buy-limit-server", item.limitServer)
return
}
if (ShopPro.database.getPlayerAlreadyData(player, item).buy + amount > item.limitPlayer) {
buy((item.limitPlayer - ShopPro.database.getPlayerAlreadyData(player, item).buy).toInt(), item, player)
return
}
if (ShopPro.database.getServerAlreadyData(item).buy + amount > item.limitServer) {
player.sendLang("buy-limit-player", item.limitServer)
buy((item.limitServer - ShopPro.database.getServerAlreadyData(item).buy).toInt(), item, player)
return
}
}
buy(amount, item, player)
}
private fun buy(amount: Int, item: ShopItem, player: Player) {
if (item.currency.takeMoney(player, item.price * amount)) {
if (item.vanilla) {
val vanilla = item.vanillaItem()
@@ -162,17 +174,29 @@ class ShopImpl(private val configuration: Configuration) : Shop() {
}
}
private fun sell(amount: Int, item: ShopItem, player: Player) {
private fun checkSellLimit(amount: Int, item: ShopItem, player: Player) {
if (item.isLimit()) {
if (ShopPro.database.getPlayerAlreadyData(player, item).sell + amount > item.limitPlayer) {
if (ShopPro.database.getPlayerAlreadyData(player, item).sell >= item.limitPlayer) {
player.sendLang("sell-limit-player", item.limitPlayer)
return
}
if (ShopPro.database.getServerAlreadyData(item).sell + amount > item.limitServer) {
if (ShopPro.database.getServerAlreadyData(item).sell >= item.limitServer) {
player.sendLang("sell-limit-server", item.limitServer)
return
}
if (ShopPro.database.getPlayerAlreadyData(player, item).sell + amount > item.limitPlayer) {
sell((item.limitPlayer - ShopPro.database.getPlayerAlreadyData(player, item).sell).toInt(), item, player)
return
}
if (ShopPro.database.getServerAlreadyData(item).sell + amount > item.limitServer) {
sell((item.limitServer - ShopPro.database.getServerAlreadyData(item).sell).toInt(), item, player)
return
}
}
sell(amount, item, player)
}
private fun sell(amount: Int, item: ShopItem, player: Player) {
if (player.inventory.hasItem(amount) { item.equal(it) }) {
player.inventory.takeItem(amount) { item.equal(it) }
item.currency.giveMoney(player, item.price * amount)
+2 -2
View File
@@ -4,8 +4,8 @@ not-item: "&7[&e&l!&7] 你没有足够的可以出售的物品"
sell-item: "&7[&e&l!&7] 你出售了§6 {0}个 §7{1}§7获得了§6 {2}"
sell-limit-player: "&7[&e&l!&7] 此物品每人每日限制收购{0}个,已达到今日收购限制"
sell-limit-server: "&7[&e&l!&7] 此物品全服每日限制收购{0}个,已达到今日收购限制"
buy-limit-player: "&7[&e&l!&7] 此物品每人每日限制购买{0}个,今日购买限制"
buy-limit-server: "&7[&e&l!&7] 此物品全服每日限制购买{0}个,今日购买限制"
buy-limit-player: "&7[&e&l!&7] 此物品每人每日限制购买{0}个,已达到今日购买限制"
buy-limit-server: "&7[&e&l!&7] 此物品全服每日限制购买{0}个,已达到今日购买限制"
buy-item: "&7[&e&l!&7] 你购买了§6 {0}个 §7{1} §7花费了§6 {2}"
not-money: "&7[&e&l!&7] 你没有足够的钱"
sell-all-error: "&7[&e&l!&7] 此商店非出售商店"