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

OnlineMessageSource

@SinceMirai("0.33.0") sealed class OnlineMessageSource : MessageSource

在线消息的 MessageSource. 拥有对象化的 sender, target, 也可以直接 recallquote

来源

机器人主动发送消息

当机器人 主动发出消息, 将会得到一个 消息回执. 此回执的 消息源 即为一个 外向消息源, 代表着刚刚发出的那条消息的来源.

机器人接受消息

当机器人接收一条消息 ContactMessage, 这条消息包含一个 内向消息源, 代表着接收到的这条消息的来源.

实现

此类的所有子类都有协议模块实现. 不要自行实现它们, 否则将无法发送

See Also

OnlineMessageSource.toOffline

Types

Incoming

接收到的一条消息的 MessageSource

sealed class Incoming : OnlineMessageSource

Key

companion object Key : Key<OnlineMessageSource>

Outgoing

机器人主动发送消息 产生的 MessageSource, 可通过 MessageReceipt 获得.

sealed class Outgoing : OnlineMessageSource

Properties

sender

消息发送人. 可能为 机器人好友群员. 即类型必定为 Bot, QQMember

abstract val sender: ContactOrBot

sender2

open val sender2: Any

subject

消息主体. 群消息时为 Group. 好友消息时为 QQ, 临时消息为 Member 不论是机器人接收的消息还是发送的消息, 此属性都指向机器人能进行回复的目标.

abstract val subject: Contact

target

消息发送目标. 可能为 机器人好友. 即类型必定为 Bot, QQGroup

abstract val target: ContactOrBot

target2

open val target2: Any

Companion Object Properties

typeName

Key 指代的 Message 类型名. 一般为 class.simpleName, 如 "QuoteReply", "PlainText"

val typeName: String

Extension Functions

copyAmend

复制这个消息源, 并以 block 修改

fun MessageSource.copyAmend(block: MessageSourceAmender.() -> Unit): OfflineMessageSource

flatten

扁平化 Message

fun Message.flatten(): Sequence<SingleMessage>

isAboutFriend

判断是否是发送给好友, 或从好友接收的消息的消息源

fun MessageSource.isAboutFriend(): Boolean

isAboutGroup

判断是否是发送给群, 或从群接收的消息的消息源

fun MessageSource.isAboutGroup(): Boolean

isAboutTemp

判断是否是发送给临时会话, 或从临时会话接收的消息的消息源

fun MessageSource.isAboutTemp(): Boolean

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

quote

引用这条消息

fun MessageSource.quote(): QuoteReply

recall

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

suspend fun MessageSource.recall(): Unit

recallIn

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

fun MessageSource.recallIn(timeMillis: Long, coroutineContext: CoroutineContext = EmptyCoroutineContext): Job

repeat

fun Message.repeat(count: Int): MessageChain

repeat2

fun Message.repeat2(count: Int): MessageChain

sendTo

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

toOffline

将在线消息源转换为离线消息源.

fun OnlineMessageSource.toOffline(): OfflineMessageSource