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

85 lines
2.7 KiB
Kotlin
Raw Normal View History

2024-08-27 18:44:32 +08:00
/*
* Copyright © 2024 RTAkland
* Author: RTAkland
* Date: 2024/8/26
*/
package cn.rtast.fancybot
2024-09-02 11:30:58 +08:00
import cn.rtast.fancybot.commands.AntiRevokeCommand
2024-08-27 18:44:32 +08:00
import cn.rtast.fancybot.commands.EchoCommand
2024-08-30 16:42:53 +08:00
import cn.rtast.fancybot.commands.FKXQSCommand
import cn.rtast.fancybot.commands.HitokotoCommand
2024-08-27 18:44:32 +08:00
import cn.rtast.fancybot.commands.JrrpCommand
2024-08-27 19:15:47 +08:00
import cn.rtast.fancybot.commands.MusicCommand
2024-08-30 14:24:46 +08:00
import cn.rtast.fancybot.commands.MyPointCommand
2024-08-30 21:07:08 +08:00
import cn.rtast.fancybot.commands.QRCodeCommand
2024-08-31 22:37:12 +08:00
import cn.rtast.fancybot.commands.RedeemCommand
2024-08-30 14:24:46 +08:00
import cn.rtast.fancybot.commands.SignCommand
2024-08-30 15:05:51 +08:00
import cn.rtast.fancybot.entity.enums.WSType
2024-08-30 14:24:46 +08:00
import cn.rtast.fancybot.util.file.ConfigManager
import cn.rtast.fancybot.util.initDatabase
2024-08-27 18:44:32 +08:00
import cn.rtast.rob.ROneBotFactory
2024-09-02 11:30:58 +08:00
import cn.rtast.rob.entity.GetMessage
2024-08-27 18:44:32 +08:00
import cn.rtast.rob.entity.GroupMessage
2024-09-02 11:30:58 +08:00
import cn.rtast.rob.entity.GroupRevokeMessage
import cn.rtast.rob.util.ob.MessageChain
2024-08-27 18:44:32 +08:00
import cn.rtast.rob.util.ob.OBMessage
import org.java_websocket.WebSocket
class FancyBot : OBMessage {
2024-09-02 11:30:58 +08:00
override suspend fun onGroupMessage(ws: WebSocket, message: GroupMessage, json: String) {
2024-08-27 18:44:32 +08:00
println(message.rawMessage)
}
2024-09-02 11:30:58 +08:00
override suspend fun onGroupMessageRevoke(ws: WebSocket, message: GroupRevokeMessage) {
val msg = MessageChain.Builder()
.addText("用户: ${message.userId} 被: ${message.operatorId} 撤回了一条消息")
.addNewLine()
.addText("使用/revoke ${message.messageId} 来获取被撤回的消息")
.build()
this.sendGroupMessage(message.groupId, msg)
}
override suspend fun onGetGroupMessageResponse(ws: WebSocket, message: GetMessage) {
if (message.data.id == "revoke") {
AntiRevokeCommand.getMessageCallback(this, message)
}
}
override suspend fun onWebsocketErrorEvent(ws: WebSocket, ex: Exception) {
ex.printStackTrace()
}
2024-08-29 14:36:06 +08:00
}
2024-08-30 14:24:46 +08:00
val commands = listOf(
EchoCommand(),
JrrpCommand(),
MusicCommand(),
2024-08-31 22:37:12 +08:00
SignCommand(), RedeemCommand(), MyPointCommand(),
2024-08-30 16:42:53 +08:00
HitokotoCommand(),
2024-08-30 21:07:08 +08:00
FKXQSCommand(),
2024-09-02 11:30:58 +08:00
QRCodeCommand(),
AntiRevokeCommand()
2024-08-30 14:24:46 +08:00
)
val configManager = ConfigManager()
2024-08-29 14:36:06 +08:00
suspend fun main() {
2024-08-27 18:44:32 +08:00
val fancyBot = FancyBot()
2024-08-30 15:05:51 +08:00
val workType = configManager.wsType
val accessToken = configManager.accessToken
val rob = if (workType == WSType.Client) {
val address = configManager.wsAddress
ROneBotFactory.createClient(address, accessToken, fancyBot)
} else {
val port = configManager.wsPort
ROneBotFactory.createServer(port, accessToken, fancyBot)
}
val commandManager = rob.commandManager
2024-08-29 14:36:06 +08:00
commands.forEach { commandManager.register(it) }
initDatabase()
2024-08-27 18:44:32 +08:00
}