This commit is contained in:
小白
2022-09-11 19:10:09 +08:00
parent a82dd19ff3
commit 9002093db4
3 changed files with 24 additions and 22 deletions
@@ -28,25 +28,27 @@ interface Item {
fun buildItem(): ItemStack
fun update(player: Player): ItemStack
fun exeCommands(player: Player) {
commands.map { it.replace("%player%", player.name) }.forEach { command ->
if (command.startsWith("[tell] ")) {
player.sendMessage(command.substring(7).colored())
} else if (command.startsWith("[console] ")) {
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), command.substring(10))
} else if (command.startsWith("[player] ")) {
Bukkit.dispatchCommand(player, command.substring(9))
} else if (command.startsWith("[open] ")) {
val shop = ShopManager.shops.firstOrNull { it.getName() == command.substring(7) }
shop?.open(player)
} else if (command.startsWith("[op] ")) {
Bukkit.dispatchCommand(object : Player by player {
override fun isOp() = true
override fun hasPermission(p0: Permission) = true
override fun hasPermission(p0: String) = true
}, command.substring(5))
} else if (command == "close" || command.startsWith("[close]")) {
player.closeInventory()
fun exeCommands(player: Player, amount: Int) {
for (a in 1..amount){
commands.map { it.replace("%player%", player.name) }.forEach { command ->
if (command.startsWith("[tell] ")) {
player.sendMessage(command.substring(7).colored())
} else if (command.startsWith("[console] ")) {
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), command.substring(10))
} else if (command.startsWith("[player] ")) {
Bukkit.dispatchCommand(player, command.substring(9))
} else if (command.startsWith("[open] ")) {
val shop = ShopManager.shops.firstOrNull { it.getName() == command.substring(7) }
shop?.open(player)
} else if (command.startsWith("[op] ")) {
Bukkit.dispatchCommand(object : Player by player {
override fun isOp() = true
override fun hasPermission(p0: Permission) = true
override fun hasPermission(p0: String) = true
}, command.substring(5))
} else if (command == "close" || command.startsWith("[close]")) {
player.closeInventory()
}
}
}
}
@@ -162,7 +162,7 @@ class ShopImpl(private val configuration: Configuration) : Shop() {
}
} else {
onClick(item.key) {
item.exeCommands(player)
item.exeCommands(player, 1)
}
}
}
@@ -188,7 +188,7 @@ class ShopImpl(private val configuration: Configuration) : Shop() {
}
Bukkit.getPluginManager().callEvent(ShopProBuyEvent(item, amount, player))
ShopPro.database.addAmount(item, player, LimitData(amount.toLong(), 0L))
item.exeCommands(player)
item.exeCommands(player, amount)
player.sendLang("buy-item", amount, item.name, item.price * amount)
} else {
player.sendLang("not-money")