diff --git a/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/message/data/builder.kt b/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/message/data/builder.kt index 86060a517..e0fbd0b50 100644 --- a/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/message/data/builder.kt +++ b/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/message/data/builder.kt @@ -11,9 +11,8 @@ package net.mamoe.mirai.message.data import kotlin.jvm.JvmOverloads - /** - * 构造一个 [MessageChain] + * 构建一个 [MessageChain] * * @see MessageChainBuilder */ @@ -21,7 +20,34 @@ inline fun buildMessageChain(block: MessageChainBuilder.() -> Unit): MessageChai return MessageChainBuilder().apply(block).asMessageChain() } -class MessageChainBuilder @JvmOverloads constructor( +/** + * 使用特定的容器大小构建一个 [MessageChain] + * + * @see MessageChainBuilder + */ +inline fun buildMessageChain(initialSize: Int, block: MessageChainBuilder.() -> Unit): MessageChain { + return MessageChainBuilder(initialSize).apply(block).asMessageChain() +} + +/** + * 使用特定的容器构建一个 [MessageChain] + * + * @see MessageChainBuilder + */ +inline fun buildMessageChain( + container: MutableCollection<Message>, + block: MessageChainBuilder.() -> Unit +): MessageChain { + return MessageChainBuilder(container).apply(block).asMessageChain() +} + +/** + * [MessageChain] 构建器. + * + * @see buildMessageChain + */ +class MessageChainBuilder +@JvmOverloads constructor( private val container: MutableCollection<Message> = mutableListOf() ) : MutableCollection<Message> by container, Appendable { constructor(initialSize: Int) : this(ArrayList<Message>(initialSize))