diff --git a/README.md b/README.md
index 6e1bb6e..0ae7473 100644
--- a/README.md
+++ b/README.md
@@ -36,6 +36,7 @@ LiteLoaderQQNT的OneBot11协议插件
- [x] 上报好友、群消息撤回
消息格式支持:
+- [x] cq码
- [x] 文字
- [x] 表情
- [x] 图片
@@ -64,6 +65,10 @@ LiteLoaderQQNT的OneBot11协议插件
- [x] can_send_image
- [x] can_send_record
+支持的go-cqhtp api:
+- [x] send_private_forward_msg
+- [x] send_group_forward_msg
+
## 示例

@@ -91,13 +96,6 @@ LiteLoaderQQNT的OneBot11协议插件
-
- 不支持cq码
-
- cq码已经过时了,没有支持的打算(主要是我不用这玩意儿,加上我懒)
-
-
-
QQ变得很卡
diff --git a/manifest.json b/manifest.json
index 4ffec7f..0933aa2 100644
--- a/manifest.json
+++ b/manifest.json
@@ -4,7 +4,7 @@
"name": "LLOneBot",
"slug": "LLOneBot",
"description": "LiteLoaderQQNT的OneBotApi",
- "version": "3.4.0",
+ "version": "3.5.0",
"thumbnail": "./icon.png",
"authors": [
{
diff --git a/src/common/data.ts b/src/common/data.ts
index 09ff741..6bb5dda 100644
--- a/src/common/data.ts
+++ b/src/common/data.ts
@@ -87,4 +87,4 @@ export function getUidByUin(uin: string) {
}
}
-export const version = "v3.4.0"
+export const version = "v3.5.0"
diff --git a/src/main/main.ts b/src/main/main.ts
index be20be2..b0f9b78 100644
--- a/src/main/main.ts
+++ b/src/main/main.ts
@@ -16,6 +16,7 @@ import {OB11FriendRecallNoticeEvent} from "../onebot11/event/notice/OB11FriendRe
import {OB11GroupRecallNoticeEvent} from "../onebot11/event/notice/OB11GroupRecallNoticeEvent";
import {postEvent} from "../onebot11/server/postevent";
import {ob11ReverseWebsockets} from "../onebot11/server/ws/ReverseWebsocket";
+import {EventType} from "../onebot11/event/OB11BaseEvent";
let running = false;
@@ -94,7 +95,8 @@ function onLoad() {
if (debug) {
msg.raw = message;
}
- if (msg.user_id.toString() == selfInfo.uin && !reportSelfMessage) {
+ const isSelfMsg = msg.user_id.toString() == selfInfo.uin
+ if (isSelfMsg && !reportSelfMessage) {
return
}
postEvent(msg);
diff --git a/src/onebot11/action/SendMsg.ts b/src/onebot11/action/SendMsg.ts
index 212878d..2150423 100644
--- a/src/onebot11/action/SendMsg.ts
+++ b/src/onebot11/action/SendMsg.ts
@@ -150,7 +150,10 @@ export class SendMsg extends BaseAction {
let nodeId = messageNode.data.id;
// 有nodeId表示一个子转发消息卡片
if (nodeId) {
- nodeIds.push(nodeId)
+ let nodeMsg = getHistoryMsgByShortId(nodeId);
+ if (nodeMsg){
+ nodeIds.push(nodeMsg.msgId);
+ }
} else {
// 自定义的消息
// 提取消息段,发给自己生成消息id
diff --git a/src/onebot11/constructor.ts b/src/onebot11/constructor.ts
index 9628427..d24e190 100644
--- a/src/onebot11/constructor.ts
+++ b/src/onebot11/constructor.ts
@@ -11,6 +11,7 @@ import {AtType, ChatType, Group, GroupMember, IMAGE_HTTP_HOST, RawMessage, SelfI
import {getFriend, getGroupMember, getHistoryMsgBySeq, selfInfo} from '../common/data';
import {file2base64, getConfigUtil, log} from "../common/utils";
import {NTQQApi} from "../ntqqapi/ntcall";
+import {EventType} from "./event/OB11BaseEvent";
export class OB11Constructor {
@@ -34,10 +35,10 @@ export class OB11Constructor {
font: 14,
sub_type: "friend",
message: [],
- post_type: "message",
+ post_type: selfInfo.uin == msg.senderUin ? EventType.MESSAGE_SENT : EventType.MESSAGE,
}
if (msg.chatType == ChatType.group) {
- resMsg.sub_type = "normal"
+ resMsg.sub_type = "normal" // 这里go-cqhttp是group,而onebot11标准是normal, 蛋疼
resMsg.group_id = parseInt(msg.peerUin)
const member = await getGroupMember(msg.peerUin, msg.senderUin);
if (member) {
@@ -80,7 +81,14 @@ export class OB11Constructor {
}
} else if (element.textElement) {
message_data["type"] = "text"
- resMsg.raw_message += message_data["data"]["text"] = element.textElement.content
+ let text= element.textElement.content
+ if (!text.trim()){
+ continue;
+ }
+ message_data["data"]["text"] = text
+ if (text){
+ resMsg.raw_message += text
+ }
} else if (element.picElement) {
message_data["type"] = "image"
message_data["data"]["file_id"] = element.picElement.fileUuid
@@ -139,6 +147,7 @@ export class OB11Constructor {
resMsg.message.push(message_data);
}
}
+ resMsg.raw_message = resMsg.raw_message.trim();
return resMsg;
}
diff --git a/src/onebot11/event/OB11BaseEvent.ts b/src/onebot11/event/OB11BaseEvent.ts
index 1983db6..a495d1d 100644
--- a/src/onebot11/event/OB11BaseEvent.ts
+++ b/src/onebot11/event/OB11BaseEvent.ts
@@ -4,7 +4,8 @@ export enum EventType {
META = "meta_event",
REQUEST = "request",
NOTICE = "notice",
- MESSAGE = "message"
+ MESSAGE = "message",
+ MESSAGE_SENT = "message_sent",
}
diff --git a/src/onebot11/server/ws/reply.ts b/src/onebot11/server/ws/reply.ts
index 9c21fce..f4acaca 100644
--- a/src/onebot11/server/ws/reply.ts
+++ b/src/onebot11/server/ws/reply.ts
@@ -11,7 +11,7 @@ export function wsReply(wsClient: websocket.WebSocket, data: OB11Response | Post
delete packet["echo"];
}
wsClient.send(JSON.stringify(packet))
- log("ws 消息上报", wsClient.url, data)
+ log("ws 消息上报", wsClient.url || "", data)
} catch (e) {
log("websocket 回复失败", e)
}
diff --git a/src/onebot11/types.ts b/src/onebot11/types.ts
index 1627c84..ab23fbd 100644
--- a/src/onebot11/types.ts
+++ b/src/onebot11/types.ts
@@ -1,4 +1,5 @@
import {AtType, RawMessage} from "../ntqqapi/types";
+import {EventType} from "./event/OB11BaseEvent";
export interface OB11User {
user_id: number;
@@ -67,7 +68,7 @@ export interface OB11Message {
message: OB11MessageData[],
raw_message: string,
font: number,
- post_type?: "message",
+ post_type?: EventType,
raw?: RawMessage
}