Commit 7050d30a authored by Him188's avatar Him188

Add docs

parent 15c50c15
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
* https://github.com/mamoe/mirai/blob/master/LICENSE * https://github.com/mamoe/mirai/blob/master/LICENSE
*/ */
@file: JvmName("MessageUtils") @file:JvmName("MessageUtils")
@file:JvmMultifileClass @file:JvmMultifileClass
@file:Suppress("MemberVisibilityCanBePrivate", "unused") @file:Suppress("MemberVisibilityCanBePrivate", "unused")
...@@ -23,21 +23,39 @@ import kotlin.jvm.JvmOverloads ...@@ -23,21 +23,39 @@ import kotlin.jvm.JvmOverloads
import kotlin.jvm.JvmSynthetic import kotlin.jvm.JvmSynthetic
/** /**
* XML 消息等富文本消息 * XML, JSON 消息等富文本消息
* *
* @see ServiceMessage 子类 [XmlMessage], [JsonMessage], [LongMessage], [ForwardMessage] * **注意**: 富文本消息的 [RichMessage.contentEquals] 和 [RichMessage.toString] 都不稳定. 将来可能在没有任何警告的情况下改变格式.
*
* @see ServiceMessage 服务消息 (XML, JSON)
* @see LightApp 小程序 (JSON) * @see LightApp 小程序 (JSON)
*/ */
// not using sealed class for customized implementations // not using sealed class for customized implementations
@SinceMirai("0.27.0") @SinceMirai("0.27.0")
interface RichMessage : MessageContent { interface RichMessage : MessageContent {
/**
* **注意**: 富文本消息的 [RichMessage.contentEquals] 和 [RichMessage.toString] 都不稳定. 将来可能在没有任何警告的情况下改变格式.
*/
@MiraiExperimentalAPI
override fun contentToString(): String = this.content override fun contentToString(): String = this.content
/**
* 消息内容. 可为 JSON 文本或 XML 文本
*/
val content: String
/**
* 一些模板
* @suppress 此 API 不稳定, 可能在任意时刻被删除
*/
@MiraiExperimentalAPI @MiraiExperimentalAPI
@SinceMirai("0.30.0") @SinceMirai("0.30.0")
companion object Templates : Message.Key<RichMessage> { companion object Templates : Message.Key<RichMessage> {
/**
* @suppress 此 API 不稳定, 可能在任意时刻被删除
*/
@MiraiExperimentalAPI @MiraiExperimentalAPI
@SinceMirai("0.30.0") @SinceMirai("0.30.0")
fun share( fun share(
...@@ -83,14 +101,16 @@ interface RichMessage : MessageContent { ...@@ -83,14 +101,16 @@ interface RichMessage : MessageContent {
override val typeName: String override val typeName: String
get() = "RichMessage" get() = "RichMessage"
} }
val content: String
} }
/** /**
* 小程序, 如音乐分享. * 小程序, 如音乐分享.
* *
* 大部分 JSON 消息为此类型, 另外一部分为 [ServiceMessage]
*
* @param content 一般是 json * @param content 一般是 json
*
* @see ServiceMessage 服务消息
*/ */
@SinceMirai("0.27.0") @SinceMirai("0.27.0")
data class LightApp(override val content: String) : RichMessage { data class LightApp(override val content: String) : RichMessage {
...@@ -102,7 +122,14 @@ data class LightApp(override val content: String) : RichMessage { ...@@ -102,7 +122,14 @@ data class LightApp(override val content: String) : RichMessage {
} }
/** /**
* 服务消息, 如 [XmlMessage]. * 服务消息, 可以是 JSON 消息或 XML 消息.
*
* JSON 消息更多情况下通过 [LightApp] 发送.
*
* @param serviceId 目前未知, XML 一般为 60, JSON 一般为 1
* @param content 消息内容. 可为 JSON 文本或 XML 文本
*
* @see LightApp 小程序类型消息
*/ */
@SinceMirai("0.37.3") @SinceMirai("0.37.3")
open class ServiceMessage(val serviceId: Int, final override val content: String) : RichMessage { open class ServiceMessage(val serviceId: Int, final override val content: String) : RichMessage {
...@@ -190,6 +217,7 @@ commonElem=CommonElem#750141174 { ...@@ -190,6 +217,7 @@ commonElem=CommonElem#750141174 {
/** /**
* 构造一条 XML 消息 * 构造一条 XML 消息
* @suppress 此 API 不稳定
*/ */
@Suppress("DEPRECATION_ERROR") @Suppress("DEPRECATION_ERROR")
@JvmSynthetic @JvmSynthetic
...@@ -198,10 +226,14 @@ commonElem=CommonElem#750141174 { ...@@ -198,10 +226,14 @@ commonElem=CommonElem#750141174 {
inline fun buildXmlMessage(serviceId: Int, block: @XmlMessageDsl XmlMessageBuilder.() -> Unit): ServiceMessage = inline fun buildXmlMessage(serviceId: Int, block: @XmlMessageDsl XmlMessageBuilder.() -> Unit): ServiceMessage =
XmlMessage(serviceId, XmlMessageBuilder().apply(block).text) XmlMessage(serviceId, XmlMessageBuilder().apply(block).text)
@MiraiExperimentalAPI
@Target(CLASS, FUNCTION, TYPE) @Target(CLASS, FUNCTION, TYPE)
@DslMarker @DslMarker
annotation class XmlMessageDsl annotation class XmlMessageDsl
/**
* @suppress 此 API 不稳定
*/
@MiraiExperimentalAPI @MiraiExperimentalAPI
@XmlMessageDsl @XmlMessageDsl
class XmlMessageBuilder( class XmlMessageBuilder(
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment