feat: add listening groups config

This commit is contained in:
2024-09-03 21:38:50 +08:00
parent e6255f93eb
commit eba8951b5f
7 files changed
+27 -5

No files matched your search

+2 -1
View File
@@ -24,7 +24,8 @@ val DEFAULT_CONFIG = Config(
wsAddress = "ws://127.0.0.1", wsAddress = "ws://127.0.0.1",
wsType = WSType.Client, wsType = WSType.Client,
accessToken = "114514", accessToken = "114514",
port = 6760 port = 6760,
listeningGroups = listOf(114514, 1919810)
) )
val ADMINS = listOf( val ADMINS = listOf(
@@ -92,8 +92,9 @@ suspend fun main() {
val port = configManager.wsPort val port = configManager.wsPort
ROneBotFactory.createServer(port, accessToken, fancyBot) ROneBotFactory.createServer(port, accessToken, fancyBot)
} }
val commandManager = rob.commandManager
initDatabase() initDatabase()
val commandManager = rob.commandManager
commands.forEach { commandManager.register(it) } commands.forEach { commandManager.register(it) }
items.forEach { itemManager.register(it) } items.forEach { itemManager.register(it) }
rob.addListeningGroups(*configManager.listeningGroups.toLongArray())
} }
@@ -17,6 +17,18 @@ class RedeemCommand : BaseCommand() {
override val commandNames = listOf("/redeem", "/兑换", "/rdm") override val commandNames = listOf("/redeem", "/兑换", "/rdm")
override suspend fun executeGroup(listener: OBMessage, message: GroupMessage, args: List<String>) { override suspend fun executeGroup(listener: OBMessage, message: GroupMessage, args: List<String>) {
if (args.isEmpty()) {
val msg = MessageChain.Builder()
.addAt(message.sender.userId)
.addText("发送 /rdm <物品名称> 即可兑换哦!")
.addNewLine()
.addText("发送 /rdm list 即可查看所有可兑换的物品~")
.addNewLine()
.addText("发送 /mp 可以查看自己拥有的点数~")
.build()
listener.sendGroupMessage(message.groupId, msg)
return
}
val status = signManager.getStatus(message.sender.userId) val status = signManager.getStatus(message.sender.userId)
if (status == null) { if (status == null) {
val msg = MessageChain.Builder() val msg = MessageChain.Builder()
@@ -44,7 +56,7 @@ class RedeemCommand : BaseCommand() {
.addAt(message.sender.userId) .addAt(message.sender.userId)
.addText("没有找到你想兑换的东西呢") .addText("没有找到你想兑换的东西呢")
.addNewLine() .addNewLine()
.addText("你可以输入/兑换 list来查看所有可兑换的物品") .addText("你可以发送 /rdm list来查看所有可兑换的物品")
.build() .build()
listener.sendGroupMessage(message.groupId, msg) listener.sendGroupMessage(message.groupId, msg)
return return
@@ -44,19 +44,21 @@ class MyPointCommand : BaseCommand() {
override val commandNames = listOf("/我的点数", "/mp") override val commandNames = listOf("/我的点数", "/mp")
override suspend fun executeGroup(listener: OBMessage, message: GroupMessage, args: List<String>) { override suspend fun executeGroup(listener: OBMessage, message: GroupMessage, args: List<String>) {
// query target's point
if (args.isNotEmpty() && (message.sender.role == UserRole.admin || message.sender.userId in ADMINS)) { if (args.isNotEmpty() && (message.sender.role == UserRole.admin || message.sender.userId in ADMINS)) {
val targetId = args.first().toLong() val targetId = args.first().toLong()
val targetData = signManager.getStatus(targetId) val targetData = signManager.getStatus(targetId)
val msg = MessageChain.Builder().addAt(message.sender.userId) val msg = MessageChain.Builder().addAt(message.sender.userId)
if (targetData == null) { if (targetData == null) {
msg.addText("用户不存在, 需要先签到一次才能查询点数呢~") msg.addText("用户不存在, 需要先签到一次才能查询点数呢~")
} else { } else {
msg.addText("用户: ${targetData.id} 的点数有: ${targetData.points}") msg.addText("用户: ${targetData.id} 的点数有: ${targetData.points}")
} }
listener.sendGroupMessage(message.groupId, msg.build()) listener.sendGroupMessage(message.groupId, msg.build())
return return
} }
// query self point
val status = signManager.getStatus(message.sender.userId) val status = signManager.getStatus(message.sender.userId)
if (status == null) { if (status == null) {
val msg = MessageChain.Builder() val msg = MessageChain.Builder()
@@ -15,4 +15,5 @@ data class Config(
val wsAddress: String, val wsAddress: String,
val accessToken: String, val accessToken: String,
val port: Int, val port: Int,
val listeningGroups: List<Long>
) )
@@ -16,4 +16,5 @@ class ConfigManager : JsonFileHandler<Config>("config.json") {
val wsPort get() = this.read<Config>().port val wsPort get() = this.read<Config>().port
val accessToken get() = this.read<Config>().accessToken val accessToken get() = this.read<Config>().accessToken
val wsType get() = this.read<Config>().wsType val wsType get() = this.read<Config>().wsType
val listeningGroups get() = this.read<Config>().listeningGroups
} }
+5 -1
View File
@@ -3,5 +3,9 @@
"wsType": "Client", "wsType": "Client",
"wsAddress": "ws://127.0.0.1", "wsAddress": "ws://127.0.0.1",
"accessToken": "114514", "accessToken": "114514",
"port": 6760 "port": 6760,
"listeningGroups": [
114514,
1919810
]
} }