feat: 1.4.0-beta8

This commit is contained in:
手瓜一十雪
2024-05-24 11:18:32 +08:00
parent dcf25a1f41
commit fe9d2c86e6
5 changed files with 23 additions and 165 deletions

View File

@@ -98,8 +98,8 @@ export class NapCatOnebot11 {
// }
// };
try {
const sysMsg = SysData.fromBinary(Buffer.from(protobufData));
//console.log(buf2hex(Buffer.from(protobufData)));
const sysMsg = SysData.fromBinary(Buffer.from(protobufData));
const peeruin = sysMsg.header[0].peerNumber;
const peeruid = sysMsg.header[0].peerString;
const MsgType = sysMsg.body[0].msgType;
@@ -129,16 +129,17 @@ export class NapCatOnebot11 {
postOB11Event(pokeEvent);
}
}
if (MsgType == 34 && subType0 == 0) {
const role = (await getGroupMember(peeruin, selfInfo.uin))?.role;
const isPrivilege = role === 3 || role === 4;
if (!isPrivilege) {
const leaveUin = uid2UinMap[sysMsg.other[0].event[0].peerString];
log('[群聊] 群组 ', peeruin, ' 成员' + leaveUin + '退出');
const groupDecreaseEvent = new OB11GroupDecreaseEvent(peeruin, parseInt(leaveUin), 0, 'leave');// 不知道怎么出去的
postOB11Event(groupDecreaseEvent, true);
}
}
// 未区分增加与减少
// if (MsgType == 34 && subType0 == 0) {
// const role = (await getGroupMember(peeruin, selfInfo.uin))?.role;
// const isPrivilege = role === 3 || role === 4;
// if (!isPrivilege) {
// const leaveUin = uid2UinMap[sysMsg.other[0].event[0].peerString];
// log('[群聊] 群组 ', peeruin, ' 成员' + leaveUin + '退出');
// const groupDecreaseEvent = new OB11GroupDecreaseEvent(peeruin, parseInt(leaveUin), 0, 'leave');// 不知道怎么出去的
// postOB11Event(groupDecreaseEvent, true);
// }
// }
} catch (e) {
log('解析SysMsg异常', e);
// console.log(e);
@@ -200,14 +201,15 @@ export class NapCatOnebot11 {
};
groupListener.onMemberInfoChange = async (groupCode: string, changeType: number, members: Map<string, GroupMember>) => {
// 如果自身是非管理员也许要从这里获取Delete 成员变动 待测试与验证
// const role = (await getGroupMember(groupCode, selfInfo.uin))?.role;
// const isPrivilege = role === 3 || role === 4;
// for (const member of members.values()) {
// if (member?.isDelete && !isPrivilege) {
// const groupDecreaseEvent = new OB11GroupDecreaseEvent(parseInt(groupCode), parseInt(member.uin), 0, 'leave');// 不知道怎么出去的
// postOB11Event(groupDecreaseEvent, true);
// }
// }
const role = (await getGroupMember(groupCode, selfInfo.uin))?.role;
const isPrivilege = role === 3 || role === 4;
for (const member of members.values()) {
if (member?.isDelete && !isPrivilege) {
console.log('[群聊] 群组 ', groupCode, ' 成员' + member.uin + '退出');
const groupDecreaseEvent = new OB11GroupDecreaseEvent(parseInt(groupCode), parseInt(member.uin), 0, 'leave');// 不知道怎么出去的
postOB11Event(groupDecreaseEvent, true);
}
}
};
groupListener.onJoinGroupNotify = (...notify) => {
// console.log('ob11 onJoinGroupNotify', notify);