未解决 【求助】突然无法监听到事件
-
事件监听代码如下:
override fun onEnable() { val channel = GlobalEventChannel val nudge = channel.filter { it is NudgeEvent } val memberJoin = channle.filter { it is MemberJoinEvent } memberJoin.subscribeAlways<MemberJoinEvent> { event -> (here is some code) } nudge.subscribeAlways<NudgeEvent> { event -> (here is some code) }
当有新成员加入或者有人触发戳一戳时,不执行对应动作,控制台也没有事件触发的提示
-
-
下载了其他人做好的戳一戳插件源码编译之后发现同样是无法收到事件
-
安卓手表协议无法收到戳一戳事件
请检查是否为改协议 -
@cssxsh 感谢大佬回复,还想请教一下,安卓手表协议是否还有其他不支持的事件类型?在上面那段代码中,不只是戳戳事件,其他的事件(比如成员入群退群)似乎也无法监听的到
-
@N70_
你为什么不看看官方文档呢 -
此回复已被删除! -
@cssxsh
我在文档中找到了这样的描述
Android 手机. 所有功能都支持.
Android 平板. 注意: 不支持戳一戳事件解析
Android 手表.
或许还有更详细的描述,我再去翻翻event那部分吧
因为有时候我需要切换到机器人登录的QQ号上处理一些事,所以我都是使用安卓手表的协议。但是问题提出的前一天机器人还是可以监听到新成员入群的事件的来着…… -
@cssxsh
在BotConfiguration.kt中找到了下面的代码/** 使用协议类型 */ public var protocol: MiraiProtocol public enum class MiraiProtocol { /** * Android 手机. 所有功能都支持. */ ANDROID_PHONE, /** * Android 平板. * * 注意: 不支持戳一戳事件解析 */ ANDROID_PAD, /** * Android 手表. */ ANDROID_WATCH, /** * iPad - 来自MiraiGo * * @since 2.8 */ IPAD, /** * MacOS - 来自MiraiGo * * @since 2.8 */ MACOS, }
在MemberJoinEvent找到以下代码
/** * 成员已经加入群的事件 */ public sealed class MemberJoinEvent( public override val member: NormalMember ) : GroupMemberEvent, BotPassiveEvent, Packet, AbstractEvent(), GroupMemberInfoChangeEvent { /** * 被邀请加入群 */ public data class Invite @MiraiInternalApi constructor( public override val member: NormalMember, /** * 邀请者 */ public val invitor: NormalMember ) : MemberJoinEvent(member) { public override fun toString(): String = "MemberJoinEvent.Invite(member=${member.id}, invitor=${invitor.id})" } /** * 成员主动加入群 */ public data class Active @MiraiInternalApi constructor( public override val member: NormalMember ) : MemberJoinEvent(member) { public override fun toString(): String = "MemberJoinEvent.Active(member=${member.id})" } /** * 原群主通过 https://huifu.qq.com/ 恢复原来群主身份并入群, * 此时 [member] 的 [Member.permission] 肯定是 [MemberPermission.OWNER] */ public data class Retrieve @MiraiInternalApi constructor( public override val member: NormalMember ) : MemberJoinEvent(member) { override fun toString(): String = "MemberJoinEvent.Retrieve(member=${member.id})" } }
没有找到关于协议类型能够/不能收到的事件列表或者事件支持/不支持的协议描述……
-
@N70_ 那就开issue 问