OnlineMessageSource

sealed class OnlineMessageSource : MessageSource

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

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

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

来源

机器人主动发送消息

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

机器人接受消息

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

实现

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

See also

Types

Link copied to clipboard
sealed class Incoming : OnlineMessageSource

接收到的一条消息的 MessageSource

Link copied to clipboard
object Key : AbstractMessageKey<OnlineMessageSource>
Link copied to clipboard
sealed class Outgoing : OnlineMessageSource

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" 将转为 "@群名片 test".

Link copied to clipboard
open fun followedBy(tail: Message): MessageChain

thistail 连接.

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
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
override val botId: Long

所属 Bot.id

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
abstract val isOriginalMessageInitialized: Boolean

originalMessage 已被初始化后返回 true.

Link copied to clipboard
override val key: MessageKey<MessageSource>

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

Link copied to clipboard
abstract val originalMessage: MessageChain

该 source 指代的原消息内容.

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

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

Inheritors

Link copied to clipboard
Link copied to clipboard

Extensions

Link copied to clipboard
val OnlineMessageSource.kind: MessageSourceKind
Link copied to clipboard
@JvmName(name = "toOfflineMessageSource")
fun OnlineMessageSource.toOffline(): OfflineMessageSource

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