Package net.mamoe.mirai.message.data

Types

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

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

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

多态 MessageKey.

AbstractServiceMessage
Link copied to clipboard
abstract class AbstractServiceMessage : ServiceMessage
At
Link copied to clipboard
data class At(target: Long) : MessageContent, CodableMessage

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

AtAll
Link copied to clipboard
object AtAll : MessageContent, CodableMessage

"@全体成员".

Audio
Link copied to clipboard
interface Audio : MessageContent

语音消息.

AudioCodec
Link copied to clipboard
enum AudioCodec : Enum<AudioCodec>

语音编码方式.

ConstrainSingle
Link copied to clipboard
interface ConstrainSingle : SingleMessage

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

CustomMessage
Link copied to clipboard
sealed class CustomMessage : SingleMessage

自定义消息

CustomMessageMetadata
Link copied to clipboard
abstract class CustomMessageMetadata : CustomMessage, MessageMetadata

自定义消息元数据.

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

骰子.

EmptyMessageChain
Link copied to clipboard
object EmptyMessageChain : MessageChain, List<SingleMessage>

不含任何元素的 MessageChain.

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

QQ 自带表情

FlashImage
Link copied to clipboard
data class FlashImage(image: Image) : MessageContent, HummerMessage, CodableMessage, ConstrainSingle

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

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

合并转发消息

ForwardMessageBuilder
Link copied to clipboard
class ForwardMessageBuilder : MutableList<ForwardMessage.INode>

转发消息 DSL 构建器.

ForwardMessageDsl
Link copied to clipboard
annotation class ForwardMessageDsl

标记转发消息 DSL

HummerMessage
Link copied to clipboard

一些特殊的消息

Image
Link copied to clipboard
interface Image : Message, MessageContent, CodableMessage

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

ImageType
Link copied to clipboard
enum ImageType : Enum<ImageType>
InternalImageProtocol
Link copied to clipboard
interface InternalImageProtocol

内部图片协议实现

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

小程序.

MarketFace
Link copied to clipboard
interface MarketFace : HummerMessage

商城表情

MessageChain
Link copied to clipboard

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

MessageChainBuilder
Link copied to clipboard
class MessageChainBuilder : MutableList<SingleMessage> , Appendable

MessageChain 构建器.

MessageContent
Link copied to clipboard
interface MessageContent : SingleMessage

带内容的消息.

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

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

MessageMetadata
Link copied to clipboard
interface MessageMetadata : SingleMessage

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

MessageOriginKind
Link copied to clipboard
enum MessageOriginKind : Enum<MessageOriginKind>
MessageSource
Link copied to clipboard
sealed class MessageSource : Message, MessageMetadata, ConstrainSingle

消息源. 消息源存在于 MessageChain 中, 用于表示这个消息的来源, 也可以用来分辨 MessageChain.

MessageSourceAmender
Link copied to clipboard
class MessageSourceAmender(origin: MessageSource) : MessageSourceBuilder

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

MessageSourceBuilder
Link copied to clipboard
open class MessageSourceBuilder

离线消息源构建器.

MessageSourceKind
Link copied to clipboard
enum MessageSourceKind : Enum<MessageSourceKind>

消息来源类型

MusicKind
Link copied to clipboard
enum MusicKind : Enum<MusicKind>
MusicShare
Link copied to clipboard
data class MusicShare(kind: MusicKind, title: String, summary: String, jumpUrl: String, pictureUrl: String, musicUrl: String, brief: String) : MessageContent, ConstrainSingle, CodableMessage

QQ 互联通道音乐分享.

OfflineAudio
Link copied to clipboard
interface OfflineAudio : Audio

离线语音消息.

OfflineMessageSource
Link copied to clipboard
abstract class OfflineMessageSource : MessageSource

由一条消息中的 QuoteReply 得到的, 或通过 MessageSourceBuilder 手动构建的 MessageSource.

OnlineAudio
Link copied to clipboard
interface OnlineAudio : Audio

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

OnlineMessageSource
Link copied to clipboard
sealed class OnlineMessageSource : MessageSource

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

OrNullDelegate
Link copied to clipboard
value class OrNullDelegate<out R>

可空的委托

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

纯文本.

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

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

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

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

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

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

RichMessage
Link copied to clipboard
interface RichMessage : MessageContent, ConstrainSingle

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

ServiceMessage
Link copied to clipboard
interface ServiceMessage : RichMessage, CodableMessage

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

ShowImageFlag
Link copied to clipboard

MessageChain 中包含秀图时的标记.

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

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

SingleMessage
Link copied to clipboard
interface SingleMessage : Message

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

UnsupportedMessage
Link copied to clipboard
interface UnsupportedMessage : MessageContent

mirai 尚未支持的消息类型.

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

VIP 表情.

Voice
Link copied to clipboard
open class Voice @MiraiInternalApi constructor(fileName: String, md5: ByteArray, fileSize: Long, _codec: Int, _url: String) : PttMessage

已弃用的旧版本语音消息.

XmlMessageDsl
Link copied to clipboard

Functions

anyIsInstance
Link copied to clipboard
inline fun <M : SingleMessage> MessageChain.anyIsInstance(): Boolean

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

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

At 这个成员

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

构造一条 ForwardMessage

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

使用 DSL 构建一个 ForwardMessage.

buildMessageChain
Link copied to clipboard
inline fun buildMessageChain(block: MessageChainBuilder.() -> Unit): MessageChain

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

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

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

buildMessageSource
Link copied to clipboard
inline fun Bot.buildMessageSource(kind: MessageSourceKind, block: MessageSourceBuilder.() -> Unit): OfflineMessageSource
inline fun IMirai.buildMessageSource(botId: Long, kind: MessageSourceKind, block: MessageSourceBuilder.() -> Unit): OfflineMessageSource

使用 DSL 构建一个 OfflineMessageSource. 用法参考 MessageSourceBuilder.

contentsList
Link copied to clipboard
fun MessageChain.contentsList(): List<MessageContent>
contentsSequence
Link copied to clipboard
fun MessageChain.contentsSequence(): Sequence<MessageContent>

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

copyAmend
Link copied to clipboard
fun MessageSource.copyAmend(block: MessageSourceAmender.() -> Unit): OfflineMessageSource

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

FileMessage
Link copied to clipboard
inline fun FileMessage(id: String, internalId: Int, name: String, size: Long): FileMessage
findIsInstance
Link copied to clipboard
inline fun <M : SingleMessage?> MessageChain.findIsInstance(): M?

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

firstIsInstance
Link copied to clipboard
inline fun <M : SingleMessage> MessageChain.firstIsInstance(): M

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

firstIsInstanceOrNull
Link copied to clipboard
inline fun <M : SingleMessage?> MessageChain.firstIsInstanceOrNull(): M?

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

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

将普通图片转换为闪照.

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

将普通图片转换为闪照.

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

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

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

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

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

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

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

使用 Image.Builder 构建一个 Image.

isContentBlank
Link copied to clipboard
fun Message.isContentBlank(): Boolean

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

isContentEmpty
Link copied to clipboard
fun Message.isContentEmpty(): Boolean

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

isInstance
Link copied to clipboard
fun MessageKey<*>.isInstance(message: SingleMessage): Boolean

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

messageChainOf
Link copied to clipboard
inline fun messageChainOf(vararg messages: Message): MessageChain

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

metadataList
Link copied to clipboard
fun MessageChain.metadataList(): List<MessageMetadata>
metadataSequence
Link copied to clipboard
fun MessageChain.metadataSequence(): Sequence<MessageMetadata>

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

OfflineAudio
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.

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

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

orNull
Link copied to clipboard
inline fun <T : SingleMessage> MessageChain.orNull(): OrNullDelegate<T?>

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

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

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

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

撤回引用的源消息

repeat
Link copied to clipboard
inline fun Message.repeat(count: Int): MessageChain

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

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

this 发送给指定联系人

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

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

toByteArray
Link copied to clipboard
fun <T : CustomMessage> T.toByteArray(): ByteArray

序列化这个消息

toForwardMessage
Link copied to clipboard
fun Iterable<MessageEvent>.toForwardMessage(displayStrategy: ForwardMessage.DisplayStrategy = DisplayStrategy): ForwardMessage
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

toMessageChain
Link copied to clipboard
fun <ERROR CLASS><Message>.toMessageChain(): MessageChain
inline fun Array<out Message>.toMessageChain(): MessageChain
inline fun Iterable<Message>.toMessageChain(): MessageChain
inline fun Iterator<Message>.toMessageChain(): MessageChain
fun Sequence<Message>.toMessageChain(): MessageChain
suspend fun Flow<Message>.toMessageChain(): MessageChain

扁平化 this 并创建一个 MessageChain.

fun Message.toMessageChain(): MessageChain
toOffline
Link copied to clipboard
fun OnlineMessageSource.toOffline(): OfflineMessageSource

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

toPlainText
Link copied to clipboard
inline fun String.toPlainText(): PlainText

构造 PlainText

toVoice
Link copied to clipboard
inline fun Audio.toVoice(): Voice

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

UnsupportedMessage
Link copied to clipboard
inline fun UnsupportedMessage(struct: ByteArray): UnsupportedMessage

Properties

bot
Link copied to clipboard
val MessageChain.bot: Bot

消息内部 ids.

bot
Link copied to clipboard
val MessageSource.bot: Bot
botOrNull
Link copied to clipboard
val MessageSource.botOrNull: Bot?
content
Link copied to clipboard
val Message.content: String
ids
Link copied to clipboard
val MessageChain.ids: IntArray

消息 ids.

internalId
Link copied to clipboard
val MessageChain.internalId: IntArray

消息内部 ids.

kind
Link copied to clipboard
val MessageSource.kind: MessageSourceKind
kind
Link copied to clipboard
val OnlineMessageSource.kind: MessageSourceKind
md5
Link copied to clipboard
val Image.md5: ByteArray
source
Link copied to clipboard
val MessageChain.source: MessageSource

获取这条消息的 消息源.

sourceOrNull
Link copied to clipboard
val MessageChain.sourceOrNull: MessageSource?

获取这条消息的 消息源.

time
Link copied to clipboard
val MessageChain.time: Int

消息时间.

topmostKey
Link copied to clipboard
val <A : SingleMessage> MessageKey<A>.topmostKey: MessageKey<*>

获取最上层 MessageKey.