From 3e644426c8556e1443b3a0c9f1c4dc36345ed8a9 Mon Sep 17 00:00:00 2001 From: Him188 Date: Wed, 22 Apr 2020 17:03:06 +0800 Subject: [PATCH] Make `MessageChainBuilder` open --- .../net.mamoe.mirai/message/data/builder.kt | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) 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 afaeb7b72..b4c84c986 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 @@ -48,13 +48,13 @@ inline fun buildMessageChain(initialSize: Int, block: MessageChainBuilder.() -> * @see asMessageChain 完成构建 */ @OptIn(MiraiExperimentalAPI::class) -class MessageChainBuilder private constructor( +open class MessageChainBuilder private constructor( private val container: MutableList ) : MutableList by container, Appendable { constructor() : this(mutableListOf()) constructor(initialSize: Int) : this(ArrayList(initialSize)) - override fun add(element: SingleMessage): Boolean { + final override fun add(element: SingleMessage): Boolean { checkBuilt() flushCache() return addAndCheckConstrainSingle(element) @@ -72,7 +72,7 @@ class MessageChainBuilder private constructor( } } - override fun addAll(elements: Collection): Boolean { + final override fun addAll(elements: Collection): Boolean { checkBuilt() flushCache() return addAll(elements.flatten()) @@ -124,9 +124,9 @@ class MessageChainBuilder private constructor( withCache { append(charSequence) } } - override fun append(value: Char): MessageChainBuilder = withCache { append(value) } - override fun append(value: CharSequence?): MessageChainBuilder = withCache { append(value) } - override fun append(value: CharSequence?, startIndex: Int, endIndex: Int): MessageChainBuilder = + final override fun append(value: Char): MessageChainBuilder = withCache { append(value) } + final override fun append(value: CharSequence?): MessageChainBuilder = withCache { append(value) } + final override fun append(value: CharSequence?, startIndex: Int, endIndex: Int): MessageChainBuilder = withCache { append(value, startIndex, endIndex) } fun append(message: Message): MessageChainBuilder = apply { add(message) } @@ -153,27 +153,27 @@ class MessageChainBuilder private constructor( /////// // FOR IMMUTABLE SAFETY - override fun remove(element: SingleMessage): Boolean { + final override fun remove(element: SingleMessage): Boolean { checkBuilt() return container.remove(element) } - override fun removeAll(elements: Collection): Boolean { + final override fun removeAll(elements: Collection): Boolean { checkBuilt() return container.removeAll(elements) } - override fun removeAt(index: Int): SingleMessage { + final override fun removeAt(index: Int): SingleMessage { checkBuilt() return container.removeAt(index) } - override fun clear() { + final override fun clear() { checkBuilt() return container.clear() } - override fun set(index: Int, element: SingleMessage): SingleMessage { + final override fun set(index: Int, element: SingleMessage): SingleMessage { checkBuilt() return container.set(index, element) }