From d59ef2641bcea953570d6557c38a3e08df09b849 Mon Sep 17 00:00:00 2001 From: MrXiaoM Date: Thu, 22 Feb 2024 21:05:25 +0800 Subject: [PATCH] do not toJson if message is primitive --- docs/README.md | 2 ++ .../cn/evole/onebot/sdk/util/json/MessageEventAdapter.java | 3 ++- .../main/java/cn/evole/onebot/sdk/util/json/MsgAdapter.java | 3 ++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/docs/README.md b/docs/README.md index 8b7c5c0a..bb0cf52e 100644 --- a/docs/README.md +++ b/docs/README.md @@ -37,6 +37,8 @@ Overflow 的用途是替换 mirai-core 协议实现,连接 Onebot 标准的实 + [LagrangeDev/Lagrange.Core](https://github.com/LagrangeDev/Lagrange.Core) QQNT 协议库 + [cnlimiter/onebot-mirai](https://github.com/cnlimiter/onebot-mirai) mirai 转 Onebot,相当于可以实现 mirai 接龙 +**额外配置**: Overflow 不支持 CQ 码,请使用`数组格式 (array)`消息。 + 部署完成后,选择一种连接方式进行下一步操作。 ## 连接 diff --git a/onebot/src/main/java/cn/evole/onebot/sdk/util/json/MessageEventAdapter.java b/onebot/src/main/java/cn/evole/onebot/sdk/util/json/MessageEventAdapter.java index a423217c..170f4295 100644 --- a/onebot/src/main/java/cn/evole/onebot/sdk/util/json/MessageEventAdapter.java +++ b/onebot/src/main/java/cn/evole/onebot/sdk/util/json/MessageEventAdapter.java @@ -18,7 +18,8 @@ public MessageEvent deserialize(JsonElement json, Type typeOfT, JsonDeserializat JsonObject obj = json.getAsJsonObject(); String messageType = obj.get("message_type").getAsString(); long userId = obj.get("user_id").getAsLong(); - String message = gson.toJson(obj.get("message")); + JsonElement messageElement = obj.get("message"); + String message = messageElement.isJsonPrimitive() ? messageElement.getAsJsonPrimitive().getAsString() : gson.toJson(messageElement); String rawMessage = obj.get("raw_message").getAsString(); int font = obj.get("font").getAsInt(); switch (messageType) { diff --git a/onebot/src/main/java/cn/evole/onebot/sdk/util/json/MsgAdapter.java b/onebot/src/main/java/cn/evole/onebot/sdk/util/json/MsgAdapter.java index 011adca7..c16278e7 100644 --- a/onebot/src/main/java/cn/evole/onebot/sdk/util/json/MsgAdapter.java +++ b/onebot/src/main/java/cn/evole/onebot/sdk/util/json/MsgAdapter.java @@ -15,7 +15,8 @@ public GetMsgResp deserialize(JsonElement json, Type typeOfT, JsonDeserializatio int realId = obj.get("real_id").getAsInt(); GetMsgResp.Sender sender = gson.fromJson(obj.get("sender"), GetMsgResp.Sender.class); int time = obj.get("time").getAsInt(); - String message = gson.toJson(obj.get("message")); + JsonElement messageElement = obj.get("message"); + String message = messageElement.isJsonPrimitive() ? messageElement.getAsJsonPrimitive().getAsString() : gson.toJson(messageElement); String rawMessage = obj.has("raw_message") ? obj.get("raw_message").getAsString() : ""; long peerId = obj.has("peer_id") ? obj.get("peer_id").getAsLong() : 0; long groupId = obj.has("group_id") ? obj.get("group_id").getAsLong() : 0;