Add optional params

This commit is contained in:
Him188 2020-03-01 13:34:18 +08:00
parent d024d1c9b4
commit 03caca95ba

View File

@ -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))