CombinedMessage

class CombinedMessage constructor(    val element: Message,     val tail: Message,     val hasConstrainSingle: Boolean) : AbstractMessageChain, List<SingleMessage>

树状消息链的一个节点. element 为当前元素, tail 为下一个元素.

注意: 这是内部 API. 不要在任何情况下使用它. Message.plus 等连接消息链的 API 已经有性能优化, 会在合适的时机创建 CombinedMessage, 不需要自行考虑创建 CombinedMessage.

Since

2.12

Constructors

Link copied to clipboard
fun CombinedMessage(    element: Message,     tail: Message,     hasConstrainSingle: Boolean)

Functions

Link copied to clipboard
open override fun appendMiraiCodeTo(builder: StringBuilder)
Link copied to clipboard
open operator override fun contains(element: SingleMessage): Boolean

open operator fun <M : SingleMessage> contains(key: MessageKey<M>): Boolean

当存在 ConstrainSingle.keykeySingleMessage 实例时返回 true.

Link copied to clipboard
open override fun containsAll(elements: Collection<SingleMessage>): Boolean
Link copied to clipboard
open fun contentEquals(another: String, ignoreCase: Boolean = false): Boolean

判断内容是否与 another 相等.

open fun contentEquals(another: Message, ignoreCase: Boolean = false): Boolean

判断内容是否与 another 相等即 thisanothercontentToString 相等.

open fun contentEquals(    another: Message,     ignoreCase: Boolean = false,     strict: Boolean = false): Boolean

判断内容是否与 another 相等即 thisanothercontentToString 相等.

Link copied to clipboard
open override fun contentToString(): String

转为最接近官方格式的字符串, 即 "内容". 如 At(member) + "test" 将转为 "@群名片 test".

Link copied to clipboard
open operator override fun equals(other: Any?): Boolean
Link copied to clipboard
open fun followedBy(tail: Message): MessageChain

thistail 连接.

Link copied to clipboard
open operator override fun get(index: Int): SingleMessage

open operator fun <M : SingleMessage> get(key: MessageKey<M>): M?

获取第一个类型为 keyMessage 实例. 若不存在此实例, 返回 null.

Link copied to clipboard
open override fun hashCode(): Int
Link copied to clipboard
open override fun indexOf(element: SingleMessage): Int
Link copied to clipboard
open override fun isEmpty(): Boolean
Link copied to clipboard
open operator override fun iterator(): Iterator<SingleMessage>
Link copied to clipboard
open override fun lastIndexOf(element: SingleMessage): Int
Link copied to clipboard
open override fun listIterator(): ListIterator<SingleMessage>
open override fun listIterator(index: Int): ListIterator<SingleMessage>
Link copied to clipboard
open operator fun plus(another: Array<out Message>): MessageChain

创建一个消息链, 将 another 连接到这个消息的尾部. 这不会改变本 Message, 而是会创建新的 MessageChain 实例. 返回的 MessageChain 实例的第一个元素为本 Message, 随后为按顺序的 another 中的元素.

open operator fun plus(another: CharSequence): MessageChain

创建一个消息链, 将 another 连接到这个消息的尾部. 这不会改变本 Message, 而是会创建新的 MessageChain 实例. 返回的 MessageChain 实例的第一个元素为本 Message, 随后为按顺序的 another 中的元素.

open operator fun plus(another: String): MessageChain

创建一个消息链, 将 another 连接到这个消息的尾部. 这不会改变本 Message, 而是会创建新的 MessageChain 实例. 返回的 MessageChain 实例的第一个元素为本 Message, 随后为按顺序的 another 中的元素.

@JvmName(name = "plusIterableString")
open operator fun plus(another: Iterable<String>): MessageChain

创建一个消息链, 将 another 连接到这个消息的尾部. 这不会改变本 Message, 而是会创建新的 MessageChain 实例. 返回的 MessageChain 实例的第一个元素为本 Message, 随后为按顺序的 another 中的元素.

open operator fun plus(another: Iterable<Message>): MessageChain

创建一个消息链, 将 another 连接到这个消息的尾部. 这不会改变本 Message, 而是会创建新的 MessageChain 实例. 返回的 MessageChain 实例的第一个元素为本 Message, 随后为按顺序的 another 中的元素.

open operator fun plus(another: Sequence<Message>): MessageChain

创建一个消息链, 将 another 连接到这个消息的尾部. 这不会改变本 Message, 而是会创建新的 MessageChain 实例. 返回的 MessageChain 实例的第一个元素为本 Message, 随后为按顺序的 another 中的元素.

open operator fun plus(another: Message): MessageChain

创建一个消息链, 将 another 连接到这个消息的尾部. 这不会改变本 Message, 而是会创建新的 MessageChain 实例. 返回的 MessageChain 实例的第一个元素为本 Message, 随后为按顺序的 another 中的元素.

open operator fun plus(another: MessageChain): MessageChain

创建一个消息链, 将 another 连接到这个消息的尾部. 这不会改变本 Message, 而是会创建新的 MessageChain 实例. 返回的 MessageChain 实例的第一个元素为本 Message, 随后为按顺序的 another 中的元素.

open operator fun plus(another: SingleMessage): MessageChain

创建一个消息链, 将 another 连接到这个消息的尾部. 这不会改变本 Message, 而是会创建新的 MessageChain 实例. 返回的 MessageChain 实例的第一个元素为本 Message, 随后为按顺序的 another 中的元素.

Link copied to clipboard
open fun serializeToMiraiCode(): String

转换为 mirai 码.

Link copied to clipboard
open override fun subList(fromIndex: Int, toIndex: Int): List<SingleMessage>
Link copied to clipboard
open override fun toString(): String

得到包含 mirai 消息元素代码的, 易读的字符串. 如 At(member) + "test" 将转为 "[mirai:at:qqId]test".

Properties

Link copied to clipboard
val element: Message
Link copied to clipboard
open override val hasConstrainSingle: Boolean

去重算法 v1 - 2.12: 在连接时若只有 0-1 方包含 ConstrainSingle, 则使用 CombinedMessage 优化性能. 否则使用旧版复杂去重算法构造 LinearMessageChainImpl.

Link copied to clipboard
open override val size: Int
Link copied to clipboard
val tail: Message