@SinceMirai("0.33.0") sealed class OnlineMessageSource : MessageSource
在线消息的 MessageSource. 拥有对象化的 sender, target, 也可以直接 recall 和 quote
当机器人 主动发出消息, 将会得到一个 消息回执. 此回执的 消息源 即为一个 外向消息源, 代表着刚刚发出的那条消息的来源.
当机器人接收一条消息 ContactMessage, 这条消息包含一个 内向消息源, 代表着接收到的这条消息的来源.
此类的所有子类都有协议模块实现. 不要自行实现它们, 否则将无法发送
See Also
Incoming |
接收到的一条消息的 MessageSource sealed class Incoming : OnlineMessageSource |
Key |
companion object Key : Key<OnlineMessageSource> |
Outgoing |
由 机器人主动发送消息 产生的 MessageSource, 可通过 MessageReceipt 获得. sealed class Outgoing : OnlineMessageSource |
sender |
消息发送人. 可能为 机器人 或 好友 或 群员. 即类型必定为 Bot, QQ 或 Member abstract val sender: ContactOrBot |
sender2 |
open val |
subject |
消息主体. 群消息时为 Group. 好友消息时为 QQ, 临时消息为 Member 不论是机器人接收的消息还是发送的消息, 此属性都指向机器人能进行回复的目标. abstract val subject: Contact |
target |
消息发送目标. 可能为 机器人 或 好友 或 群. 即类型必定为 Bot, QQ 或 Group abstract val target: ContactOrBot |
target2 |
open val |
typeName |
此 Key 指代的 Message 类型名. 一般为 val typeName: String |
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. |
isPlain |
fun Message.isPlain(): Boolean |
isPlain2 |
fun Message. |
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. |
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 |