-
Notifications
You must be signed in to change notification settings - Fork 2.5k
Closed
Labels
M优先级: 主要优先级: 主要s:core子系统: mirai-core子系统: mirai-coret:problem类型: 不容易归类为特性或 bug 的综合问题类型: 不容易归类为特性或 bug 的综合问题
Milestone
Description
问题描述
机器人发送一个ForwardMessage 然后引用发送QuoteReply失败
MessageReceipt<Group> plainMessage = event.getSubject().sendMessage("TEST");
plainMessage.quoteReply("PLAIN QUOTE TEST");
List<ForwardMessage.Node> nodeList = new ArrayList<>();
nodeList.add(new ForwardMessage.Node(event.getBot().getId(), (int) (System.currentTimeMillis() / 1000), event.getBot().getNick(), new PlainText("test")));
MessageReceipt<Group> forwardMessage = event.getSubject().sendMessage(new ForwardMessage(Collections.singletonList("T"), "T", "T", "T", "T", nodeList));
event.getSubject().sendMessage(new MessageChainBuilder().append(new QuoteReply(forwardMessage.getSource())).append("TEST").build());
forwardMessage.quoteReply("FORWARD QUOTE TEST");
复现
MessageReceipt<Group> forwardMessage = event.getSubject().sendMessage(new ForwardMessage(Collections.singletonList("T"), "T", "T", "T", "T", nodeList));
forwardMessage.quoteReply("FORWARD QUOTE TEST");
发送出一个ForwardMessage然后调用quoteReply或者直接new QuoteReply
event.getSubject().sendMessage(new MessageChainBuilder().append(new QuoteReply(forwardMessage.getSource())).append("TEST").build());
mirai-core 版本
2.13.0-RC2
bot-protocol
MACOS
其他组件版本
No response
系统日志
2022-11-11 10:36:33 W/Bot ******: An exception occurred when processing event. Subscriber scope: '<unnamed>'. Broadcaster scope: 'Bot.2979182632.EventDispatcher'
java.util.NoSuchElementException: List is empty.
at kotlin.collections.CollectionsKt___CollectionsKt.last(_Collections.kt:418)
at net.mamoe.mirai.internal.message.source.OnlineMessageSourceToGroupImpl$jceData$2.invoke(outgoingSourceImpl.kt:244)
at net.mamoe.mirai.internal.message.source.OnlineMessageSourceToGroupImpl$jceData$2.invoke(outgoingSourceImpl.kt:216)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
at net.mamoe.mirai.internal.message.source.OnlineMessageSourceToGroupImpl.getJceData(outgoingSourceImpl.kt:216)
at net.mamoe.mirai.internal.message.source.OnlineMessageSourceToGroupImpl.toJceData(outgoingSourceImpl.kt:252)
at net.mamoe.mirai.internal.message.protocol.impl.QuoteReplyProtocol$Encoder.process(QuoteReplyProtocol.kt:160)
at net.mamoe.mirai.internal.message.protocol.impl.QuoteReplyProtocol$Encoder.process(QuoteReplyProtocol.kt:156)
at net.mamoe.mirai.internal.message.protocol.encode.MessageEncoderProcessor.process(MessageEncoder.kt:35)
at net.mamoe.mirai.internal.message.protocol.encode.MessageEncoderProcessor.process(MessageEncoder.kt:26)
at net.mamoe.mirai.internal.pipeline.AbstractProcessorPipeline.process$suspendImpl(ProcessorPipeline.kt:287)
at net.mamoe.mirai.internal.pipeline.AbstractProcessorPipeline.process(ProcessorPipeline.kt)
at net.mamoe.mirai.internal.pipeline.AbstractProcessorPipeline.process$suspendImpl(ProcessorPipeline.kt:275)
at net.mamoe.mirai.internal.pipeline.AbstractProcessorPipeline.process(ProcessorPipeline.kt)
at net.mamoe.mirai.internal.message.protocol.MessageProtocolFacadeImpl$encode$1$visitSingleMessage$1.invokeSuspend(MessageProtocolFacade.kt:279)
at net.mamoe.mirai.internal.message.protocol.MessageProtocolFacadeImpl$encode$1$visitSingleMessage$1.invoke(MessageProtocolFacade.kt)
at net.mamoe.mirai.internal.message.protocol.MessageProtocolFacadeImpl$encode$1$visitSingleMessage$1.invoke(MessageProtocolFacade.kt)
at net.mamoe.mirai.internal.utils.RunCoroutineInPlaceKt.runCoroutineInPlace(runCoroutineInPlace.kt:26)
at net.mamoe.mirai.internal.message.protocol.MessageProtocolFacadeImpl$encode$1.visitSingleMessage(MessageProtocolFacade.kt:278)
at net.mamoe.mirai.internal.message.protocol.MessageProtocolFacadeImpl$encode$1.visitSingleMessage(MessageProtocolFacade.kt:276)
at net.mamoe.mirai.message.data.visitor.AbstractMessageVisitor.visitMessageMetadata(MessageVisitor.kt:117)
at net.mamoe.mirai.message.data.visitor.AbstractMessageVisitor.visitQuoteReply(MessageVisitor.kt:130)
at net.mamoe.mirai.message.data.QuoteReply.accept(QuoteReply.kt:68)
at net.mamoe.mirai.message.data.LinearMessageChainImpl.acceptChildren(impl.kt:197)
at net.mamoe.mirai.message.data.visitor.RecursiveMessageVisitor.visitMessage(MessageVisitor.kt:243)
at net.mamoe.mirai.message.data.visitor.RecursiveMessageVisitor.visitMessage(MessageVisitor.kt:237)
at net.mamoe.mirai.message.data.visitor.AbstractMessageVisitor.visitMessageChain(MessageVisitor.kt:104)
at net.mamoe.mirai.message.data.MessageChain.accept(MessageChain.kt:262)
at net.mamoe.mirai.message.data.visitor.MessageVisitorKt.accept(MessageVisitor.kt:261)
at net.mamoe.mirai.internal.message.protocol.MessageProtocolFacadeImpl.encode(MessageProtocolFacade.kt:276)
at net.mamoe.mirai.internal.message.protocol.MessageProtocolFacade$INSTANCE.encode(MessageProtocolFacade.kt)
at net.mamoe.mirai.internal.message.protocol.MessageProtocolFacade.encode$default(MessageProtocolFacade.kt:64)
at net.mamoe.mirai.internal.message.protocol.outgoing.GroupMessageProtocolStrategy.createPacketsForGeneralMessage$suspendImpl(MessageProtocolStrategy.kt:301)
at net.mamoe.mirai.internal.message.protocol.outgoing.GroupMessageProtocolStrategy.createPacketsForGeneralMessage(MessageProtocolStrategy.kt)
at net.mamoe.mirai.internal.message.protocol.outgoing.GroupMessageProtocolStrategy.createPacketsForGeneralMessage(MessageProtocolStrategy.kt:139)
at net.mamoe.mirai.internal.message.protocol.impl.GeneralMessageSenderProtocol$GeneralMessageSender.process(GeneralMessageSenderProtocol.kt:64)
at net.mamoe.mirai.internal.message.protocol.outgoing.OutgoingMessageProcessorAdapter.process(OutgoingMessagePipelineProcessor.kt:26)
at net.mamoe.mirai.internal.message.protocol.outgoing.OutgoingMessageProcessorAdapter.process(OutgoingMessagePipelineProcessor.kt:20)
at net.mamoe.mirai.internal.pipeline.AbstractProcessorPipeline.process$suspendImpl(ProcessorPipeline.kt:287)
at net.mamoe.mirai.internal.pipeline.AbstractProcessorPipeline.process(ProcessorPipeline.kt)
at net.mamoe.mirai.internal.message.protocol.MessageProtocolFacadeImpl.preprocessAndSendOutgoingImpl(MessageProtocolFacade.kt:361)
at net.mamoe.mirai.internal.message.protocol.MessageProtocolFacadeImpl.preprocessAndSendOutgoing(MessageProtocolFacade.kt:345)
at net.mamoe.mirai.internal.message.protocol.MessageProtocolFacade$INSTANCE.preprocessAndSendOutgoing(MessageProtocolFacade.kt)
at net.mamoe.mirai.internal.contact.AbstractUserKt.sendMessageImpl(AbstractUser.kt:263)
at net.mamoe.mirai.internal.contact.CommonGroupImpl.sendMessage$suspendImpl(GroupImpl.kt:203)
at net.mamoe.mirai.internal.contact.CommonGroupImpl.sendMessage(GroupImpl.kt)
at net.mamoe.mirai.message.MessageReceipt$quoteReply$4.invoke(MessageReceipt.kt:137)
at net.mamoe.mirai.message.MessageReceipt$quoteReply$4.invoke(MessageReceipt.kt)
at kotlin.coroutines.intrinsics.IntrinsicsKt__IntrinsicsJvmKt$createCoroutineUnintercepted$$inlined$createCoroutineFromSuspendFunction$IntrinsicsKt__IntrinsicsJvmKt$1.invokeSuspend(IntrinsicsJvm.kt:205)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlin.coroutines.ContinuationKt.startCoroutine(Continuation.kt:115)
at me.him188.kotlin.jvm.blocking.bridge.internal.RunSuspendKt.$runSuspend$(RunSuspend.kt:18)
at net.mamoe.mirai.message.MessageReceipt.quoteReply(MessageReceipt.kt)
at icu.kevin557.klbot.command.impl.Test.run(Test.java:32)
at icu.kevin557.klbot.bot.KLBot.lambda$run$0(KLBot.java:95)
at net.mamoe.mirai.event.EventChannel$subscribeAlways$2$1.invoke(EventChannel.kt:626)
at net.mamoe.mirai.event.EventChannel$subscribeAlways$2$1.invoke(EventChannel.kt:626)
at kotlinx.coroutines.InterruptibleKt.runInterruptibleInExpectedContext(Interruptible.kt:51)
at kotlinx.coroutines.InterruptibleKt.access$runInterruptibleInExpectedContext(Interruptible.kt:1)
at kotlinx.coroutines.InterruptibleKt$runInterruptible$2.invokeSuspend(Interruptible.kt:43)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at kotlinx.coroutines.internal.LimitedDispatcher.run(LimitedDispatcher.kt:42)
at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:95)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)
网络日志
No response
补充信息
getSources()可以正常获取到
Metadata
Metadata
Assignees
Labels
M优先级: 主要优先级: 主要s:core子系统: mirai-core子系统: mirai-coret:problem类型: 不容易归类为特性或 bug 的综合问题类型: 不容易归类为特性或 bug 的综合问题