diff --git a/src/elements.ts b/src/elements.ts index 10cbe45..9724ee5 100644 --- a/src/elements.ts +++ b/src/elements.ts @@ -7,6 +7,7 @@ export enum MusicPlatform { export interface Quotable { id?: string + event_id?: string } export interface MessageElemMap { diff --git a/src/entries/sender.ts b/src/entries/sender.ts index 3b95341..386726b 100644 --- a/src/entries/sender.ts +++ b/src/entries/sender.ts @@ -96,12 +96,16 @@ export class Sender { const {type, ...data} = elem switch (elem.type) { case 'reply': - this.messagePayload.msg_id = elem.id - this.filePayload.msg_id = elem.id - this.messagePayload.message_reference = { - message_id: elem.id + if (elem.event_id) { + this.messagePayload.event_id = elem.event_id + this.brief += `` + } else { + this.messagePayload.msg_id = elem.id + this.messagePayload.message_reference = { + message_id: elem.id + } + this.brief += `` } - this.brief += `` break; case "at": this.messagePayload.content += `<@${elem.user_id === 'all' ? 'everyone' : elem.user_id}>` diff --git a/src/event/notice.ts b/src/event/notice.ts index aa65351..b4635f9 100644 --- a/src/event/notice.ts +++ b/src/event/notice.ts @@ -19,6 +19,7 @@ export namespace NoticeEvent { } export class ActionNoticeEvent extends NoticeEvent { + event_id: string notice_id: string data: ActionNoticeEvent.ActionData private replied: boolean = false @@ -26,9 +27,9 @@ export class ActionNoticeEvent extends NoticeEvent { constructor(bot: Bot, payload: Dict) { super(bot, payload); this.sub_type = 'action' + this.event_id = payload.event_id this.notice_id = payload.id this.data = payload.data - } /** diff --git a/src/qqBot.ts b/src/qqBot.ts index 104e708..4e3cad0 100644 --- a/src/qqBot.ts +++ b/src/qqBot.ts @@ -43,7 +43,8 @@ export class QQBot extends EventEmitter { delete config.data.message_reference const formData=new FormData() for(const key in config.data) - formData.set(key,config.data[key]) + if (config.data[key] !== undefined) + formData.set(key,config.data[key]) config.data=formData } return config