From c6a2229fc2656f593dfb84ba267d709c9a8640c1 Mon Sep 17 00:00:00 2001 From: ryoii Date: Fri, 14 Feb 2020 21:25:34 +0800 Subject: [PATCH] http-api support AtAll --- mirai-api-http/README_CH.md | 15 ++++++++++++++- .../mirai/api/http/data/common/MessageDTO.kt | 5 +++++ .../kotlin/net/mamoe/mirai/api/http/util/Json.kt | 1 + 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/mirai-api-http/README_CH.md b/mirai-api-http/README_CH.md index 550b63e75..0216f73f6 100644 --- a/mirai-api-http/README_CH.md +++ b/mirai-api-http/README_CH.md @@ -343,9 +343,10 @@ Content-Type:multipart/form-data #### 消息是构成消息链的基本对象,目前支持的消息类型有 + [x] At,@消息 ++ [x] AtAll,@全体成员 + [x] Face,表情消息 + [x] Plain,文字消息 -+ [ ] Image,图片消息 ++ [x] Image,图片消息 + [ ] Xml,Xml卡片消息 + [ ] 敬请期待 @@ -364,6 +365,18 @@ Content-Type:multipart/form-data | target | Long | 群员QQ号 | | display | String | @时显示的文本如:"@Mirai" | +#### AtAll + +```json5 +{ + "type": "AtAll" +} +``` + +| 名字 | 类型 | 说明 | +| ------- | ------ | ------------------------- | +| - | - | - | + #### Face ```json5 diff --git a/mirai-api-http/src/main/kotlin/net/mamoe/mirai/api/http/data/common/MessageDTO.kt b/mirai-api-http/src/main/kotlin/net/mamoe/mirai/api/http/data/common/MessageDTO.kt index b928c9696..ccd6d2440 100644 --- a/mirai-api-http/src/main/kotlin/net/mamoe/mirai/api/http/data/common/MessageDTO.kt +++ b/mirai-api-http/src/main/kotlin/net/mamoe/mirai/api/http/data/common/MessageDTO.kt @@ -39,6 +39,9 @@ data class UnKnownMessagePacketDTO(val msg: String) : MessagePacketDTO() @SerialName("At") data class AtDTO(val target: Long, val display: String) : MessageDTO() @Serializable +@SerialName("AtAll") +data class AtAllDTO(val target: Long = 0) : MessageDTO() // target为保留字段 +@Serializable @SerialName("Face") data class FaceDTO(val faceId: Int) : MessageDTO() @Serializable @@ -83,6 +86,7 @@ fun MessageChainDTO.toMessageChain() = @UseExperimental(ExperimentalUnsignedTypes::class) fun Message.toDTO() = when (this) { is At -> AtDTO(target, display) + is AtAll -> AtAllDTO(0L) is Face -> FaceDTO(id.value.toInt()) is PlainText -> PlainDTO(stringValue) is Image -> ImageDTO(imageId) @@ -93,6 +97,7 @@ fun Message.toDTO() = when (this) { @UseExperimental(ExperimentalUnsignedTypes::class, MiraiInternalAPI::class) fun MessageDTO.toMessage() = when (this) { is AtDTO -> At(target, display) + is AtAllDTO -> AtAll is FaceDTO -> Face(FaceId(faceId.toUByte())) is PlainDTO -> PlainText(text) is ImageDTO -> Image(imageId) diff --git a/mirai-api-http/src/main/kotlin/net/mamoe/mirai/api/http/util/Json.kt b/mirai-api-http/src/main/kotlin/net/mamoe/mirai/api/http/util/Json.kt index b12c2ce6a..8b37ebd80 100644 --- a/mirai-api-http/src/main/kotlin/net/mamoe/mirai/api/http/util/Json.kt +++ b/mirai-api-http/src/main/kotlin/net/mamoe/mirai/api/http/util/Json.kt @@ -51,6 +51,7 @@ object MiraiJson { } polymorphic(MessageDTO.serializer()) { AtDTO::class with AtDTO.serializer() + AtAllDTO::class with AtAllDTO.serializer() FaceDTO::class with FaceDTO.serializer() PlainDTO::class with PlainDTO.serializer() ImageDTO::class with ImageDTO.serializer()