OnlineMessageSource

从服务器接收的在线消息的 MessageSource.

对比 OfflineMessageSource, OnlineMessageSource 拥有完整的信息:

此消息源一定 "指向" 一条存在于服务器上的消息, 但由于服务器消息可能已经被撤回, 对此消息源执行撤回 仍然可能会失败.

来源

机器人主动发送消息

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

机器人接受消息

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

实现

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

See also

Inheritors

Types

Link copied to clipboard

接收到的一条消息的 MessageSource

Link copied to clipboard
Link copied to clipboard

Functions

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
abstract fun contentToString(): String

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

Link copied to clipboard

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

Link copied to clipboard

thistail 连接.

Link copied to clipboard

当消息内容为空白时返回 true.

Link copied to clipboard

当消息内容为空时返回 true.

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
suspend operator fun Message.plus(another: Flow<Message>): MessageChain

another 按顺序连接到这个消息的尾部.

Link copied to clipboard

引用这条消息.

Link copied to clipboard

Bot 身份撤回该消息源指向的存在于服务器上的消息. 可撤回自己 2 分钟内发出的消息, 和任意时间的群成员的消息.

Link copied to clipboard

在一段时间后撤回这条消息.

Link copied to clipboard

将此消息元素按顺序重复 count 次.

Link copied to clipboard
inline suspend fun <C : Contact> Message.sendTo(contact: C): MessageReceipt<C>

this 发送给指定联系人

Link copied to clipboard
operator fun Message.times(count: Int): MessageChain

将此消息元素按顺序重复 count 次.

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

转换为 ForwardMessage

Link copied to clipboard
@JvmName(name = "newChain")
fun Message.toMessageChain(): MessageChain
Link copied to clipboard
@JvmName(name = "toOfflineMessageSource")
fun OnlineMessageSource.toOffline(): OfflineMessageSource

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

Link copied to clipboard
abstract override fun toString(): String

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

Properties

Link copied to clipboard
abstract val bot: Bot
Link copied to clipboard

获取此消息源的相关 Bot.

Link copied to clipboard
override val botId: Long

所属 Bot.id

Link copied to clipboard

获取此消息源的相关 Bot.

Link copied to clipboard
Link copied to clipboard
abstract val fromId: Long

发送人用户 ID.

Link copied to clipboard
abstract val ids: IntArray

消息 ids (序列号). 在获取失败时 (概率很低) 为空数组.

Link copied to clipboard
abstract val internalIds: IntArray

内部 ids. 仅用于协议模块使用

Link copied to clipboard

originalMessage 已被初始化后返回 true.

Link copied to clipboard

用于判断是否为同一种元素的 MessageKey. 使用多态类型 MessageKey 最上层的 MessageKey.

Link copied to clipboard
abstract val kind: MessageSourceKind

消息种类

Link copied to clipboard

该消息源指向的原消息的内容.

Link copied to clipboard
abstract val sender: ContactOrBot

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

Link copied to clipboard
abstract val subject: Contact

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

Link copied to clipboard
abstract val target: ContactOrBot

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

Link copied to clipboard
abstract val targetId: Long

消息发送目标用户或群号码.

Link copied to clipboard
abstract val time: Int

发送时间时间戳, 单位为秒.