From 2630a937525b6172d6896aaa9e6880a7e3a379bf Mon Sep 17 00:00:00 2001 From: PeratX <1215714524@qq.com> Date: Wed, 5 Aug 2020 13:24:21 +0800 Subject: [PATCH] CQCode: support sending custom xml and json message --- Docs.md | 2 ++ src/main/kotlin/org/itxtech/mirainative/MiraiNative.kt | 10 ++++------ .../itxtech/mirainative/message/ChainCodeConverter.kt | 6 ++++++ 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/Docs.md b/Docs.md index c6fe7b3..7fe3063 100644 --- a/Docs.md +++ b/Docs.md @@ -31,6 +31,8 @@ - 发送抖一抖 `[CQ:shake]` - 发送各类戳一戳 `[CQ:poke,id=xxx,type=xxx]`,ID和Type见 `mirai` 的 `HummerMessage.kt`,必须在该文件中定义的id和type才能发送 - 接收`VipFace` `[CQ:vipface,id=xxx,name=xxx,count=xxx]` + - 发送 `Xml` 消息 `[CQ:xml,data=xxxx]` + - 发送 `Json` 消息 `[CQ:json,data=xxxx]` ## 酷Q API diff --git a/src/main/kotlin/org/itxtech/mirainative/MiraiNative.kt b/src/main/kotlin/org/itxtech/mirainative/MiraiNative.kt index 42dd3e6..83c8a8e 100644 --- a/src/main/kotlin/org/itxtech/mirainative/MiraiNative.kt +++ b/src/main/kotlin/org/itxtech/mirainative/MiraiNative.kt @@ -52,7 +52,7 @@ object MiraiNative : PluginBase() { var botOnline = false val bot: Bot by lazy { Bot.botInstances.first() } - fun ByteArray.checksum() = BigInteger(1, MessageDigest.getInstance("MD5").digest(this)) + private fun ByteArray.checksum() = BigInteger(1, MessageDigest.getInstance("MD5").digest(this)) private fun checkNativeLibs() { logger.info("正在加载 ${dll.absolutePath}") @@ -79,11 +79,9 @@ object MiraiNative : PluginBase() { val cqp = FileOutputStream(dll) getResources("CQP.dll")?.copyTo(cqp) cqp.close() - } else { - if (getResources("CQP.dll")!!.readBytes().checksum() != dll.readBytes().checksum()) { - logger.warning("${dll.absolutePath} 与 Mirai Native 内置的 CQP.dll 的校验和不同。") - logger.warning("如运行时出现问题,请尝试删除 ${dll.absolutePath} 并重启 Mirai。") - } + } else if (getResources("CQP.dll")!!.readBytes().checksum() != dll.readBytes().checksum()) { + logger.warning("${dll.absolutePath} 与 Mirai Native 内置的 CQP.dll 的校验和不同。") + logger.warning("如运行时出现问题,请尝试删除 ${dll.absolutePath} 并重启 Mirai。") } initDataDir() diff --git a/src/main/kotlin/org/itxtech/mirainative/message/ChainCodeConverter.kt b/src/main/kotlin/org/itxtech/mirainative/message/ChainCodeConverter.kt index a7a0889..58382ab 100644 --- a/src/main/kotlin/org/itxtech/mirainative/message/ChainCodeConverter.kt +++ b/src/main/kotlin/org/itxtech/mirainative/message/ChainCodeConverter.kt @@ -155,6 +155,12 @@ object ChainCodeConverter { } return MSG_EMPTY } + "xml" -> { + return XmlMessage(args["data"]!!) + } + "json" -> { + return JsonMessage(args["data"]!!) + } else -> { MiraiNative.logger.debug("不支持的 CQ码:${parts[0]}") }