feat: add listening groups config
This commit is contained in:
7 files changed
+27
-5
No files matched your search
@@ -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
|
||||||
}
|
}
|
||||||
@@ -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
|
||||||
|
]
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user