mirror of
https://github.com/mamoe/mirai.git
synced 2025-03-03 15:10:14 +08:00
Redesign event structure
This commit is contained in:
parent
a322ce735b
commit
4d77951ae4
@ -24,7 +24,7 @@ import net.mamoe.mirai.contact.MemberPermission
|
||||
import net.mamoe.mirai.data.MultiPacket
|
||||
import net.mamoe.mirai.data.Packet
|
||||
import net.mamoe.mirai.event.*
|
||||
import net.mamoe.mirai.event.events.ForceOfflineEvent
|
||||
import net.mamoe.mirai.event.events.BotForceOfflineEvent
|
||||
import net.mamoe.mirai.network.BotNetworkHandler
|
||||
import net.mamoe.mirai.qqandroid.GroupImpl
|
||||
import net.mamoe.mirai.qqandroid.MemberImpl
|
||||
@ -119,7 +119,7 @@ internal class QQAndroidBotNetworkHandler(bot: QQAndroidBot) : BotNetworkHandler
|
||||
|
||||
@UseExperimental(MiraiExperimentalAPI::class, ExperimentalTime::class)
|
||||
override suspend fun init(): Unit = coroutineScope {
|
||||
this@QQAndroidBotNetworkHandler.subscribeAlways<ForceOfflineEvent> {
|
||||
this@QQAndroidBotNetworkHandler.subscribeAlways<BotForceOfflineEvent> {
|
||||
if (this@QQAndroidBotNetworkHandler.bot == this.bot) {
|
||||
this.bot.logger.error("被挤下线")
|
||||
close()
|
||||
|
@ -11,10 +11,10 @@ package net.mamoe.mirai.qqandroid.network.protocol.packet.chat.receive
|
||||
|
||||
import kotlinx.io.core.ByteReadPacket
|
||||
import kotlinx.io.core.discardExact
|
||||
import net.mamoe.mirai.event.events.ForceOfflineEvent
|
||||
import net.mamoe.mirai.data.MultiPacket
|
||||
import net.mamoe.mirai.data.Packet
|
||||
import net.mamoe.mirai.event.BroadcastControllable
|
||||
import net.mamoe.mirai.event.events.BotForceOfflineEvent
|
||||
import net.mamoe.mirai.message.FriendMessage
|
||||
import net.mamoe.mirai.message.data.MessageChain
|
||||
import net.mamoe.mirai.qqandroid.QQAndroidBot
|
||||
@ -178,10 +178,10 @@ internal class MessageSvc {
|
||||
/**
|
||||
* 被挤下线
|
||||
*/
|
||||
internal object PushForceOffline : OutgoingPacketFactory<ForceOfflineEvent>("MessageSvc.PushForceOffline") {
|
||||
override suspend fun ByteReadPacket.decode(bot: QQAndroidBot): ForceOfflineEvent {
|
||||
internal object PushForceOffline : OutgoingPacketFactory<BotForceOfflineEvent>("MessageSvc.PushForceOffline") {
|
||||
override suspend fun ByteReadPacket.decode(bot: QQAndroidBot): BotForceOfflineEvent {
|
||||
val struct = this.decodeUniPacket(RequestPushForceOffline.serializer())
|
||||
return ForceOfflineEvent(bot, title = struct.title ?: "", tips = struct.tips ?: "")
|
||||
return BotForceOfflineEvent(bot, title = struct.title ?: "", tips = struct.tips ?: "")
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,53 @@
|
||||
/*
|
||||
* Copyright 2020 Mamoe Technologies and contributors.
|
||||
*
|
||||
* 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证.
|
||||
* Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link.
|
||||
*
|
||||
* https://github.com/mamoe/mirai/blob/master/LICENSE
|
||||
*/
|
||||
|
||||
package net.mamoe.mirai.event.events
|
||||
|
||||
import net.mamoe.mirai.Bot
|
||||
import net.mamoe.mirai.contact.Member
|
||||
import net.mamoe.mirai.contact.QQ
|
||||
|
||||
|
||||
/**
|
||||
* [Bot] 登录完成, 好友列表, 群组列表初始化完成
|
||||
*/
|
||||
data class BotLoginSucceedEvent(override val bot: Bot) : BotActiveEvent()
|
||||
|
||||
/**
|
||||
* [Bot] 主动离线.
|
||||
*/
|
||||
data class BotOfflineEvent(override val bot: Bot) : BotActiveEvent()
|
||||
|
||||
// region 好友
|
||||
|
||||
/**
|
||||
* [Bot] 删除一个好友
|
||||
*/
|
||||
class BotRemoveFriendEvent(override val friend: QQ) : FriendEvent, BotActiveEvent()
|
||||
|
||||
// endregion
|
||||
|
||||
// region 群
|
||||
|
||||
/**
|
||||
* 机器人踢出某个群员
|
||||
*/
|
||||
class BotKickMemberEvent(override val member: Member) : GroupMemberEvent, BotActiveEvent()
|
||||
|
||||
/**
|
||||
* 机器人禁言某个群成员
|
||||
*/
|
||||
class BotMuteMemberEvent(override val member: Member) : GroupMemberEvent, BotActiveEvent()
|
||||
|
||||
/**
|
||||
* 机器人取消禁言某个群成员
|
||||
*/
|
||||
class BotUnmuteMemberEvent(override val member: Member) : GroupMemberEvent, BotActiveEvent()
|
||||
|
||||
// endregion
|
@ -1,132 +0,0 @@
|
||||
/*
|
||||
* Copyright 2020 Mamoe Technologies and contributors.
|
||||
*
|
||||
* 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证.
|
||||
* Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link.
|
||||
*
|
||||
* https://github.com/mamoe/mirai/blob/master/LICENSE
|
||||
*/
|
||||
|
||||
package net.mamoe.mirai.event.events
|
||||
|
||||
import net.mamoe.mirai.Bot
|
||||
import net.mamoe.mirai.contact.Group
|
||||
import net.mamoe.mirai.contact.Member
|
||||
import net.mamoe.mirai.contact.MemberPermission
|
||||
import net.mamoe.mirai.data.Packet
|
||||
import net.mamoe.mirai.event.Event
|
||||
|
||||
/**
|
||||
* 有关一个 [Bot] 的事件
|
||||
*/
|
||||
interface BotEvent : Event {
|
||||
val bot: Bot
|
||||
}
|
||||
|
||||
/**
|
||||
* [Bot] 登录完成, 好友列表, 群组列表初始化完成
|
||||
*/
|
||||
data class BotLoginSucceedEvent(override val bot: Bot) : BotEvent
|
||||
|
||||
/**
|
||||
* [Bot] 离线.
|
||||
*/
|
||||
data class BotOfflineEvent(override val bot: Bot) : BotEvent
|
||||
|
||||
/**
|
||||
* 被挤下线
|
||||
*/
|
||||
data class ForceOfflineEvent(
|
||||
override val bot: Bot,
|
||||
val title: String,
|
||||
val tips: String
|
||||
) : BotEvent, Packet
|
||||
|
||||
/**
|
||||
* 有关群的事件
|
||||
*/
|
||||
interface GroupEvent : BotEvent {
|
||||
val group: Group
|
||||
override val bot: Bot
|
||||
get() = group.bot
|
||||
}
|
||||
|
||||
data class AddGroupEvent(override val group: Group) : BotEvent, GroupEvent
|
||||
|
||||
data class RemoveGroupEvent(override val group: Group) : BotEvent, GroupEvent
|
||||
|
||||
data class BotGroupPermissionChangeEvent(
|
||||
override val group: Group,
|
||||
val origin: MemberPermission,
|
||||
val new: MemberPermission
|
||||
) : BotEvent, GroupEvent
|
||||
|
||||
|
||||
interface GroupSettingChangeEvent<T> : GroupEvent {
|
||||
val operator: Member
|
||||
val origin: T
|
||||
val new: T
|
||||
|
||||
override val group: Group
|
||||
get() = operator.group
|
||||
}
|
||||
|
||||
data class GroupNameChangeEvent(
|
||||
override val operator: Member,
|
||||
override val origin: String,
|
||||
override val new: String
|
||||
) : BotEvent, GroupSettingChangeEvent<String>
|
||||
|
||||
/**
|
||||
* 群 "全员禁言" 功能开启
|
||||
*/
|
||||
data class GroupMuteAllEvent(
|
||||
override val operator: Member,
|
||||
override val origin: Boolean,
|
||||
override val new: Boolean
|
||||
) : BotEvent, GroupSettingChangeEvent<Boolean>
|
||||
|
||||
data class GroupConfessTalkEvent(
|
||||
override val operator: Member,
|
||||
override val origin: Boolean,
|
||||
override val new: Boolean
|
||||
) : BotEvent, GroupSettingChangeEvent<Boolean>
|
||||
|
||||
|
||||
/**
|
||||
* 有关群成员的事件
|
||||
*/
|
||||
interface GroupMemberEvent : GroupEvent {
|
||||
val member: Member
|
||||
override val group: Group
|
||||
get() = member.group
|
||||
}
|
||||
|
||||
/**
|
||||
* 成员加入群的事件
|
||||
*/
|
||||
data class MemberJoinEvent(override val member: Member) : BotEvent, GroupMemberEvent
|
||||
|
||||
/**
|
||||
* 成员离开群的事件
|
||||
*/
|
||||
sealed class MemberLeftEvent : BotEvent, GroupMemberEvent {
|
||||
/**
|
||||
* 成员被踢出群
|
||||
*/
|
||||
data class Kick(override val member: Member, val operator: Member) : MemberLeftEvent()
|
||||
|
||||
/**
|
||||
* 成员主动离开
|
||||
*/
|
||||
data class Quit(override val member: Member) : MemberLeftEvent()
|
||||
}
|
||||
|
||||
data class MemberPermissionChangeEvent(
|
||||
override val bot: Bot,
|
||||
override val member: Member,
|
||||
val origin: MemberPermission,
|
||||
val new: MemberPermission
|
||||
) : BotEvent, GroupMemberEvent
|
||||
|
||||
|
@ -1,19 +0,0 @@
|
||||
/*
|
||||
* Copyright 2020 Mamoe Technologies and contributors.
|
||||
*
|
||||
* 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证.
|
||||
* Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link.
|
||||
*
|
||||
* https://github.com/mamoe/mirai/blob/master/LICENSE
|
||||
*/
|
||||
|
||||
package net.mamoe.mirai.event.events
|
||||
|
||||
import net.mamoe.mirai.contact.QQ
|
||||
import net.mamoe.mirai.data.EventPacket
|
||||
import net.mamoe.mirai.data.OnlineStatus
|
||||
|
||||
data class FriendStatusChanged(
|
||||
val qq: QQ,
|
||||
val status: OnlineStatus
|
||||
) : EventPacket
|
@ -1,84 +0,0 @@
|
||||
/*
|
||||
* Copyright 2020 Mamoe Technologies and contributors.
|
||||
*
|
||||
* 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证.
|
||||
* Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link.
|
||||
*
|
||||
* https://github.com/mamoe/mirai/blob/master/LICENSE
|
||||
*/
|
||||
|
||||
package net.mamoe.mirai.event.events
|
||||
|
||||
import net.mamoe.mirai.contact.Group
|
||||
import net.mamoe.mirai.contact.Member
|
||||
import net.mamoe.mirai.data.EventPacket
|
||||
|
||||
|
||||
// region mute
|
||||
/**
|
||||
* 某群成员被禁言事件
|
||||
*/
|
||||
@Suppress("unused", "MemberVisibilityCanBePrivate")
|
||||
class MemberMuteEvent(
|
||||
val member: Member,
|
||||
override val durationSeconds: Int,
|
||||
override val operator: Member
|
||||
) : MuteEvent() {
|
||||
override val group: Group get() = operator.group
|
||||
override fun toString(): String = "MemberMuteEvent(member=${member.id}, group=${group.id}, operator=${operator.id}, duration=${durationSeconds}s"
|
||||
}
|
||||
|
||||
/**
|
||||
* 机器人被禁言事件
|
||||
*/
|
||||
class BeingMutedEvent(
|
||||
override val durationSeconds: Int,
|
||||
override val operator: Member
|
||||
) : MuteEvent() {
|
||||
override val group: Group get() = operator.group
|
||||
override fun toString(): String = "BeingMutedEvent(group=${group.id}, operator=${operator.id}, duration=${durationSeconds}s"
|
||||
}
|
||||
|
||||
sealed class MuteEvent : EventOfMute() {
|
||||
abstract override val operator: Member
|
||||
abstract override val group: Group
|
||||
abstract val durationSeconds: Int
|
||||
}
|
||||
// endregion
|
||||
|
||||
// region unmute
|
||||
/**
|
||||
* 某群成员被解除禁言事件
|
||||
*/
|
||||
@Suppress("unused")
|
||||
class MemberUnmuteEvent(
|
||||
val member: Member,
|
||||
override val operator: Member
|
||||
) : UnmuteEvent() {
|
||||
override val group: Group get() = operator.group
|
||||
override fun toString(): String = "MemberUnmuteEvent(member=${member.id}, group=${group.id}, operator=${operator.id}"
|
||||
}
|
||||
|
||||
/**
|
||||
* 机器人被解除禁言事件
|
||||
*/
|
||||
@Suppress("SpellCheckingInspection")
|
||||
class BeingUnmutedEvent(
|
||||
override val operator: Member
|
||||
) : UnmuteEvent() {
|
||||
override val group: Group get() = operator.group
|
||||
override fun toString(): String = "BeingUnmutedEvent(group=${group.id}, operator=${operator.id}"
|
||||
}
|
||||
|
||||
sealed class UnmuteEvent : EventOfMute() {
|
||||
abstract override val operator: Member
|
||||
abstract override val group: Group
|
||||
}
|
||||
|
||||
// endregion
|
||||
|
||||
abstract class EventOfMute : EventPacket {
|
||||
abstract val operator: Member
|
||||
abstract val group: Group
|
||||
}
|
||||
|
@ -0,0 +1,155 @@
|
||||
/*
|
||||
* Copyright 2020 Mamoe Technologies and contributors.
|
||||
*
|
||||
* 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证.
|
||||
* Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link.
|
||||
*
|
||||
* https://github.com/mamoe/mirai/blob/master/LICENSE
|
||||
*/
|
||||
|
||||
package net.mamoe.mirai.event.events
|
||||
|
||||
import net.mamoe.mirai.Bot
|
||||
import net.mamoe.mirai.contact.Group
|
||||
import net.mamoe.mirai.contact.Member
|
||||
import net.mamoe.mirai.contact.MemberPermission
|
||||
import net.mamoe.mirai.data.Packet
|
||||
|
||||
// region Bot 在线状态
|
||||
|
||||
/**
|
||||
* 被挤下线
|
||||
*/
|
||||
data class BotForceOfflineEvent(
|
||||
override val bot: Bot,
|
||||
val title: String,
|
||||
val tips: String
|
||||
) : BotPassiveEvent, Packet
|
||||
// endregion
|
||||
|
||||
// region 群
|
||||
|
||||
/**
|
||||
* Bot 在群里的权限被改变. 操作人一定是群主
|
||||
*/
|
||||
data class BotGroupPermissionChangeEvent(
|
||||
override val group: Group,
|
||||
val origin: MemberPermission,
|
||||
val new: MemberPermission
|
||||
) : BotPassiveEvent, GroupEvent
|
||||
|
||||
// region 群设置
|
||||
|
||||
/**
|
||||
* 群设置改变
|
||||
*/
|
||||
interface GroupSettingChangeEvent<T> : GroupEvent, BotPassiveEvent {
|
||||
val operator: Member
|
||||
val origin: T
|
||||
val new: T
|
||||
|
||||
override val group: Group
|
||||
get() = operator.group
|
||||
}
|
||||
|
||||
/**
|
||||
* 群名改变
|
||||
*/
|
||||
data class GroupNameChangeEvent(
|
||||
override val operator: Member,
|
||||
override val origin: String,
|
||||
override val new: String
|
||||
) : GroupSettingChangeEvent<String>, BotPassiveEvent
|
||||
|
||||
/**
|
||||
* 群 "全员禁言" 功能状态改变
|
||||
*/
|
||||
data class GroupMuteAllEvent(
|
||||
override val operator: Member,
|
||||
override val origin: Boolean,
|
||||
override val new: Boolean
|
||||
) : GroupSettingChangeEvent<Boolean>, BotPassiveEvent
|
||||
|
||||
/**
|
||||
* 群 "坦白说" 功能状态改变
|
||||
*/
|
||||
data class GroupConfessTalkEvent(
|
||||
override val operator: Member,
|
||||
override val origin: Boolean,
|
||||
override val new: Boolean
|
||||
) : GroupSettingChangeEvent<Boolean>, BotPassiveEvent
|
||||
|
||||
// endregion
|
||||
|
||||
|
||||
// region 群成员
|
||||
|
||||
// region 成员变更
|
||||
|
||||
/**
|
||||
* 成员加入群的事件
|
||||
*/
|
||||
data class MemberJoinEvent(override val member: Member) : GroupMemberEvent, BotPassiveEvent
|
||||
|
||||
/**
|
||||
* 成员离开群的事件
|
||||
*/
|
||||
sealed class MemberLeftEvent : GroupMemberEvent, BotPassiveEvent {
|
||||
/**
|
||||
* 成员被踢出群. 成员不可能是机器人自己.
|
||||
*
|
||||
* @see BotKickMemberEvent 机器人踢出一个人
|
||||
*/
|
||||
data class Kick(override val member: Member, val operator: Member) : MemberLeftEvent()
|
||||
|
||||
/**
|
||||
* 成员主动离开
|
||||
*/
|
||||
data class Quit(override val member: Member) : MemberLeftEvent()
|
||||
}
|
||||
|
||||
// endregion
|
||||
|
||||
|
||||
// region 成员权限
|
||||
|
||||
/**
|
||||
* 成员权限改变的事件. 成员不可能是机器人自己.
|
||||
*/
|
||||
data class MemberPermissionChangeEvent(
|
||||
override val bot: Bot,
|
||||
override val member: Member,
|
||||
val origin: MemberPermission,
|
||||
val new: MemberPermission
|
||||
) : GroupMemberEvent, BotPassiveEvent
|
||||
|
||||
// endregion
|
||||
|
||||
|
||||
// region 禁言
|
||||
|
||||
/**
|
||||
* 群成员被禁言事件. 操作人和被禁言的成员都不可能是机器人本人
|
||||
*
|
||||
* @see BotMuteMemberEvent 机器人禁言一个人
|
||||
*/
|
||||
data class MemberMuteEvent(
|
||||
override val member: Member,
|
||||
val operator: Member,
|
||||
val durationSeconds: Int
|
||||
) : GroupMemberEvent, BotPassiveEvent {
|
||||
override fun toString(): String = "MemberMuteEvent(member=${member.id}, group=${group.id}, operator=${operator.id}, duration=${durationSeconds}s"
|
||||
}
|
||||
|
||||
/**
|
||||
* 群成员被取消禁言事件. 操作人和被禁言的成员都不可能是机器人本人
|
||||
*
|
||||
* @see BotUnmuteMemberEvent 机器人取消禁言某个人
|
||||
*/
|
||||
data class MemberUnmuteEvent(override val member: Member, val operator: Member) : GroupMemberEvent, BotPassiveEvent
|
||||
|
||||
// endregion
|
||||
|
||||
// endregion
|
||||
|
||||
// endregion
|
@ -1,37 +0,0 @@
|
||||
/*
|
||||
* Copyright 2020 Mamoe Technologies and contributors.
|
||||
*
|
||||
* 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证.
|
||||
* Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link.
|
||||
*
|
||||
* https://github.com/mamoe/mirai/blob/master/LICENSE
|
||||
*/
|
||||
|
||||
package net.mamoe.mirai.event.events
|
||||
|
||||
import net.mamoe.mirai.contact.QQ
|
||||
import net.mamoe.mirai.data.EventPacket
|
||||
import net.mamoe.mirai.utils.getValue
|
||||
import net.mamoe.mirai.utils.unsafeWeakRef
|
||||
import kotlin.jvm.JvmOverloads
|
||||
|
||||
/**
|
||||
* 陌生人请求添加机器人账号为好友
|
||||
*/
|
||||
class ReceiveFriendAddRequestEvent(
|
||||
_qq: QQ,
|
||||
/**
|
||||
* 验证消息
|
||||
*/
|
||||
val message: String
|
||||
) : EventPacket {
|
||||
val qq: QQ by _qq.unsafeWeakRef()
|
||||
|
||||
/**
|
||||
* 同意这个请求
|
||||
*
|
||||
* @param remark 备注名, 不设置则需为 `null`
|
||||
*/
|
||||
@JvmOverloads
|
||||
suspend fun approve(remark: String? = null): Unit = qq.bot.approveFriendAddRequest(qq.id, remark)
|
||||
}
|
@ -0,0 +1,63 @@
|
||||
/*
|
||||
* Copyright 2020 Mamoe Technologies and contributors.
|
||||
*
|
||||
* 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证.
|
||||
* Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link.
|
||||
*
|
||||
* https://github.com/mamoe/mirai/blob/master/LICENSE
|
||||
*/
|
||||
|
||||
package net.mamoe.mirai.event.events
|
||||
|
||||
import net.mamoe.mirai.Bot
|
||||
import net.mamoe.mirai.contact.Group
|
||||
import net.mamoe.mirai.contact.Member
|
||||
import net.mamoe.mirai.contact.QQ
|
||||
import net.mamoe.mirai.event.AbstractCancellableEvent
|
||||
import net.mamoe.mirai.event.Event
|
||||
|
||||
/**
|
||||
* 有关一个 [Bot] 的事件
|
||||
*/
|
||||
interface BotEvent : Event {
|
||||
val bot: Bot
|
||||
}
|
||||
|
||||
/**
|
||||
* [Bot] 被动接收的事件. 这些事件可能与机器人有关
|
||||
*/
|
||||
interface BotPassiveEvent : BotEvent
|
||||
|
||||
/**
|
||||
* 由 [Bot] 主动发起的动作的事件
|
||||
*/
|
||||
abstract class BotActiveEvent : BotEvent, AbstractCancellableEvent()
|
||||
|
||||
|
||||
/**
|
||||
* 有关群的事件
|
||||
*/
|
||||
interface GroupEvent : BotEvent {
|
||||
val group: Group
|
||||
override val bot: Bot
|
||||
get() = group.bot
|
||||
}
|
||||
|
||||
/**
|
||||
* 有关群成员的事件
|
||||
*/
|
||||
interface GroupMemberEvent : GroupEvent {
|
||||
val member: Member
|
||||
override val group: Group
|
||||
get() = member.group
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 有关群的事件
|
||||
*/
|
||||
interface FriendEvent : BotEvent {
|
||||
val friend: QQ
|
||||
override val bot: Bot
|
||||
get() = friend.bot
|
||||
}
|
@ -21,7 +21,7 @@ import net.mamoe.mirai.alsoLogin
|
||||
import net.mamoe.mirai.contact.Member
|
||||
import net.mamoe.mirai.contact.MemberPermission
|
||||
import net.mamoe.mirai.event.Event
|
||||
import net.mamoe.mirai.event.events.ReceiveFriendAddRequestEvent
|
||||
import net.mamoe.mirai.event.events.BotEvent
|
||||
import net.mamoe.mirai.event.subscribeAlways
|
||||
import net.mamoe.mirai.event.subscribeGroupMessages
|
||||
import net.mamoe.mirai.event.subscribeMessages
|
||||
@ -54,8 +54,8 @@ suspend fun main() {
|
||||
}
|
||||
|
||||
// 全局范围订阅事件, 不受 bot 实例影响
|
||||
GlobalScope.subscribeAlways<ReceiveFriendAddRequestEvent> {
|
||||
it.approve()
|
||||
GlobalScope.subscribeAlways<BotEvent> {
|
||||
|
||||
}
|
||||
|
||||
// 订阅来自这个 bot 的群消息事件
|
||||
|
Loading…
Reference in New Issue
Block a user