mirai-core / net.mamoe.mirai.message.data / CustomMessageMetadata

CustomMessageMetadata

@SinceMirai("0.38.0") abstract class CustomMessageMetadata : CustomMessage, MessageMetadata

自定义消息元数据.

实现方法:

  1. 实现一个类继承 CustomMessageMetadata, 添加 @Serializable (来自 kotlinx.serialization)
  2. 添加伴生对象, 继承 CustomMessage.ProtoBufSerializerFactoryCustomMessage.JsonSerializerFactory, 或 CustomMessage.Factory
  3. 在需要解析消息前调用一次伴生对象以注册

See Also

CustomMessage

ConstrainSingle

Types

Key

companion object Key : Key<CustomMessageMetadata>

Constructors

<init>

自定义消息元数据.

CustomMessageMetadata()

Functions

contentToString

转为最接近官方格式的字符串. 如 At(member) + "test" 将转为 "@群名片 test".

fun contentToString(): String

customToString

open fun customToString(): ByteArray

toString

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

fun toString(): String

Companion Object Properties

typeName

Key 指代的 Message 类型名. 一般为 class.simpleName, 如 "QuoteReply", "PlainText"

val typeName: String

Extension Functions

flatten

扁平化 Message

fun Message.flatten(): Sequence<SingleMessage>

isContentEmpty

判断消息内容是否为空.

fun Message.isContentEmpty(): Boolean

isContentNotEmpty

fun Message.isContentNotEmpty(): Boolean

isNotPlain

fun Message.isNotPlain(): Boolean

isNotPlain2

fun Message.isNotPlain2(): Boolean

isPlain

fun Message.isPlain(): Boolean

isPlain2

fun Message.isPlain2(): Boolean

repeat

fun Message.repeat(count: Int): MessageChain

repeat2

fun Message.repeat2(count: Int): MessageChain

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