feat: add zibi and unset zibi command, bump rob to 1.8.4

This commit is contained in:
2024-09-19 11:06:40 +08:00
parent d284381554
commit f36c008edf
38 files changed
+120 -84

No files matched your search

+1 -1
View File
@@ -1,6 +1,6 @@
[versions] [versions]
kotlinVersion = "2.0.10" kotlinVersion = "2.0.10"
ronebotVersion = "1.8.1" ronebotVersion = "1.8.4"
shadowVersion = "8.3.0" shadowVersion = "8.3.0"
okhttpVersion = "5.0.0-alpha.14" okhttpVersion = "5.0.0-alpha.14"
exposedVersion = "0.53.0" exposedVersion = "0.53.0"
@@ -45,14 +45,15 @@ import cn.rtast.fancybot.util.initDatabase
import cn.rtast.fancybot.util.item.ItemManager import cn.rtast.fancybot.util.item.ItemManager
import cn.rtast.fancybot.util.str.fromJson import cn.rtast.fancybot.util.str.fromJson
import cn.rtast.rob.ROneBotFactory import cn.rtast.rob.ROneBotFactory
import cn.rtast.rob.entity.AddFriendRequest
import cn.rtast.rob.entity.GetMessage import cn.rtast.rob.entity.GetMessage
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.entity.GroupRevokeMessage import cn.rtast.rob.entity.GroupRevokeMessage
import cn.rtast.rob.enums.ArrayMessageType import cn.rtast.rob.enums.ArrayMessageType
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.OBMessage import cn.rtast.rob.util.ob.OneBotListener
class FancyBot : OBMessage { class FancyBot : OneBotListener {
override suspend fun onGroupMessage(message: GroupMessage, json: String) { override suspend fun onGroupMessage(message: GroupMessage, json: String) {
val sender = message.sender.nickname val sender = message.sender.nickname
@@ -130,6 +131,10 @@ class FancyBot : OBMessage {
override suspend fun onWebsocketErrorEvent(ex: Exception) { override suspend fun onWebsocketErrorEvent(ex: Exception) {
ex.printStackTrace() ex.printStackTrace()
} }
override suspend fun onAddFriendRequest(event: AddFriendRequest) {
event.approve()
}
} }
val configManager = ConfigManager() val configManager = ConfigManager()
@@ -159,7 +164,8 @@ val commands = listOf(
CompilerCommand(), GPTCommand(), CompilerCommand(), GPTCommand(),
GithubUserCommand(), AboutCommand(), GithubUserCommand(), AboutCommand(),
MusicPlayUrlCommand(), DomainPriceCommand(), MusicPlayUrlCommand(), DomainPriceCommand(),
SendMailCommand(), ZiBiCommand() SendMailCommand(), ZiBiCommand(),
UnsetZiBiCommand()
) )
suspend fun main() { suspend fun main() {
@@ -10,12 +10,12 @@ package cn.rtast.fancybot.commands
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.OBMessage import cn.rtast.rob.util.ob.OneBotListener
class AboutCommand : BaseCommand() { class AboutCommand : BaseCommand() {
override val commandNames = listOf("/about", "/关于") override val commandNames = listOf("/about", "/关于")
override suspend fun executeGroup(listener: OBMessage, message: GroupMessage, args: List<String>) { override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
val msg = MessageChain.Builder() val msg = MessageChain.Builder()
.addAt(message.sender.userId) .addAt(message.sender.userId)
.addNewLine() .addNewLine()
@@ -7,18 +7,22 @@
package cn.rtast.fancybot.commands package cn.rtast.fancybot.commands
import cn.rtast.fancybot.configManager
import cn.rtast.rob.entity.ArrayMessage import cn.rtast.rob.entity.ArrayMessage
import cn.rtast.rob.entity.GetMessage import cn.rtast.rob.entity.GetMessage
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.enums.ArrayMessageType import cn.rtast.rob.enums.ArrayMessageType
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.OBMessage import cn.rtast.rob.util.ob.OneBotListener
class AntiRevokeCommand : BaseCommand() { class AntiRevokeCommand : BaseCommand() {
override val commandNames = listOf("/revoke", "/rv", "/防撤回") override val commandNames = listOf("/revoke", "/rv", "/防撤回")
override suspend fun executeGroup(listener: OBMessage, message: GroupMessage, args: List<String>) { override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
if (message.sender.userId !in configManager.admins) {
message.reply("你不许用防撤回")
}
val messageId = args.first().toLong() val messageId = args.first().toLong()
listener.getMessage(messageId, "revoke", message.groupId) listener.getMessage(messageId, "revoke", message.groupId)
val msg = MessageChain.Builder() val msg = MessageChain.Builder()
@@ -29,7 +33,7 @@ class AntiRevokeCommand : BaseCommand() {
} }
companion object { companion object {
suspend fun callback(listener: OBMessage, message: GetMessage) { suspend fun callback(listener: OneBotListener, message: GetMessage) {
val msgList = mutableListOf<ArrayMessage>() val msgList = mutableListOf<ArrayMessage>()
msgList.add( msgList.add(
ArrayMessage( ArrayMessage(
@@ -16,7 +16,7 @@ import cn.rtast.fancybot.util.str.toJson
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.OBMessage import cn.rtast.rob.util.ob.OneBotListener
class CompilerCommand : BaseCommand() { class CompilerCommand : BaseCommand() {
override val commandNames = listOf("/compiler", "/exec") override val commandNames = listOf("/compiler", "/exec")
@@ -24,7 +24,7 @@ class CompilerCommand : BaseCommand() {
private val kotlinCompilerServer = "https://api.kotlinlang.org/api/2.0.20/compiler/run" private val kotlinCompilerServer = "https://api.kotlinlang.org/api/2.0.20/compiler/run"
private val glotCompilerServer = "https://glot.io/run" private val glotCompilerServer = "https://glot.io/run"
override suspend fun executeGroup(listener: OBMessage, message: GroupMessage, args: List<String>) { override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
if (args.isEmpty()) { if (args.isEmpty()) {
val msg = MessageChain.Builder() val msg = MessageChain.Builder()
.addAt(message.sender.userId) .addAt(message.sender.userId)
@@ -9,12 +9,12 @@ package cn.rtast.fancybot.commands
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.OBMessage import cn.rtast.rob.util.ob.OneBotListener
class EchoCommand : BaseCommand() { class EchoCommand : BaseCommand() {
override val commandNames = listOf("/echo") override val commandNames = listOf("/echo")
override suspend fun executeGroup(listener: OBMessage, message: GroupMessage, args: List<String>) { override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
listener.sendGroupMessage(message.groupId, args.joinToString(" ")) listener.sendGroupMessage(message.groupId, args.joinToString(" "))
} }
} }
@@ -12,12 +12,12 @@ import cn.rtast.fancybot.util.Http
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.OBMessage import cn.rtast.rob.util.ob.OneBotListener
class FKXQSCommand : BaseCommand() { class FKXQSCommand : BaseCommand() {
override val commandNames = listOf("/fkxqs", "/fk", "/疯狂星期四") override val commandNames = listOf("/fkxqs", "/fk", "/疯狂星期四")
override suspend fun executeGroup(listener: OBMessage, message: GroupMessage, args: List<String>) { override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
val response = Http.get<FKXQS>("https://api.shadiao.pro/kfc").data.text val response = Http.get<FKXQS>("https://api.shadiao.pro/kfc").data.text
val msg = MessageChain.Builder() val msg = MessageChain.Builder()
.addAt(message.sender.userId) .addAt(message.sender.userId)
@@ -11,12 +11,12 @@ import cn.rtast.fancybot.commands
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.OBMessage import cn.rtast.rob.util.ob.OneBotListener
class HelpCommand : BaseCommand() { class HelpCommand : BaseCommand() {
override val commandNames = listOf("/help", "/帮助") override val commandNames = listOf("/help", "/帮助")
override suspend fun executeGroup(listener: OBMessage, message: GroupMessage, args: List<String>) { override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
val allCommands = commands.joinToString("\n") { val allCommands = commands.joinToString("\n") {
"[${it.javaClass.name.split(".").last().replace("Command", "")}] 命令:${it.commandNames.joinToString(",")}" "[${it.javaClass.name.split(".").last().replace("Command", "")}] 命令:${it.commandNames.joinToString(",")}"
} }
@@ -11,12 +11,12 @@ import cn.rtast.fancybot.util.Http
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.OBMessage import cn.rtast.rob.util.ob.OneBotListener
class HitokotoCommand : BaseCommand() { class HitokotoCommand : BaseCommand() {
override val commandNames = listOf("/hitokoto", "/1") override val commandNames = listOf("/hitokoto", "/1")
override suspend fun executeGroup(listener: OBMessage, message: GroupMessage, args: List<String>) { override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
val response = Http.get("https://v1.jinrishici.com/rensheng/mengxiang.txt") val response = Http.get("https://v1.jinrishici.com/rensheng/mengxiang.txt")
val msg = MessageChain.Builder() val msg = MessageChain.Builder()
.addAt(message.sender.userId) .addAt(message.sender.userId)
@@ -10,12 +10,12 @@ package cn.rtast.fancybot.commands
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.OBMessage import cn.rtast.rob.util.ob.OneBotListener
class LikeMeCommand : BaseCommand() { class LikeMeCommand : BaseCommand() {
override val commandNames = listOf("赞我") override val commandNames = listOf("赞我")
override suspend fun executeGroup(listener: OBMessage, message: GroupMessage, args: List<String>) { override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
listener.sendLike(message.sender.userId, 10) listener.sendLike(message.sender.userId, 10)
val msg = MessageChain.Builder() val msg = MessageChain.Builder()
.addReply(message.messageId) .addReply(message.messageId)
@@ -11,12 +11,12 @@ import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.enums.ArrayMessageType import cn.rtast.rob.enums.ArrayMessageType
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.OBMessage import cn.rtast.rob.util.ob.OneBotListener
class RUACommand : BaseCommand() { class RUACommand : BaseCommand() {
override val commandNames = listOf("/rua", "rua") override val commandNames = listOf("/rua", "rua")
override suspend fun executeGroup(listener: OBMessage, message: GroupMessage, args: List<String>) { override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
if (args.isEmpty()) { if (args.isEmpty()) {
val msg = MessageChain.Builder() val msg = MessageChain.Builder()
.addAt(message.sender.userId) .addAt(message.sender.userId)
@@ -12,7 +12,7 @@ import cn.rtast.fancybot.util.randomBooleanWithProbability
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.OBMessage import cn.rtast.rob.util.ob.OneBotListener
class RemakeCommand : BaseCommand() { class RemakeCommand : BaseCommand() {
override val commandNames = listOf("/remake", "/重开", "remake", "重开") override val commandNames = listOf("/remake", "/重开", "remake", "重开")
@@ -28,7 +28,7 @@ class RemakeCommand : BaseCommand() {
"鸽子", "鼠鼠", "化石", "狗狗" "鸽子", "鼠鼠", "化石", "狗狗"
) )
override suspend fun executeGroup(listener: OBMessage, message: GroupMessage, args: List<String>) { override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
val isSuccess = randomBooleanWithProbability(0.7) val isSuccess = randomBooleanWithProbability(0.7)
val msg = MessageChain.Builder().addReply(message.messageId) val msg = MessageChain.Builder().addReply(message.messageId)
if (isSuccess) { if (isSuccess) {
@@ -11,7 +11,7 @@ import cn.rtast.fancybot.configManager
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.OBMessage import cn.rtast.rob.util.ob.OneBotListener
import org.simplejavamail.api.mailer.config.TransportStrategy import org.simplejavamail.api.mailer.config.TransportStrategy
import org.simplejavamail.email.EmailBuilder import org.simplejavamail.email.EmailBuilder
import org.simplejavamail.mailer.MailerBuilder import org.simplejavamail.mailer.MailerBuilder
@@ -40,7 +40,7 @@ class SendMailCommand : BaseCommand() {
this.mailer.sendMail(email) this.mailer.sendMail(email)
} }
override suspend fun executeGroup(listener: OBMessage, message: GroupMessage, args: List<String>) { override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
if (args.isEmpty()) { if (args.isEmpty()) {
val msg = MessageChain.Builder() val msg = MessageChain.Builder()
.addAt(message.sender.userId) .addAt(message.sender.userId)
@@ -8,21 +8,28 @@
package cn.rtast.fancybot.commands package cn.rtast.fancybot.commands
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.entity.PrivateMessage
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.OBMessage import cn.rtast.rob.util.ob.OneBotListener
val users = mutableMapOf<Long, Long>()
class ZiBiCommand : BaseCommand() { class ZiBiCommand : BaseCommand() {
override val commandNames = listOf("/自闭", "自闭") override val commandNames = listOf("/自闭", "自闭")
override suspend fun executeGroup(listener: OBMessage, message: GroupMessage, args: List<String>) { override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
try { try {
users.remove(message.sender.userId)
val duration = if (args.isEmpty()) 1 else args.first().toInt() val duration = if (args.isEmpty()) 1 else args.first().toInt()
message.sender.ban(duration * 60) message.sender.ban(duration * 60)
val msg = MessageChain.Builder() val msg = MessageChain.Builder()
.addText("你先自闭${duration}分钟吧~") .addText("你先自闭${duration}分钟吧~")
.addNewLine()
.addText("私聊发送`我想开了`即可取消禁言~")
.build() .build()
message.reply(msg) message.reply(msg)
users[message.sender.userId] = message.groupId
} catch (_: Exception) { } catch (_: Exception) {
val msg = MessageChain.Builder() val msg = MessageChain.Builder()
.addText("你输入有误所以我决定让你自闭1天~") .addText("你输入有误所以我决定让你自闭1天~")
@@ -31,4 +38,24 @@ class ZiBiCommand : BaseCommand() {
message.sender.ban(86400) message.sender.ban(86400)
} }
} }
}
class UnsetZiBiCommand : BaseCommand() {
override val commandNames = listOf("我想开了")
override suspend fun executePrivate(listener: OneBotListener, message: PrivateMessage, args: List<String>) {
if (!users.any { it.key == message.sender.userId }) {
val msg = MessageChain.Builder()
.addText("你没有在自闭列表中~")
.build()
message.reply(msg)
return
}
listener.setGroupBan(users.getValue(message.sender.userId), message.sender.userId, 0)
val msg = MessageChain.Builder()
.addText("祝你天天开心不要自闭~~")
.build()
message.reply(msg)
users.remove(message.sender.userId)
}
} }
@@ -12,12 +12,12 @@ import cn.rtast.fancybot.util.Http
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.OBMessage import cn.rtast.rob.util.ob.OneBotListener
class CigaretteCommand : BaseCommand() { class CigaretteCommand : BaseCommand() {
override val commandNames = listOf("/香烟", "/tobacco", "/cigarette") override val commandNames = listOf("/香烟", "/tobacco", "/cigarette")
override suspend fun executeGroup(listener: OBMessage, message: GroupMessage, args: List<String>) { override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
if (args.isEmpty()) { if (args.isEmpty()) {
val msg = MessageChain.Builder() val msg = MessageChain.Builder()
.addAt(message.sender.userId) .addAt(message.sender.userId)
@@ -16,7 +16,7 @@ import cn.rtast.fancybot.util.toByteArray
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.OBMessage import cn.rtast.rob.util.ob.OneBotListener
import java.awt.Color import java.awt.Color
import java.awt.Font import java.awt.Font
import java.awt.image.BufferedImage import java.awt.image.BufferedImage
@@ -75,7 +75,7 @@ class DomainPriceCommand : BaseCommand() {
} }
override suspend fun executeGroup(listener: OBMessage, message: GroupMessage, args: List<String>) { override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
if (args.isEmpty()) { if (args.isEmpty()) {
val msg = MessageChain.Builder() val msg = MessageChain.Builder()
.addAt(message.sender.userId) .addAt(message.sender.userId)
@@ -16,12 +16,12 @@ import cn.rtast.fancybot.util.str.toJson
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.OBMessage import cn.rtast.rob.util.ob.OneBotListener
class GPTCommand : BaseCommand() { class GPTCommand : BaseCommand() {
override val commandNames = listOf("/gpt") override val commandNames = listOf("/gpt")
override suspend fun executeGroup(listener: OBMessage, message: GroupMessage, args: List<String>) { override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
if (args.isEmpty()) { if (args.isEmpty()) {
val msg = MessageChain.Builder() val msg = MessageChain.Builder()
.addAt(message.sender.userId) .addAt(message.sender.userId)
@@ -18,7 +18,7 @@ import cn.rtast.fancybot.util.toByteArray
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.OBMessage import cn.rtast.rob.util.ob.OneBotListener
import java.awt.Color import java.awt.Color
import java.awt.Font import java.awt.Font
import java.awt.image.BufferedImage import java.awt.image.BufferedImage
@@ -65,7 +65,7 @@ class GithubUserCommand : BaseCommand() {
return canvas.toByteArray().encodeToBase64() return canvas.toByteArray().encodeToBase64()
} }
override suspend fun executeGroup(listener: OBMessage, message: GroupMessage, args: List<String>) { override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
if (args.isEmpty()) { if (args.isEmpty()) {
val msg = MessageChain.Builder() val msg = MessageChain.Builder()
.addAt(message.sender.userId) .addAt(message.sender.userId)
@@ -13,14 +13,14 @@ import cn.rtast.motdpinger.MotdPinger
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.OBMessage import cn.rtast.rob.util.ob.OneBotListener
class MCPingCommand : BaseCommand() { class MCPingCommand : BaseCommand() {
override val commandNames = listOf("/mcping", "/mcPing") override val commandNames = listOf("/mcping", "/mcPing")
private val pingInstance = MotdPinger() private val pingInstance = MotdPinger()
override suspend fun executeGroup(listener: OBMessage, message: GroupMessage, args: List<String>) { override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
if (args.isEmpty()) { if (args.isEmpty()) {
val msg = MessageChain.Builder() val msg = MessageChain.Builder()
.addAt(message.sender.userId) .addAt(message.sender.userId)
@@ -16,7 +16,7 @@ import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.enums.MusicShareType import cn.rtast.rob.enums.MusicShareType
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.OBMessage import cn.rtast.rob.util.ob.OneBotListener
import java.time.Instant import java.time.Instant
class MusicCommand : BaseCommand() { class MusicCommand : BaseCommand() {
@@ -33,7 +33,7 @@ class MusicCommand : BaseCommand() {
} }
} }
private suspend fun legacyMusicCommand(listener: OBMessage, message: GroupMessage, args: List<String>) { private suspend fun legacyMusicCommand(listener: OneBotListener, message: GroupMessage, args: List<String>) {
if (args.isEmpty()) { if (args.isEmpty()) {
val msg = MessageChain.Builder() val msg = MessageChain.Builder()
.addAt(message.sender.userId) .addAt(message.sender.userId)
@@ -104,7 +104,7 @@ class MusicCommand : BaseCommand() {
} }
} }
override suspend fun executeGroup(listener: OBMessage, message: GroupMessage, args: List<String>) { override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
if (args.last() == "legacy" || args.last() == "l" || args.last() in "0".."4") { if (args.last() == "legacy" || args.last() == "l" || args.last() in "0".."4") {
this.legacyMusicCommand(listener, message, args) this.legacyMusicCommand(listener, message, args)
return return
@@ -136,7 +136,7 @@ class MusicPlayUrlCommand : BaseCommand() {
return Http.get<SongUrl>("${configManager.ncmAPI}/song/url", mapOf("id" to id)).data.first().url return Http.get<SongUrl>("${configManager.ncmAPI}/song/url", mapOf("id" to id)).data.first().url
} }
override suspend fun executeGroup(listener: OBMessage, message: GroupMessage, args: List<String>) { override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
val url = if (args.last() == "id" || args.last() == "i") { val url = if (args.last() == "id" || args.last() == "i") {
val id = args.first() val id = args.first()
this.getPlayUrl(id) this.getPlayUrl(id)
@@ -10,13 +10,13 @@ package cn.rtast.fancybot.commands.lookup
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.OBMessage import cn.rtast.rob.util.ob.OneBotListener
import java.net.InetAddress import java.net.InetAddress
class NslookupCommand : BaseCommand() { class NslookupCommand : BaseCommand() {
override val commandNames = listOf("/nslookup", "/ns") override val commandNames = listOf("/nslookup", "/ns")
override suspend fun executeGroup(listener: OBMessage, message: GroupMessage, args: List<String>) { override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
val msg = MessageChain.Builder() val msg = MessageChain.Builder()
.addReply(message.messageId) .addReply(message.messageId)
.addText("域名: ${args.first()}解析后的IP地址为: ") .addText("域名: ${args.first()}解析后的IP地址为: ")
@@ -12,7 +12,7 @@ import cn.rtast.fancybot.util.Http
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.OBMessage import cn.rtast.rob.util.ob.OneBotListener
class PixivCommand : BaseCommand() { class PixivCommand : BaseCommand() {
override val commandNames = listOf("/pixiv", "/p") override val commandNames = listOf("/pixiv", "/p")
@@ -20,7 +20,7 @@ class PixivCommand : BaseCommand() {
private val pixivRankingURL = "https://proxy.rtast.cn/https/www.pixiv.net/ranking.php?format=json&mode=daily&p=1" private val pixivRankingURL = "https://proxy.rtast.cn/https/www.pixiv.net/ranking.php?format=json&mode=daily&p=1"
private val imageProxyURL = "https://pixiv.nl" private val imageProxyURL = "https://pixiv.nl"
override suspend fun executeGroup(listener: OBMessage, message: GroupMessage, args: List<String>) { override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
if (args.isEmpty()) { if (args.isEmpty()) {
val msg = MessageChain.Builder() val msg = MessageChain.Builder()
.addAt(message.sender.userId) .addAt(message.sender.userId)
@@ -10,12 +10,12 @@ package cn.rtast.fancybot.commands.lookup
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.OBMessage import cn.rtast.rob.util.ob.OneBotListener
class QRCodeCommand : BaseCommand() { class QRCodeCommand : BaseCommand() {
override val commandNames = listOf("/qrcode", "/qr", "/二维码") override val commandNames = listOf("/qrcode", "/qr", "/二维码")
override suspend fun executeGroup(listener: OBMessage, message: GroupMessage, args: List<String>) { override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
val content = args.joinToString(" ") val content = args.joinToString(" ")
val msg = MessageChain.Builder() val msg = MessageChain.Builder()
.addAt(message.sender.userId) .addAt(message.sender.userId)
@@ -20,7 +20,7 @@ import cn.rtast.fancybot.util.toByteArray
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.OBMessage import cn.rtast.rob.util.ob.OneBotListener
import java.awt.Color import java.awt.Color
import java.awt.Font import java.awt.Font
import java.awt.image.BufferedImage import java.awt.image.BufferedImage
@@ -56,7 +56,7 @@ class WeatherCommand : BaseCommand() {
return emptyImage.toByteArray().encodeToBase64() return emptyImage.toByteArray().encodeToBase64()
} }
override suspend fun executeGroup(listener: OBMessage, message: GroupMessage, args: List<String>) { override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
if (args.isEmpty()) { if (args.isEmpty()) {
val msg = MessageChain.Builder() val msg = MessageChain.Builder()
.addAt(message.sender.userId) .addAt(message.sender.userId)
@@ -20,7 +20,7 @@ import cn.rtast.fancybot.util.str.setTruncat
import cn.rtast.fancybot.util.toByteArray import cn.rtast.fancybot.util.toByteArray
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.OBMessage import cn.rtast.rob.util.ob.OneBotListener
import okhttp3.OkHttpClient import okhttp3.OkHttpClient
import okhttp3.Request import okhttp3.Request
import java.awt.Color import java.awt.Color
@@ -150,7 +150,7 @@ object BVParseCommand {
} }
} }
suspend fun parse(listener: OBMessage, bvid: String, message: GroupMessage) { suspend fun parse(listener: OneBotListener, bvid: String, message: GroupMessage) {
val videoInfo = this.getVideoStat(bvid) val videoInfo = this.getVideoStat(bvid)
val viewCount = this.getViewCount(bvid, videoInfo.data.cid) val viewCount = this.getViewCount(bvid, videoInfo.data.cid)
val shortUrl = this.generateShortUrl(bvid, videoInfo.data.aid) val shortUrl = this.generateShortUrl(bvid, videoInfo.data.aid)
@@ -19,7 +19,7 @@ import cn.rtast.fancybot.util.str.setTruncat
import cn.rtast.fancybot.util.toByteArray import cn.rtast.fancybot.util.toByteArray
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.OBMessage import cn.rtast.rob.util.ob.OneBotListener
import java.awt.Color import java.awt.Color
import java.awt.Font import java.awt.Font
import java.awt.RenderingHints import java.awt.RenderingHints
@@ -114,7 +114,7 @@ object GitHubParseCommand {
return canvas.toByteArray().encodeToBase64() return canvas.toByteArray().encodeToBase64()
} }
suspend fun parse(listener: OBMessage, message: GroupMessage) { suspend fun parse(listener: OneBotListener, message: GroupMessage) {
val path = message.rawMessage val path = message.rawMessage
.replace(".git", "") .replace(".git", "")
.replace("https://github.com/", "") .replace("https://github.com/", "")
@@ -10,11 +10,11 @@ package cn.rtast.fancybot.commands.parse
import cn.rtast.rob.entity.GetMessage import cn.rtast.rob.entity.GetMessage
import cn.rtast.rob.enums.ArrayMessageType import cn.rtast.rob.enums.ArrayMessageType
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.OBMessage import cn.rtast.rob.util.ob.OneBotListener
object ImageURLCommand { object ImageURLCommand {
suspend fun callback(listener: OBMessage, message: GetMessage) { suspend fun callback(listener: OneBotListener, message: GetMessage) {
val msg = MessageChain.Builder() val msg = MessageChain.Builder()
.addReply(message.data.messageId) .addReply(message.data.messageId)
.addText("哈哈哈哈图片来咯~") .addText("哈哈哈哈图片来咯~")
@@ -11,7 +11,7 @@ import cn.rtast.fancybot.util.str.encodeToBase64
import cn.rtast.rob.entity.GetMessage import cn.rtast.rob.entity.GetMessage
import cn.rtast.rob.enums.ArrayMessageType import cn.rtast.rob.enums.ArrayMessageType
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.OBMessage import cn.rtast.rob.util.ob.OneBotListener
import com.madgag.gif.fmsware.AnimatedGifEncoder import com.madgag.gif.fmsware.AnimatedGifEncoder
import com.madgag.gif.fmsware.GifDecoder import com.madgag.gif.fmsware.GifDecoder
import java.io.ByteArrayOutputStream import java.io.ByteArrayOutputStream
@@ -37,7 +37,7 @@ object ReverseGIFCommand {
return gifBytes.encodeToBase64() return gifBytes.encodeToBase64()
} }
suspend fun callback(listener: OBMessage, message: GetMessage) { suspend fun callback(listener: OneBotListener, message: GetMessage) {
val gifUrl = if (message.data.message.find { it.type == ArrayMessageType.mface } == null) { val gifUrl = if (message.data.message.find { it.type == ArrayMessageType.mface } == null) {
message.data.message.find { it.type == ArrayMessageType.image }!!.data.file!! message.data.message.find { it.type == ArrayMessageType.image }!!.data.file!!
} else { } else {
@@ -11,14 +11,14 @@ import cn.rtast.fancybot.util.file.JrrpManager
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.OBMessage import cn.rtast.rob.util.ob.OneBotListener
class JrrpCommand : BaseCommand() { class JrrpCommand : BaseCommand() {
override val commandNames = listOf("/jrrp", "/今日人品") override val commandNames = listOf("/jrrp", "/今日人品")
private val jrrpManager = JrrpManager() private val jrrpManager = JrrpManager()
override suspend fun executeGroup(listener: OBMessage, message: GroupMessage, args: List<String>) { override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
if (jrrpManager.isJrrped(message.sender.userId)) { if (jrrpManager.isJrrped(message.sender.userId)) {
val msg = MessageChain.Builder() val msg = MessageChain.Builder()
.addAt(message.sender.userId) .addAt(message.sender.userId)
@@ -13,12 +13,12 @@ import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.enums.UserRole import cn.rtast.rob.enums.UserRole
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.OBMessage import cn.rtast.rob.util.ob.OneBotListener
class MyPointCommand : BaseCommand() { 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: OneBotListener, message: GroupMessage, args: List<String>) {
// query target's point // query target's point
if (args.isNotEmpty() && (message.sender.role == UserRole.admin || message.sender.userId in configManager.admins)) { if (args.isNotEmpty() && (message.sender.role == UserRole.admin || message.sender.userId in configManager.admins)) {
val targetId = args.first().toLong() val targetId = args.first().toLong()
@@ -12,12 +12,12 @@ import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.enums.ArrayMessageType import cn.rtast.rob.enums.ArrayMessageType
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.OBMessage import cn.rtast.rob.util.ob.OneBotListener
class NiuziSignCommand : BaseCommand() { class NiuziSignCommand : BaseCommand() {
override val commandNames = listOf("牛子签到") override val commandNames = listOf("牛子签到")
override suspend fun executeGroup(listener: OBMessage, message: GroupMessage, args: List<String>) { override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
if (niuziManager.isSigned(message.sender.userId)) { if (niuziManager.isSigned(message.sender.userId)) {
val msg = MessageChain.Builder() val msg = MessageChain.Builder()
.addAt(message.sender.userId) .addAt(message.sender.userId)
@@ -40,7 +40,7 @@ class NiuziSignCommand : BaseCommand() {
class JiJianCommand : BaseCommand() { class JiJianCommand : BaseCommand() {
override val commandNames = listOf("击剑", "jj") override val commandNames = listOf("击剑", "jj")
override suspend fun executeGroup(listener: OBMessage, message: GroupMessage, args: List<String>) { override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
if (args.isEmpty()) { if (args.isEmpty()) {
val msg = MessageChain.Builder() val msg = MessageChain.Builder()
.addAt(message.sender.userId) .addAt(message.sender.userId)
@@ -126,7 +126,7 @@ class JiJianCommand : BaseCommand() {
class MyNiuziCommand : BaseCommand() { class MyNiuziCommand : BaseCommand() {
override val commandNames = listOf("我的牛子") override val commandNames = listOf("我的牛子")
override suspend fun executeGroup(listener: OBMessage, message: GroupMessage, args: List<String>) { override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
val niuzi = niuziManager.getUser(message.sender.userId) val niuzi = niuziManager.getUser(message.sender.userId)
if (niuzi == null) { if (niuzi == null) {
val msg = MessageChain.Builder() val msg = MessageChain.Builder()
@@ -12,12 +12,12 @@ import cn.rtast.fancybot.signManager
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.OBMessage import cn.rtast.rob.util.ob.OneBotListener
class RedeemCommand : BaseCommand() { 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: OneBotListener, message: GroupMessage, args: List<String>) {
if (args.isEmpty()) { if (args.isEmpty()) {
val msg = MessageChain.Builder() val msg = MessageChain.Builder()
.addAt(message.sender.userId) .addAt(message.sender.userId)
@@ -11,13 +11,13 @@ import cn.rtast.fancybot.signManager
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.OBMessage import cn.rtast.rob.util.ob.OneBotListener
class SignCommand : BaseCommand() { class SignCommand : BaseCommand() {
override val commandNames = listOf("/签到", "/sign") override val commandNames = listOf("/签到", "/sign")
override suspend fun executeGroup(listener: OBMessage, message: GroupMessage, args: List<String>) { override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
if (signManager.isSigned(message.sender.userId)) { if (signManager.isSigned(message.sender.userId)) {
val msg = MessageChain.Builder() val msg = MessageChain.Builder()
.addAt(message.sender.userId) .addAt(message.sender.userId)
@@ -12,19 +12,18 @@ import cn.rtast.fancybot.util.Http
import cn.rtast.fancybot.util.item.Item import cn.rtast.fancybot.util.item.Item
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.OBMessage import cn.rtast.rob.util.ob.OneBotListener
class BaisiItem : Item() { class BaisiItem : Item() {
override val itemNames = listOf("baisi", "白丝", "bs") override val itemNames = listOf("baisi", "白丝", "bs")
override val itemPrice = 70 override val itemPrice = 70
override suspend fun redeemInGroup(listener: OBMessage, message: GroupMessage, after: Long) { override suspend fun redeemInGroup(listener: OneBotListener, message: GroupMessage, after: Long) {
val url = Http.get<Baisi>("https://v2.api-m.com/api/baisi").data val url = Http.get<Baisi>("https://v2.api-m.com/api/baisi").data
val msg = MessageChain.Builder() val msg = MessageChain.Builder()
.addAt(message.sender.userId) .addAt(message.sender.userId)
.addImage(url) .addImage(url)
.build() .build()
listener.sendGroupMessage(message.groupId, msg) listener.sendGroupMessage(message.groupId, msg)
} }
} }
@@ -12,13 +12,13 @@ import cn.rtast.fancybot.util.Http
import cn.rtast.fancybot.util.item.Item import cn.rtast.fancybot.util.item.Item
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.OBMessage import cn.rtast.rob.util.ob.OneBotListener
class HeisiItem : Item() { class HeisiItem : Item() {
override val itemNames = listOf("heisi", "黑丝", "hs") override val itemNames = listOf("heisi", "黑丝", "hs")
override val itemPrice = 70 override val itemPrice = 70
override suspend fun redeemInGroup(listener: OBMessage, message: GroupMessage, after: Long) { override suspend fun redeemInGroup(listener: OneBotListener, message: GroupMessage, after: Long) {
val url = Http.get<Baisi>("https://v2.api-m.com/api/heisi").data val url = Http.get<Baisi>("https://v2.api-m.com/api/heisi").data
val msg = MessageChain.Builder() val msg = MessageChain.Builder()
.addAt(message.sender.userId) .addAt(message.sender.userId)
@@ -12,13 +12,13 @@ import cn.rtast.fancybot.util.Http
import cn.rtast.fancybot.util.item.Item import cn.rtast.fancybot.util.item.Item
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.OBMessage import cn.rtast.rob.util.ob.OneBotListener
class SetuItem : Item() { class SetuItem : Item() {
override val itemNames = listOf("setu", "色图", "st") override val itemNames = listOf("setu", "色图", "st")
override val itemPrice = 80 override val itemPrice = 80
override suspend fun redeemInGroup(listener: OBMessage, message: GroupMessage, after: Long) { override suspend fun redeemInGroup(listener: OneBotListener, message: GroupMessage, after: Long) {
val url = Http.get<Setu>("https://api.rtast.cn/api/setu").urls.large val url = Http.get<Setu>("https://api.rtast.cn/api/setu").urls.large
val msg = MessageChain.Builder() val msg = MessageChain.Builder()
.addAt(message.sender.userId) .addAt(message.sender.userId)
@@ -9,7 +9,7 @@ package cn.rtast.fancybot.util.file
import cn.rtast.fancybot.util.JsonFileHandler import cn.rtast.fancybot.util.JsonFileHandler
class BadWordManager: JsonFileHandler<List<String>>("bd.json", listOf<String>()) { class BadWordManager : JsonFileHandler<List<String>>("bd.json", listOf<String>()) {
fun contain(word: String): Boolean { fun contain(word: String): Boolean {
return this.read<List<String>>().any { word.contains(it) } return this.read<List<String>>().any { word.contains(it) }
@@ -9,21 +9,21 @@ package cn.rtast.fancybot.util.item
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.entity.PrivateMessage import cn.rtast.rob.entity.PrivateMessage
import cn.rtast.rob.util.ob.OBMessage import cn.rtast.rob.util.ob.OneBotListener
abstract class Item { abstract class Item {
abstract val itemNames: List<String> abstract val itemNames: List<String>
abstract val itemPrice: Int abstract val itemPrice: Int
protected open suspend fun redeemInGroup(listener: OBMessage, message: GroupMessage, after: Long) {} protected open suspend fun redeemInGroup(listener: OneBotListener, message: GroupMessage, after: Long) {}
protected open suspend fun redeemInPrivate(listener: OBMessage, message: PrivateMessage, after: Long) {} protected open suspend fun redeemInPrivate(listener: OneBotListener, message: PrivateMessage, after: Long) {}
suspend fun redeemGroup(listener: OBMessage, message: GroupMessage, after: Long) { suspend fun redeemGroup(listener: OneBotListener, message: GroupMessage, after: Long) {
this.redeemInGroup(listener, message, after) this.redeemInGroup(listener, message, after)
} }
suspend fun redeemPrivate(listener: OBMessage, message: PrivateMessage, after: Long) { suspend fun redeemPrivate(listener: OneBotListener, message: PrivateMessage, after: Long) {
this.redeemInPrivate(listener, message, after) this.redeemInPrivate(listener, message, after)
} }
} }