Package-level declarations

Types

Link copied to clipboard
abstract class AbstractMessageKey<out M : SingleMessage>(val safeCast: (SingleMessage) -> M?) : MessageKey<M>

独立的 MessageKey 的实现. '独立' 即 final, 不支持多态类型. 适用于作为最顶层的 MessageKey, 如 MessageSource.

Link copied to clipboard
abstract class AbstractPolymorphicMessageKey<out B : SingleMessage, out M : B>(baseKey: MessageKey<B>, safeCast: (SingleMessage) -> M?) : AbstractMessageKey<M> , MessageKey<M>

多态 MessageKey.

Link copied to clipboard
Link copied to clipboard
@Serializable
data class At(val target: Long) : MessageContent, CodableMessage

At 一个群成员. 只能发送给一个群.

Link copied to clipboard
@Serializable
object AtAll : MessageContent, CodableMessage

"@全体成员".

Link copied to clipboard

语音消息.

Link copied to clipboard

语音编码方式.

Link copied to clipboard
class CombinedMessage constructor(val element: Message, val tail: Message, val hasConstrainSingle: Boolean) : AbstractMessageChain, List<SingleMessage>

树状消息链的一个节点. element 为当前元素, tail 为下一个元素.

Link copied to clipboard

约束一个 MessageChain 中只存在这一种类型的元素. 新元素将会替换旧元素, 保持原顺序.

Link copied to clipboard

自定义消息

Link copied to clipboard

自定义消息元数据.

Link copied to clipboard
@Serializable
data class Dice(val value: Int) : MarketFace, CodableMessage

骰子.

Link copied to clipboard
@Serializable
data class Face(val id: Int) : MessageContent, CodableMessage

QQ 自带表情

Link copied to clipboard

闪照. 闪照的内容取决于 image 代表的图片.

Link copied to clipboard
@Serializable
data class ForwardMessage(val preview: List<String>, val title: String, val brief: String, val source: String, val summary: String, val nodeList: List<ForwardMessage.Node>) : MessageContent, ConstrainSingle

合并转发消息

Link copied to clipboard

转发消息 DSL 构建器.

Link copied to clipboard

标记转发消息 DSL

Link copied to clipboard
Link copied to clipboard

自定义表情 (收藏的表情) 和普通图片.

Link copied to clipboard
@Serializable
enum ImageType : Enum<ImageType>
Link copied to clipboard

内部图片协议实现

Link copied to clipboard
@Serializable
data class LightApp(val content: String) : RichMessage, CodableMessage

小程序.

Link copied to clipboard
Link copied to clipboard

消息链, List<SingleMessage>, 即 单个消息元素 的有序集合.

Link copied to clipboard

带内容的消息.

Link copied to clipboard
interface MessageKey<out M : SingleMessage>

类型 Key. 由伴生对象实现, 表示一个 Message 对象的类型.

Link copied to clipboard

消息元数据, 即不含内容的元素.

Link copied to clipboard
Link copied to clipboard

表示聊天中的一条消息的定位信息, 即消息源.

Link copied to clipboard

MessageSource 复制修改器. 不会修改原 MessageSource, 而是会创建一个新的 MessageSource.

Link copied to clipboard

离线消息源构建器.

Link copied to clipboard

消息来源类型

Link copied to clipboard
Link copied to clipboard
@Serializable
data class MusicShare(val kind: MusicKind, val title: String, val summary: String, val jumpUrl: String, val pictureUrl: String, val musicUrl: String, val brief: String) : MessageContent, ConstrainSingle, CodableMessage

QQ 互联通道音乐分享.

Link copied to clipboard

离线语音消息.

Link copied to clipboard

一条在本地构建的, 或其他不保证指向一条服务器上存在的消息的消息源.

Link copied to clipboard

在线语音消息, 即从消息事件中接收到的语音消息.

Link copied to clipboard

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

Link copied to clipboard
value class OrNullDelegate<out R>

可空的委托

Link copied to clipboard
@Serializable
data class PlainText(val content: String) : MessageContent, CodableMessage

纯文本.

Link copied to clipboard
@Serializable
data class PokeMessage @MiraiInternalApi constructor(val name: String, val pokeType: Int, val id: Int) : HummerMessage, CodableMessage

戳一戳. 可以发送给好友或群.

Link copied to clipboard
@Serializable
data class QuoteReply(val source: MessageSource) : Message, MessageMetadata, ConstrainSingle

引用回复. QuoteReply 被作为 MessageMetadata, 因为它不包含实际的消息内容.

Link copied to clipboard
@Serializable
data class RawForwardMessage(val nodeList: List<ForwardMessage.Node>)

未通过 DisplayStrategy 渲染的合并转发消息. RawForwardMessage 仅作为一个中间件, 用于 ForwardMessageBuilder.

Link copied to clipboard

XML, JSON 消息等富文本消息.

Link copied to clipboard
Link copied to clipboard

服务消息, 可以是 JSON 消息或 XML 消息.

Link copied to clipboard
Link copied to clipboard
@Serializable
class SimpleServiceMessage(val serviceId: Int, val content: String) : ServiceMessage

服务消息, 可以是 JSON 消息或 XML 消息.

Link copied to clipboard

单个消息元素. 与之相对的是 MessageChain, 是多个 SingleMessage 的集合.

Link copied to clipboard

mirai 尚未支持的消息类型.

Link copied to clipboard
@Serializable
data class VipFace @MiraiInternalApi constructor(val kind: VipFace.Kind, val count: Int) : HummerMessage, CodableMessage

VIP 表情.

Functions

Link copied to clipboard

this 中存在 M 的实例时返回 true.

Link copied to clipboard
inline fun At(user: UserOrBot): At

构造 At

Link copied to clipboard
inline fun Member.at(): At

At 这个成员

Link copied to clipboard
inline fun buildForwardMessage(context: Contact, displayStrategy: ForwardMessage.DisplayStrategy = DisplayStrategy, block: ForwardMessageBuilder.() -> Unit): ForwardMessage

构造一条 ForwardMessage

Link copied to clipboard
inline fun MessageEvent.buildForwardMessage(context: Contact = this.subject, displayStrategy: ForwardMessage.DisplayStrategy = DisplayStrategy, block: ForwardMessageBuilder.() -> Unit): ForwardMessage

使用 DSL 构建一个 ForwardMessage.

Link copied to clipboard

构建一个 MessageChain. 用法查看 MessageChainBuilder.

inline fun buildMessageChain(initialSize: Int, block: MessageChainBuilder.() -> Unit): MessageChain

使用特定的容器大小构建一个 MessageChain. 用法查看 MessageChainBuilder.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

获取 Sequence<MessageContent> 相当于 this.asSequence().filterIsInstance<MessageContent>()

Link copied to clipboard

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

Link copied to clipboard

返回一个不含任何元素的 MessageChain.

Link copied to clipboard
fun FileMessage(id: String, internalId: Int, name: String, size: Long): FileMessage
Link copied to clipboard

获取第一个 M 实例. 在不存在时返回 null.

Link copied to clipboard

获取第一个 M 实例. 在不存在时抛出 NoSuchElementException.

Link copied to clipboard

获取第一个 M 实例. 在不存在时返回 null.

Link copied to clipboard
inline fun Image.flash(): FlashImage

将普通图片转换为闪照.

Link copied to clipboard
inline fun FlashImage(imageId: String): FlashImage

将普通图片转换为闪照.

Link copied to clipboard
inline fun <M : SingleMessage> MessageChain.getOrFail(key: MessageKey<M>, crossinline lazyMessage: (key: MessageKey<M>) -> String = { key.toString() }): M

获取第一个类型为 keyMessage 实例, 在找不到此类型的元素时抛出 NoSuchElementException

Link copied to clipboard
inline operator fun <T : SingleMessage> MessageChain.getValue(thisRef: Any?, property: KProperty<*>): T

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

Link copied to clipboard
fun Image(imageId: String): Image

通过 Image.imageId 构造一个 Image 以便发送.

inline fun Image(imageId: String, builderAction: Image.Builder.() -> Unit = {}): Image

使用 Image.Builder 构建一个 Image.

Link copied to clipboard

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

Link copied to clipboard

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

Link copied to clipboard

尝试 MessageKey.safeCast, 成功时返回 true

Link copied to clipboard
@JvmName(name = "newChain")
inline fun messageChainOf(vararg messages: Message): MessageChain

返回一个包含 messages 所有元素的消息链, 保留顺序.

Link copied to clipboard

获取 Sequence<MessageMetadata> 相当于 this.asSequence().filterIsInstance<MessageMetadata>()

Link copied to clipboard
inline fun OfflineAudio(onlineAudio: OnlineAudio): OfflineAudio

使用 OnlineAudio 的信息构造 OfflineAudio.

inline fun OfflineAudio(filename: String, fileMd5: ByteArray, fileSize: Long, codec: AudioCodec, extraData: ByteArray?): OfflineAudio

构造 OfflineAudio. 有关参数的含义, 参考 Audio.

Link copied to clipboard
inline fun <T : R, R : SingleMessage?> MessageChain.orElse(lazyDefault: () -> R): OrNullDelegate<R>

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

Link copied to clipboard

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

Link copied to clipboard
suspend operator fun Message.plus(another: Flow<Message>): MessageChain

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

Link copied to clipboard
inline suspend fun QuoteReply.recallSource()

撤回引用的源消息

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

序列化这个消息

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")
inline fun Iterable<Message>.toMessageChain(): MessageChain
@JvmName(name = "newChain")
inline fun Iterator<Message>.toMessageChain(): MessageChain
@JvmName(name = "newChain")
suspend fun Flow<Message>.toMessageChain(): MessageChain

扁平化 this 并创建一个 MessageChain.

@JvmName(name = "newChain")
fun Message.toMessageChain(): MessageChain
fun <Error class: unknown class><Message>.toMessageChain(): MessageChain

扁平化 this 并创建一个 MessageChain.

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

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

Link copied to clipboard
Link copied to clipboard

将 2.7 新增的 Audio 转为旧版本的 Voice, 以兼容某些情况.

Link copied to clipboard

Properties

Link copied to clipboard

消息内部 ids.

获取此消息源的相关 Bot.

Link copied to clipboard

获取此消息源的相关 Bot.

Link copied to clipboard
Link copied to clipboard

消息 ids.

Link copied to clipboard

消息内部 ids.

Link copied to clipboard

获取语音长度秒数, 作为 Duration.

Link copied to clipboard

获取这条消息的 消息源.

Link copied to clipboard

获取这条消息的 消息源.

Link copied to clipboard

消息时间.

Link copied to clipboard