Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

取消发送FriendMessage却显示cancelled by GroupMessagePreSendEvent #1851

Closed
LaoLittle opened this issue Jan 24, 2022 · 3 comments
Closed
Labels
N 优先级: 一般 s:core 子系统: mirai-core t:bug 类型: bug
Milestone

Comments

@LaoLittle
Copy link
Contributor

问题描述

2022-01-24 22:12:38 E/main: Exception in coroutine <unnamed>
net.mamoe.mirai.event.events.EventCancelledException: cancelled by GroupMessagePreSendEvent
        at net.mamoe.mirai.internal.contact.GroupSendMessageImplKt.broadcastMessagePreSendEvent(GroupSendMessageImpl.kt:35)

复现

取消一个FriendMessagePreSendEvent

mirai-core 版本

2.10.0-RC2

bot-protocol

IPAD

其他组件版本

No response

系统日志

2022-01-24 22:16:57 V/Bot.my bot: Event: NudgeEvent(from=Friend(me), target=Bot(my bot), subject=Friend(me), action=戳了戳, suffix=)
2022-01-24 22:16:57 E/main: Exception in coroutine <unnamed>
net.mamoe.mirai.event.events.EventCancelledException: cancelled by GroupMessagePreSendEvent
        at net.mamoe.mirai.internal.contact.GroupSendMessageImplKt.broadcastMessagePreSendEvent(GroupSendMessageImpl.kt:35)
        at net.mamoe.mirai.internal.contact.AbstractUserKt.sendMessageImpl(AbstractUser.kt:252)
        at net.mamoe.mirai.internal.contact.FriendImpl.sendMessage(FriendImpl.kt:84)
        at org.laolittle.plugin.joinorquit.AutoGroup$onEnable$23.invokeSuspend(AutoGroup.kt:267)
        at org.laolittle.plugin.joinorquit.AutoGroup$onEnable$23.invoke(AutoGroup.kt)
        at org.laolittle.plugin.joinorquit.AutoGroup$onEnable$23.invoke(AutoGroup.kt)
        at net.mamoe.mirai.event.EventChannel$subscribeAlways$1.invokeSuspend(EventChannel.kt:455)
        at net.mamoe.mirai.event.EventChannel$subscribeAlways$1.invoke(EventChannel.kt)
        at net.mamoe.mirai.event.EventChannel$subscribeAlways$1.invoke(EventChannel.kt)
        at net.mamoe.mirai.internal.event.Handler$onEvent$2.invokeSuspend(InternalEventListeners.kt:50)
        at net.mamoe.mirai.internal.event.Handler$onEvent$2.invoke(InternalEventListeners.kt)
        at net.mamoe.mirai.internal.event.Handler$onEvent$2.invoke(InternalEventListeners.kt)
        at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:89)
        at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:165)
        at kotlinx.coroutines.BuildersKt.withContext(Unknown Source)
        at net.mamoe.mirai.internal.event.Handler.onEvent(InternalEventListeners.kt:50)
        at net.mamoe.mirai.internal.event.InternalEventListenersKt.process(InternalEventListeners.kt:166)
        at net.mamoe.mirai.internal.event.InternalEventListenersKt.callAndRemoveIfRequired(InternalEventListeners.kt:115)
        at net.mamoe.mirai.event._EventBroadcast.broadcastImpl(Event.kt:174)
        at net.mamoe.mirai.IMirai.broadcastEvent(IMirai.kt:318)
        at net.mamoe.mirai.internal.MiraiImpl.broadcastEvent$suspendImpl(MiraiImpl.kt:308)
        at net.mamoe.mirai.internal.MiraiImpl.broadcastEvent(MiraiImpl.kt)
        at net.mamoe.mirai.event._EventBroadcast.broadcastPublic$suspendImpl(Event.kt:161)
        at net.mamoe.mirai.event._EventBroadcast.broadcastPublic(Event.kt)
        at net.mamoe.mirai.event.EventKt.broadcast(Event.kt:146)
        at net.mamoe.mirai.internal.network.components.EventDispatcherImpl$broadcast$2.invokeSuspend(EventDispatcher.kt:90)
        at net.mamoe.mirai.internal.network.components.EventDispatcherImpl$broadcast$2.invoke(EventDispatcher.kt)
        at net.mamoe.mirai.internal.network.components.EventDispatcherImpl$broadcast$2.invoke(EventDispatcher.kt)
        at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:89)
        at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:165)
        at kotlinx.coroutines.BuildersKt.withContext(Unknown Source)
        at net.mamoe.mirai.internal.network.components.EventDispatcherImpl.broadcast$suspendImpl(EventDispatcher.kt:89)
        at net.mamoe.mirai.internal.network.components.EventDispatcherImpl.broadcast(EventDispatcher.kt)
        at net.mamoe.mirai.internal.network.components.EventDispatcherImpl$broadcastAsync$job$1.invokeSuspend(EventDispatcher.kt:105)
        at net.mamoe.mirai.internal.network.components.EventDispatcherImpl$broadcastAsync$job$1.invoke(EventDispatcher.kt)
        at net.mamoe.mirai.internal.network.components.EventDispatcherImpl$broadcastAsync$job$1.invoke(EventDispatcher.kt)
        at kotlinx.coroutines.intrinsics.UndispatchedKt.startCoroutineUndispatched(Undispatched.kt:55)
        at kotlinx.coroutines.CoroutineStart.invoke(CoroutineStart.kt:112)
        at kotlinx.coroutines.AbstractCoroutine.start(AbstractCoroutine.kt:126)
        at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch(Builders.common.kt:56)
        at kotlinx.coroutines.BuildersKt.launch(Unknown Source)
        at net.mamoe.mirai.internal.network.components.EventDispatcherImpl.broadcastAsync-kKe4JaQ(EventDispatcher.kt:102)
        at net.mamoe.mirai.internal.network.components.EventDispatcher.broadcastAsync-kKe4JaQ$default(EventDispatcher.kt:35)
        at net.mamoe.mirai.internal.network.components.EventBroadcasterPacketHandler.impl(PacketHandler.kt:87)
        at net.mamoe.mirai.internal.network.components.EventBroadcasterPacketHandler.impl(PacketHandler.kt:80)
        at net.mamoe.mirai.internal.network.components.EventBroadcasterPacketHandler.handlePacket(PacketHandler.kt:73)
        at net.mamoe.mirai.internal.network.components.PacketHandlerChain.handlePacket(PacketHandler.kt:42)
        at net.mamoe.mirai.internal.network.handler.NetworkHandlerSupport$collectReceived$3.invokeSuspend(NetworkHandlerSupport.kt:84)
        at net.mamoe.mirai.internal.network.handler.NetworkHandlerSupport$collectReceived$3.invoke(NetworkHandlerSupport.kt)
        at net.mamoe.mirai.internal.network.handler.NetworkHandlerSupport$collectReceived$3.invoke(NetworkHandlerSupport.kt)
        at kotlinx.coroutines.intrinsics.UndispatchedKt.startCoroutineUndispatched(Undispatched.kt:55)
        at kotlinx.coroutines.CoroutineStart.invoke(CoroutineStart.kt:112)
        at kotlinx.coroutines.AbstractCoroutine.start(AbstractCoroutine.kt:126)
        at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch(Builders.common.kt:56)
        at kotlinx.coroutines.BuildersKt.launch(Unknown Source)
        at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch$default(Builders.common.kt:47)
        at kotlinx.coroutines.BuildersKt.launch$default(Unknown Source)
        at net.mamoe.mirai.internal.network.handler.NetworkHandlerSupport.collectReceived$mirai_core(NetworkHandlerSupport.kt:82)
        at net.mamoe.mirai.internal.network.impl.netty.NettyNetworkHandler$PacketDecodePipeline$send$1.invokeSuspend(NettyNetworkHandler.kt:178)
        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
        at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
        at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
        at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472)
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500)
        at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
        at java.base/java.lang.Thread.run(Thread.java:833)

网络日志

NaN

补充信息

No response

@Karlatemp
Copy link
Member

有具体的触发此错误的代码吗

@Karlatemp Karlatemp added s:core 子系统: mirai-core x:question 标签: 需要更多信息 z:wait-for-reply 状态: 等待回复 labels Jan 24, 2022
@LaoLittle
Copy link
Contributor Author

LaoLittle commented Jan 24, 2022

有具体的触发此错误的代码吗

        globalEventChannel().subscribeAlways<GroupTempMessagePreSendEvent>(
            priority = EventPriority.HIGHEST
        ) { intercept();cancel() }

        globalEventChannel().subscribeAlways<FriendMessageEvent>(
            priority = EventPriority.HIGHEST
        ) { intercept() }

        globalEventChannel().subscribeAlways<FriendMessagePreSendEvent>(
            priority = EventPriority.HIGHEST
        ) { intercept();cancel() }

@Him188 Him188 added N 优先级: 一般 t:bug 类型: bug and removed x:question 标签: 需要更多信息 z:wait-for-reply 状态: 等待回复 labels Jan 27, 2022
@Him188
Copy link
Member

Him188 commented Jan 27, 2022

看起来只是异常内容有问题

@Him188 Him188 added this to the 2.11 milestone Jan 27, 2022
@Him188 Him188 modified the milestones: 2.11, 2.11.0-RC Feb 10, 2022
strear pushed a commit to strear/mirai that referenced this issue Feb 21, 2022
@Him188 Him188 modified the milestones: 2.11.0-RC, 2.11.0-M1 Mar 8, 2022
Him188 pushed a commit that referenced this issue Mar 8, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
N 优先级: 一般 s:core 子系统: mirai-core t:bug 类型: bug
Projects
None yet
Development

No branches or pull requests

3 participants