diff --git a/binary-compatibility-validator/android/api/binary-compatibility-validator-android.api b/binary-compatibility-validator/android/api/binary-compatibility-validator-android.api index ccab21a3a..11a8811aa 100644 --- a/binary-compatibility-validator/android/api/binary-compatibility-validator-android.api +++ b/binary-compatibility-validator/android/api/binary-compatibility-validator-android.api @@ -4301,6 +4301,7 @@ public final class net/mamoe/mirai/message/data/ForwardMessageBuilder : java/uti public fun subList (II)Ljava/util/List; public fun toArray ()[Ljava/lang/Object; public fun toArray ([Ljava/lang/Object;)[Ljava/lang/Object; + public final fun toRawForwardMessage ()Lnet/mamoe/mirai/message/data/RawForwardMessage; } public final class net/mamoe/mirai/message/data/ForwardMessageBuilder$BuilderNode : net/mamoe/mirai/message/data/ForwardMessage$INode { diff --git a/binary-compatibility-validator/api/binary-compatibility-validator.api b/binary-compatibility-validator/api/binary-compatibility-validator.api index f10ea180f..bad95cc60 100644 --- a/binary-compatibility-validator/api/binary-compatibility-validator.api +++ b/binary-compatibility-validator/api/binary-compatibility-validator.api @@ -4301,6 +4301,7 @@ public final class net/mamoe/mirai/message/data/ForwardMessageBuilder : java/uti public fun subList (II)Ljava/util/List; public fun toArray ()[Ljava/lang/Object; public fun toArray ([Ljava/lang/Object;)[Ljava/lang/Object; + public final fun toRawForwardMessage ()Lnet/mamoe/mirai/message/data/RawForwardMessage; } public final class net/mamoe/mirai/message/data/ForwardMessageBuilder$BuilderNode : net/mamoe/mirai/message/data/ForwardMessage$INode { diff --git a/mirai-core-api/src/commonMain/kotlin/message/data/ForwardMessage.kt b/mirai-core-api/src/commonMain/kotlin/message/data/ForwardMessage.kt index d74bd35f9..fad96e514 100644 --- a/mirai-core-api/src/commonMain/kotlin/message/data/ForwardMessage.kt +++ b/mirai-core-api/src/commonMain/kotlin/message/data/ForwardMessage.kt @@ -31,7 +31,6 @@ import net.mamoe.mirai.utils.toLongUnsigned * [RawForwardMessage] 可以序列化保存, 也可以被多次[渲染][RawForwardMessage.render]产生不同格式的 [ForwardMessage]. */ @Serializable -@MiraiExperimentalApi public data class RawForwardMessage( /** * 消息列表 @@ -745,16 +744,18 @@ public class ForwardMessageBuilder private constructor( // endregion + /** + * 构造 [RawForwardMessage]. [RawForwardMessage] 可以被多个 [DisplayStrategy] [渲染][RawForwardMessage.render]. + * @since 2.6 + */ + public fun toRawForwardMessage(): RawForwardMessage = RawForwardMessage(container.map { + ForwardMessage.Node(it.senderId, it.time, it.senderName, it.messageChain) + }) - /** 构造 [ForwardMessage] */ - public fun build(): ForwardMessage = RawForwardMessage(container.map { - ForwardMessage.Node( - it.senderId, - it.time, - it.senderName, - it.messageChain - ) - }).render(this.displayStrategy) + /** + * 使用 [displayStrategy] 渲染并构造可以发送的 [ForwardMessage]. + */ + public fun build(): ForwardMessage = toRawForwardMessage().render(this.displayStrategy) internal fun Bot.smartName(): String = when (val c = this@ForwardMessageBuilder.context) { is Group -> c.botAsMember.nameCardOrNick