diff --git a/manifest.json b/manifest.json index 3ba5471..44b2700 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "type": "extension", "name": "LLOneBot v3.19.2", "slug": "LLOneBot", - "description": "LiteLoaderQQNT的OneBotApi,不支持商店在线更新", + "description": "使你的NTQQ支持OneBot11协议进行QQ机器人开发, 不支持商店在线更新", "version": "3.19.2", "icon": "./icon.jpg", "authors": [ diff --git a/src/main/main.ts b/src/main/main.ts index 40f6fff..869d95a 100644 --- a/src/main/main.ts +++ b/src/main/main.ts @@ -4,28 +4,36 @@ import {BrowserWindow, dialog, ipcMain} from 'electron'; import * as fs from 'node:fs'; import {Config} from "../common/types"; import { + CHANNEL_CHECK_VERSION, CHANNEL_ERROR, CHANNEL_GET_CONFIG, CHANNEL_LOG, - CHANNEL_CHECK_VERSION, CHANNEL_SELECT_FILE, CHANNEL_SET_CONFIG, CHANNEL_UPDATE, } from "../common/channels"; import {ob11WebsocketServer} from "../onebot11/server/ws/WebsocketServer"; -import {DATA_DIR, wrapText} from "../common/utils"; +import {DATA_DIR} from "../common/utils"; import { friendRequests, getFriend, getGroup, - getGroupMember, groups, + getGroupMember, llonebotError, refreshGroupMembers, - selfInfo, uidMaps + selfInfo, + uidMaps } from "../common/data"; import {hookNTQQApiCall, hookNTQQApiReceive, ReceiveCmdS, registerReceiveHook} from "../ntqqapi/hook"; import {OB11Constructor} from "../onebot11/constructor"; -import {ChatType, FriendRequestNotify, GroupNotifies, GroupNotifyTypes, RawMessage} from "../ntqqapi/types"; +import { + ChatType, + FriendRequestNotify, + GroupMemberRole, + GroupNotifies, + GroupNotifyTypes, + RawMessage +} from "../ntqqapi/types"; import {ob11HTTPServer} from "../onebot11/server/http"; import {OB11FriendRecallNoticeEvent} from "../onebot11/event/notice/OB11FriendRecallNoticeEvent"; import {OB11GroupRecallNoticeEvent} from "../onebot11/event/notice/OB11GroupRecallNoticeEvent"; @@ -285,6 +293,7 @@ function onLoad() { log("变动管理员获取成功") groupAdminNoticeEvent.user_id = parseInt(member1.uin); groupAdminNoticeEvent.sub_type = notify.type == GroupNotifyTypes.ADMIN_UNSET ? "unset" : "set"; + // member1.role = notify.type == GroupNotifyTypes.ADMIN_SET ? GroupMemberRole.admin : GroupMemberRole.normal; postOB11Event(groupAdminNoticeEvent, true); } else { log("获取群通知的成员信息失败", notify, getGroup(notify.group.groupCode)); diff --git a/src/ntqqapi/hook.ts b/src/ntqqapi/hook.ts index b13e353..c4ef1ff 100644 --- a/src/ntqqapi/hook.ts +++ b/src/ntqqapi/hook.ts @@ -2,7 +2,7 @@ import {BrowserWindow} from 'electron'; import {NTQQApiClass} from "./ntcall"; import {NTQQMsgApi, sendMessagePool} from "./api/msg" import {ChatType, Group, GroupMember, RawMessage, User} from "./types"; -import {friends, groups, selfInfo, tempGroupCodeMap, uidMaps} from "../common/data"; +import {friends, getGroupMember, groups, selfInfo, tempGroupCodeMap, uidMaps} from "../common/data"; import {OB11GroupDecreaseEvent} from "../onebot11/event/notice/OB11GroupDecreaseEvent"; import {v4 as uuidv4} from "uuid" import {postOB11Event} from "../onebot11/server/postOB11Event"; @@ -281,10 +281,16 @@ registerReceiveHook<{ groupList: Group[], updateType: number }>(ReceiveCmdS.GROU } }) -registerReceiveHook<{groupCode: string, dataSource: number, members: Set<GroupMember>}>(ReceiveCmdS.GROUP_MEMBER_INFO_UPDATE, (payload) => { +registerReceiveHook<{groupCode: string, dataSource: number, members: Set<GroupMember>}>(ReceiveCmdS.GROUP_MEMBER_INFO_UPDATE, async (payload) => { const groupCode = payload.groupCode; const members = Array.from(payload.members.values()); - // log("群成员变动", groupCode, payload.members.keys(), payload.members.values()) + log("群成员信息变动", groupCode, members) + for(const member of members) { + const existMember = await getGroupMember(groupCode, member.uin); + if (existMember){ + Object.assign(existMember, member); + } + } // const existGroup = groups.find(g => g.groupCode == groupCode); // if (existGroup) { // log("对比群成员", existGroup.members, members) diff --git a/src/version.ts b/src/version.ts index 4d234af..38e1d2c 100644 --- a/src/version.ts +++ b/src/version.ts @@ -1 +1 @@ -export const version = "3.19.2" \ No newline at end of file +export const version = "3.19.3" \ No newline at end of file