diff --git a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/message/messages.kt b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/message/messages.kt index 605b600d7..dbddf1bc9 100644 --- a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/message/messages.kt +++ b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/message/messages.kt @@ -235,7 +235,10 @@ internal fun MessageChain.toRichTextElems(forGroup: Boolean): MutableList<ImMsgB fun transformOneMessage(it: Message) { when (it) { is PlainText -> elements.add(ImMsgBody.Elem(text = ImMsgBody.Text(str = it.stringValue))) - is At -> elements.add(ImMsgBody.Elem(text = it.toJceData())).also { elements.add(ImMsgBody.Elem(text = ImMsgBody.Text(str = " "))) } + is At -> { + elements.add(ImMsgBody.Elem(text = it.toJceData())) + elements.add(ImMsgBody.Elem(text = ImMsgBody.Text(str = " "))) + } is CustomFaceFromFile -> elements.add(ImMsgBody.Elem(customFace = it.toJceData())) is CustomFaceFromServer -> elements.add(ImMsgBody.Elem(customFace = it.delegate)) is NotOnlineImageFromServer -> elements.add(ImMsgBody.Elem(notOnlineImage = it.delegate)) @@ -339,10 +342,10 @@ internal fun MsgComm.Msg.toMessageChain(): MessageChain { internal fun ImMsgBody.SourceMsg.toMessageChain(): MessageChain { val elements = this.elems!! - val message = MessageChainBuilder(elements.size + 1) - message.add(MessageSourceFromServer(delegate = this)) - elements.joinToMessageChain(message) - return message.asMessageChain() + return buildMessageChain(elements.size + 1) { + +MessageSourceFromServer(delegate = this@toMessageChain) + elements.joinToMessageChain(this) + } }