diff --git a/plugins/adapter/GSUIDCore.js b/plugins/adapter/GSUIDCore.js index 85cd70d..8291b05 100644 --- a/plugins/adapter/GSUIDCore.js +++ b/plugins/adapter/GSUIDCore.js @@ -29,6 +29,12 @@ Bot.adapter.push(new class GSUIDCoreAdapter { return this.toStr(msg).replace(/("type":"(image|file)","data":").*?(")/g, "$1...$3") } + sendApi(ws, data) { + const msg = JSON.stringify(data) + logger.debug(`发送 API 请求:${logger.cyan(this.makeLog(msg))}`) + return ws.send(msg) + } + makeMsg(msg) { if (!Array.isArray(msg)) msg = [msg] @@ -75,33 +81,32 @@ Bot.adapter.push(new class GSUIDCoreAdapter { sendFriendMsg(data, msg) { const content = this.makeMsg(msg) logger.info(`${logger.blue(`[${data.self_id}]`)} 发送好友消息:[${data.user_id}] ${this.makeLog(content)}`) - return data.bot.ws.send(JSON.stringify({ + return data.sendApi({ bot_id: data.bot.bot_id, bot_self_id: data.bot.bot_self_id, target_type: "direct", target_id: data.user_id, content, - })) + }) } sendGroupMsg(data, msg) { const target = data.group_id.split("-") const content = this.makeMsg(msg) logger.info(`${logger.blue(`[${data.self_id}]`)} 发送群消息:[${data.group_id}] ${this.makeLog(content)}`) - return data.bot.ws.send(JSON.stringify({ + return data.sendApi({ bot_id: data.bot.bot_id, bot_self_id: data.bot.bot_self_id, target_type: target[0], target_id: target[1], content, - })) + }) } - pickFriend(id, user_id) { + pickFriend(data, user_id) { const i = { - ...Bot[id].fl.get(user_id), - self_id: id, - bot: Bot[id], + ...Bot[data.self_id].fl.get(user_id), + ...data, user_id: user_id.replace(/^gc_/, ""), } return { @@ -113,25 +118,23 @@ Bot.adapter.push(new class GSUIDCoreAdapter { } } - pickMember(id, group_id, user_id) { + pickMember(data, group_id, user_id) { const i = { - ...Bot[id].fl.get(user_id), - self_id: id, - bot: Bot[id], + ...Bot[data.self_id].fl.get(user_id), + ...data, group_id: group_id.replace(/^gc_/, ""), user_id: user_id.replace(/^gc_/, ""), } return { - ...this.pickFriend(id, user_id), + ...this.pickFriend(i, user_id), ...i, } } - pickGroup(id, group_id) { + pickGroup(data, group_id) { const i = { - ...Bot[id].gl.get(group_id), - self_id: id, - bot: Bot[id], + ...Bot[data.self_id].gl.get(group_id), + ...data, group_id: group_id.replace(/^gc_/, ""), } return { @@ -140,14 +143,14 @@ Bot.adapter.push(new class GSUIDCoreAdapter { recallMsg: message_id => this.recallMsg(i, message_id => i.bot.API.message.delete(message_id), message_id), makeForwardMsg: Bot.makeForwardMsg, sendForwardMsg: msg => Bot.sendForwardMsg(msg => this.sendGroupMsg(i, msg), msg), - pickMember: user_id => this.pickMember(id, group_id, user_id), + pickMember: user_id => this.pickMember(i, group_id, user_id), } } - makeBot(data, ws) { + makeBot(data) { Bot[data.self_id] = { adapter: this, - ws, + sendApi: data.sendApi, uin: data.self_id, bot_id: data.bot_id, bot_self_id: data.bot_self_id, @@ -156,9 +159,9 @@ Bot.adapter.push(new class GSUIDCoreAdapter { id: this.id, name: this.name, }, - pickFriend: user_id => this.pickFriend(data.self_id, user_id), - pickMember: (group_id, user_id) => this.pickMember(data.self_id, group_id, user_id), - pickGroup: group_id => this.pickGroup(data.self_id, group_id), + pickFriend: user_id => this.pickFriend(data, user_id), + pickMember: (group_id, user_id) => this.pickMember(data, group_id, user_id), + pickGroup: group_id => this.pickGroup(data, group_id), fl: new Map(), gl: new Map(), } @@ -177,10 +180,11 @@ Bot.adapter.push(new class GSUIDCoreAdapter { } data.self_id = `gc_${data.bot_self_id}` + data.sendApi = data => this.sendApi(ws, data) if (Bot[data.self_id]) - Bot[data.self_id].ws = ws + Bot[data.self_id].sendApi = data.sendApi else - this.makeBot(data, ws) + this.makeBot(data) data.bot = Bot[data.self_id] data.post_type = "message"