diff --git a/mirai-core-api/src/commonMain/kotlin/message/MessageReceipt.kt b/mirai-core-api/src/commonMain/kotlin/message/MessageReceipt.kt index 743b8f495..574d74dbe 100644 --- a/mirai-core-api/src/commonMain/kotlin/message/MessageReceipt.kt +++ b/mirai-core-api/src/commonMain/kotlin/message/MessageReceipt.kt @@ -12,6 +12,7 @@ package net.mamoe.mirai.message import net.mamoe.kjbb.JvmBlockingBridge +import net.mamoe.mirai.Bot import net.mamoe.mirai.IMirai import net.mamoe.mirai.Mirai import net.mamoe.mirai.contact.* @@ -19,7 +20,7 @@ import net.mamoe.mirai.message.MessageReceipt.Companion.quote import net.mamoe.mirai.message.MessageReceipt.Companion.quoteReply import net.mamoe.mirai.message.data.* import net.mamoe.mirai.message.data.MessageSource.Key.quote -import net.mamoe.mirai.utils.MiraiExperimentalApi +import net.mamoe.mirai.utils.MiraiInternalApi /** * 发送消息后得到的回执. 可用于撤回, 引用回复等. @@ -38,7 +39,7 @@ import net.mamoe.mirai.utils.MiraiExperimentalApi * @see MessageReceipt.sourceIds 源 ids * @see MessageReceipt.sourceTime 源时间 */ -public open class MessageReceipt @MiraiExperimentalApi("The constructor is subject to change.") constructor( +public open class MessageReceipt @MiraiInternalApi constructor( /** * 指代发送出去的消息. */ @@ -47,12 +48,6 @@ public open class MessageReceipt @MiraiExperimentalApi("The con * 发送目标, 为 [Group] 或 [Friend] 或 [Member] */ public val target: C, - - /** - * @see Group.botAsMember - */ - @MiraiExperimentalApi("This is subject to change.") - public val botAsMember: Member? ) { /** * 是否为发送给群的消息的回执 @@ -98,26 +93,32 @@ public open class MessageReceipt @MiraiExperimentalApi("The con } } +/** + * 获取相关 [Bot] + */ +public inline val MessageReceipt<*>.bot: Bot + get() = target.bot + /** * 获取源消息 [MessageSource.ids] - * - * @see MessageSource.ids */ public inline val MessageReceipt<*>.sourceIds: IntArray get() = this.source.ids /** * 获取源消息 [MessageSource.internalIds] - * - * @see MessageSource.ids */ public inline val MessageReceipt<*>.sourceInternalIds: IntArray get() = this.source.internalIds /** * 获取源消息 [MessageSource.time] - * - * @see MessageSource.time */ public inline val MessageReceipt<*>.sourceTime: Int get() = this.source.time + +/** + * 获取源消息 [MessageSource.originalMessage] + */ +public inline val MessageReceipt<*>.sourceMessage: MessageChain + get() = this.source.originalMessage diff --git a/mirai-core/src/commonMain/kotlin/contact/FriendImpl.kt b/mirai-core/src/commonMain/kotlin/contact/FriendImpl.kt index c2b3d6806..05d159fd9 100644 --- a/mirai-core/src/commonMain/kotlin/contact/FriendImpl.kt +++ b/mirai-core/src/commonMain/kotlin/contact/FriendImpl.kt @@ -98,8 +98,8 @@ internal class FriendImpl( require(message.isContentNotEmpty()) { "message is empty" } return sendMessageImpl( message, - friendReceiptConstructor = { MessageReceipt(it, this, null) }, - tReceiptConstructor = { MessageReceipt(it, this, null) } + friendReceiptConstructor = { MessageReceipt(it, this) }, + tReceiptConstructor = { MessageReceipt(it, this) } ).also { logMessageSent(message) } diff --git a/mirai-core/src/commonMain/kotlin/contact/GroupImpl.kt b/mirai-core/src/commonMain/kotlin/contact/GroupImpl.kt index bcc05d147..c30fc4185 100644 --- a/mirai-core/src/commonMain/kotlin/contact/GroupImpl.kt +++ b/mirai-core/src/commonMain/kotlin/contact/GroupImpl.kt @@ -356,7 +356,7 @@ internal class GroupImpl( bot.network.logger.warning(e) } - MessageReceipt(source, this@GroupImpl, botAsMember) + MessageReceipt(source, this@GroupImpl) } result.fold( diff --git a/mirai-core/src/commonMain/kotlin/contact/MemberImpl.kt b/mirai-core/src/commonMain/kotlin/contact/MemberImpl.kt index b6a8a9e2f..11a137ff2 100644 --- a/mirai-core/src/commonMain/kotlin/contact/MemberImpl.kt +++ b/mirai-core/src/commonMain/kotlin/contact/MemberImpl.kt @@ -69,8 +69,8 @@ internal class MemberImpl constructor( return (asFriend?.sendMessageImpl( message, - friendReceiptConstructor = { MessageReceipt(it, asFriend, null) }, - tReceiptConstructor = { MessageReceipt(it, this, null) } + friendReceiptConstructor = { MessageReceipt(it, asFriend) }, + tReceiptConstructor = { MessageReceipt(it, this) } ) ?: sendMessageImpl(message)).also { logMessageSent(message) } } @@ -100,7 +100,7 @@ internal class MemberImpl constructor( "Send temp message failed: $it" } } - MessageReceipt(source, this@MemberImpl, null) + MessageReceipt(source, this@MemberImpl) } result.fold(