mirai-core / net.mamoe.mirai.message.data / MessageChain

MessageChain

interface MessageChain : Message, Iterable<SingleMessage>

消息链. 空的实现为 EmptyMessageChain

要获取更多信息, 请查看 Message

See Also

buildMessageChain

asMessageChain

asMessageChain

foreachContent

orNull

orElse

getValue

flatten

Properties

size

元素数量. EmptyMessageChain 不参加计数.

abstract val size: Int

Functions

__forEach for Java__

遍历每一个消息, 即 MessageSource, AtAll, PlainText, Image, Face, XmlMessage, QuoteReply. 仅供 Java 使用

open fun __forEach for Java__(block: (Message) -> Unit): Unit

__forEachContent for Java__

遍历每一个有内容的消息, 即 At, AtAll, PlainText, Image, Face, XmlMessage, QuoteReply. 仅供 Java 使用

open fun __forEachContent for Java__(block: (Message) -> Unit): Unit

contains

open operator fun contains(sub: String): Boolean

get

获取第一个类型为 keyMessage 实例

open operator fun <M : Message> get(key: Key<M>): M

get2

open fun <M : Message> get2(key: Key<M>): M

getOrNull

获取第一个类型为 keyMessage 实例, 找不到则返回 null

open fun <M : Message> getOrNull(key: Key<M>): M?

getOrNull2

open fun <M : Message> getOrNull2(key: Key<M>): M?

Extension Properties

bot

消息内部 id. 仅从服务器接收的消息才可以获取

val MessageChain.bot: Bot

id

消息 id. 仅从服务器接收的消息才可以获取

val MessageChain.id: Int

internalId

消息内部 id. 仅从服务器接收的消息才可以获取

val MessageChain.internalId: Int

source

获取这条消息源 仅从服务器接收的消息才可以获取消息源

val MessageChain.source: MessageSource

time

消息时间. 仅从服务器接收的消息才可以获取

val MessageChain.time: Int

Extension Functions

allContent

如果每一个 消息内容 都满足 block, 返回 true

fun MessageChain.allContent(block: (MessageContent) -> Boolean): Boolean

any

获取第一个 M 类型的 Message 实例

fun <M : Message> MessageChain.any(key: Key<M>): Boolean

anyIsInstance

获取第一个 M 类型的 Message 实例

fun <M : Message> MessageChain.anyIsInstance(): Boolean

asMessageChain

fun MessageChain.asMessageChain(): MessageChain

first

获取第一个 M 类型的 Message 实例

fun <M : Message> MessageChain.first(key: Key<M>): M

firstIsInstance

获取第一个 M 类型的 Message 实例

fun <M : Message> MessageChain.firstIsInstance(): M

firstIsInstanceOrNull

获取第一个 M 类型的 Message 实例

fun <M : Message?> MessageChain.firstIsInstanceOrNull(): M?

firstOrNull

获取第一个 M 类型的 Message 实例

fun <M : Message> MessageChain.firstOrNull(key: Key<M>): M?

flatten

fun MessageChain.flatten(): Sequence<SingleMessage>

forEachContent

遍历每一个 消息内容

fun MessageChain.forEachContent(block: (MessageContent) -> Unit): Unit

foreachContent

fun MessageChain.foreachContent(block: (MessageContent) -> Unit): Unit

getValue

提供一个类型的值的委托. 若不存在则会抛出异常 NoSuchElementException

operator fun <T : Message> MessageChain.getValue(thisRef: Any?, property: KProperty<*>): T

isContentEmpty

判断消息内容是否为空.

fun Message.isContentEmpty(): Boolean

isContentNotEmpty

fun Message.isContentNotEmpty(): Boolean

isNotPlain

fun Message.isNotPlain(): Boolean

isNotPlain2

fun Message.isNotPlain2(): Boolean

isPlain

fun Message.isPlain(): Boolean

isPlain2

fun Message.isPlain2(): Boolean

noneContent

如果每一个 消息内容 都不满足 block, 返回 true

fun MessageChain.noneContent(block: (MessageContent) -> Boolean): Boolean

orElse

提供一个类型的 Message 的委托, 若不存在这个类型的 Message 则委托会提供 null

fun <T : Message?> MessageChain.orElse(lazyDefault: () -> T): OrNullDelegate<T>

orNull

提供一个类型的 Message 的委托, 若不存在这个类型的 Message 则委托会提供 null

fun <T : Message> MessageChain.orNull(): OrNullDelegate<T?>

quote

引用这条消息

fun MessageChain.quote(): QuoteReply

recall

撤回这条消息. 可撤回自己 2 分钟内发出的消息, 和任意时间的群成员的消息.

suspend fun MessageChain.recall(): Unit

recallIn

在一段时间后撤回这条消息. 可撤回自己 2 分钟内发出的消息, 和任意时间的群成员的消息.

fun MessageChain.recallIn(millis: Long, coroutineContext: CoroutineContext = EmptyCoroutineContext): Job

repeat

fun Message.repeat(count: Int): MessageChain

repeat2

fun Message.repeat2(count: Int): MessageChain

sendTo

this 发送给指定联系人

suspend fun <C : Contact> MessageChain.sendTo(contact: C): MessageReceipt<C>suspend fun <C : Contact> Message.sendTo(contact: C): MessageReceipt<C>

times

operator fun Message.times(count: Int): MessageChain

toForwardMessage

转换为 ForwardMessage

fun Message.toForwardMessage(sender: User, time: Int = currentTimeSeconds.toInt(), displayStrategy: DisplayStrategy = DisplayStrategy): ForwardMessage
fun Message.toForwardMessage(senderId: Long, senderName: String, time: Int = currentTimeSeconds.toInt(), displayStrategy: DisplayStrategy = DisplayStrategy): ForwardMessage

Inheritors

EmptyMessageChain

不含任何元素的 MessageChain.

object EmptyMessageChain : MessageChain, Iterator<SingleMessage>

NullMessageChain

Null 的 MessageChain. 它不包含任何元素, 也没有创建任何 list.

object NullMessageChain : MessageChain