Files
FancyBot/src/main/kotlin/cn/rtast/fancybot/commands/niuzi/NiuziRedeemCommand.kt
T

84 lines
3.3 KiB
Kotlin
Raw Normal View History

2024-09-03 12:32:52 +08:00
/*
* Copyright © 2024 RTAkland
* Author: RTAkland
* Date: 2024/9/3
*/
package cn.rtast.fancybot.commands.niuzi
2024-09-03 12:32:52 +08:00
import cn.rtast.fancybot.annotations.CommandDescription
2024-09-03 14:37:00 +08:00
import cn.rtast.fancybot.itemManager
2024-09-24 14:46:06 +08:00
import cn.rtast.fancybot.niuziManager
2024-09-03 12:32:52 +08:00
import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.OneBotListener
2024-09-03 12:32:52 +08:00
@CommandDescription("使用牛子长度兑换物品")
class NiuziRedeemCommand : BaseCommand() {
2024-09-26 05:47:31 +08:00
override val commandNames = listOf("/rdm")
2024-09-03 12:32:52 +08:00
override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
2024-09-03 21:38:50 +08:00
if (args.isEmpty()) {
val msg = MessageChain.Builder()
2024-09-27 23:31:01 +08:00
.addReply(message.messageId)
2024-09-03 21:38:50 +08:00
.addText("发送 /rdm <物品名称> 即可兑换哦!")
.addNewLine()
.addText("发送 /rdm list 即可查看所有可兑换的物品~")
.addNewLine()
2024-09-24 14:46:06 +08:00
.addText("发送 `我的牛子` 可以查看自己的牛子长度~")
2024-09-03 21:38:50 +08:00
.build()
listener.sendGroupMessage(message.groupId, msg)
return
}
2024-09-24 14:46:06 +08:00
val status = niuziManager.getUser(message.sender.userId)
2024-09-03 12:32:52 +08:00
if (status == null) {
val msg = MessageChain.Builder()
2024-09-27 23:31:01 +08:00
.addReply(message.messageId)
2024-09-03 12:32:52 +08:00
.addText("你还没有签到过呢要签到一次才能兑换哦~")
.build()
listener.sendGroupMessage(message.groupId, msg)
return
}
val item = args.first()
if (item == "list" || item == "列表") {
2024-09-03 14:37:00 +08:00
val priceTable =
2024-09-27 23:31:01 +08:00
itemManager.items.joinToString("\n")
{ "[${it.itemNames.joinToString("|")}]:${it.itemPrice}cm" }
message.reply(priceTable)
2024-09-03 12:32:52 +08:00
return
}
2024-09-03 14:37:00 +08:00
val selectedItem = itemManager.items.find { it.itemNames.any { any -> any == item } }
if (selectedItem == null) {
2024-09-03 12:32:52 +08:00
val msg = MessageChain.Builder()
2024-09-27 23:31:01 +08:00
.addReply(message.messageId)
2024-09-03 12:32:52 +08:00
.addText("没有找到你想兑换的东西呢")
.addNewLine()
2024-09-03 21:38:50 +08:00
.addText("你可以发送 /rdm list来查看所有可兑换的物品")
2024-09-03 12:32:52 +08:00
.build()
listener.sendGroupMessage(message.groupId, msg)
return
}
2024-09-03 16:41:06 +08:00
val selectedItemPrice = selectedItem.itemPrice
2024-09-24 14:46:06 +08:00
if (selectedItemPrice > status.length) {
2024-09-03 12:32:52 +08:00
val msg = MessageChain.Builder()
2024-09-27 23:31:01 +08:00
.addReply(message.messageId)
2024-09-24 14:46:06 +08:00
.addText("你的牛子长度不够兑换这个物品呢~")
2024-09-03 12:32:52 +08:00
.addNewLine()
2024-09-24 14:46:06 +08:00
.addText("你有: ${status.length}cm, 兑换需要: $selectedItemPrice cm~\"")
2024-09-03 12:32:52 +08:00
.build()
listener.sendGroupMessage(message.groupId, msg)
return
}
2024-09-24 14:46:06 +08:00
val afterStatus = niuziManager.redeemItem(message.sender.userId, selectedItemPrice)?.length!!
2024-09-03 12:32:52 +08:00
val msg = MessageChain.Builder()
2024-09-27 23:31:01 +08:00
.addReply(message.messageId)
2024-09-03 12:32:52 +08:00
.addText("兑换成功正在发送奖品中~")
.addNewLine()
2024-09-24 14:46:06 +08:00
.addText("你花费了${selectedItemPrice}cm来兑换奖品, 还剩${afterStatus}cm")
2024-09-03 12:32:52 +08:00
.build()
listener.sendGroupMessage(message.groupId, msg)
2024-09-03 14:37:00 +08:00
selectedItem.redeemGroup(listener, message, afterStatus)
2024-09-03 12:32:52 +08:00
}
}