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

78 lines
2.9 KiB
Kotlin
Raw Normal View History

2024-08-30 14:24:46 +08:00
/*
* Copyright © 2024 RTAkland
* Author: RTAkland
* Date: 2024/8/30
*/
package cn.rtast.fancybot.commands
2024-08-31 22:37:12 +08:00
import cn.rtast.fancybot.ADMINS
2024-08-30 14:24:46 +08:00
import cn.rtast.fancybot.util.file.SignManager
import cn.rtast.rob.entity.GroupMessage
2024-08-31 22:37:12 +08:00
import cn.rtast.rob.enums.UserRole
2024-08-30 14:24:46 +08:00
import cn.rtast.rob.util.BaseCommand
2024-09-02 11:30:58 +08:00
import cn.rtast.rob.util.ob.MessageChain
2024-08-30 14:24:46 +08:00
import cn.rtast.rob.util.ob.OBMessage
2024-09-03 12:32:52 +08:00
val signManager = SignManager()
2024-08-30 14:24:46 +08:00
class SignCommand : BaseCommand() {
2024-08-30 15:05:51 +08:00
override val commandNames = listOf("/签到", "/sign")
2024-08-30 14:24:46 +08:00
override suspend fun executeGroup(listener: OBMessage, message: GroupMessage, args: List<String>) {
if (signManager.isSigned(message.sender.userId)) {
2024-08-31 22:37:12 +08:00
val msg = MessageChain.Builder()
.addAt(message.sender.userId)
.addText("你今天已经签到过啦, 明天再来吧~")
.build()
listener.sendGroupMessage(message.groupId, msg)
2024-08-30 14:24:46 +08:00
return
}
val randomPoint = signManager.sign(message.sender.userId)
2024-08-31 22:37:12 +08:00
val msg = MessageChain.Builder()
.addAt(message.sender.userId)
.addText("你获得了 $randomPoint 点分数!")
.addNewLine()
.addText("发送‘/我的点数’ 或者 ‘/mp’ 即可查看当前的点数")
.build()
listener.sendGroupMessage(message.groupId, msg)
2024-08-30 14:24:46 +08:00
}
}
2024-08-31 22:37:12 +08:00
class MyPointCommand : BaseCommand() {
override val commandNames = listOf("/我的点数", "/mp")
2024-08-30 14:24:46 +08:00
override suspend fun executeGroup(listener: OBMessage, message: GroupMessage, args: List<String>) {
2024-09-03 21:38:50 +08:00
// query target's point
2024-08-31 22:37:12 +08:00
if (args.isNotEmpty() && (message.sender.role == UserRole.admin || message.sender.userId in ADMINS)) {
val targetId = args.first().toLong()
val targetData = signManager.getStatus(targetId)
2024-09-03 12:32:52 +08:00
val msg = MessageChain.Builder().addAt(message.sender.userId)
2024-08-31 22:37:12 +08:00
if (targetData == null) {
2024-09-03 21:38:50 +08:00
msg.addText("用户不存在, 需要先签到一次才能查询点数呢~")
2024-08-31 22:37:12 +08:00
} else {
msg.addText("用户: ${targetData.id} 的点数有: ${targetData.points}")
}
listener.sendGroupMessage(message.groupId, msg.build())
return
}
2024-09-03 21:38:50 +08:00
// query self point
2024-08-30 14:24:46 +08:00
val status = signManager.getStatus(message.sender.userId)
if (status == null) {
2024-08-31 22:37:12 +08:00
val msg = MessageChain.Builder()
.addAt(message.sender.userId)
.addText("你还没有签到过呢! 先发送‘/签到’再来查询吧~")
.build()
listener.sendGroupMessage(message.groupId, msg)
2024-08-30 14:24:46 +08:00
return
} else {
2024-08-31 22:37:12 +08:00
val msg = MessageChain.Builder()
.addAt(message.sender.userId)
.addText("你当前的点数为: ${status.points}")
.build()
listener.sendGroupMessage(message.groupId, msg)
}
}
}