From 22faac7e36dbd11506ba61ccb9c6f2544a2f31ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=89=8B=E7=93=9C=E4=B8=80=E5=8D=81=E9=9B=AA?= Date: Wed, 10 Jul 2024 21:11:28 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20friend=20uid=20=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/core/src/apis/user.ts | 17 ++++++++++++++--- src/onebot11/action/msg/SendMsg/index.ts | 1 + 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/core/src/apis/user.ts b/src/core/src/apis/user.ts index 357ed661..150574b8 100644 --- a/src/core/src/apis/user.ts +++ b/src/core/src/apis/user.ts @@ -1,7 +1,7 @@ import { ModifyProfileParams, SelfInfo, User, UserDetailInfoByUin } from '@/core/entities'; -import { selfInfo } from '@/core/data'; +import { friends, selfInfo } from '@/core/data'; import { CacheClassFuncAsync } from '@/common/utils/helper'; -import { GeneralCallResult, napCatCore } from '@/core'; +import { GeneralCallResult, napCatCore, NTQQFriendApi } from '@/core'; import { ProfileListener } from '@/core/listeners'; import { rejects } from 'assert'; import { randomUUID } from 'crypto'; @@ -170,7 +170,18 @@ export class NTQQUserApi { 5000, [Uin] ); - return ret.uidInfo.get(Uin); + let uid = ret.uidInfo.get(Uin); + //let t = await NTQQUserApi.getUserDetailInfoByUin(Uin); + if (!uid) { + uid = (await NTQQFriendApi.getFriends(true)).find((t) => { t.uin == Uin })?.uid; + } + if (!uid) { + uid = Array.from(friends.values()).find((t) => { t.uin == Uin })?.uid; + } + if (!uid) { + //uid获取失败 + } + return uid; } static async getUinByUid(Uid: string | undefined) { if (!Uid) { diff --git a/src/onebot11/action/msg/SendMsg/index.ts b/src/onebot11/action/msg/SendMsg/index.ts index b7f5b562..0a943dba 100644 --- a/src/onebot11/action/msg/SendMsg/index.ts +++ b/src/onebot11/action/msg/SendMsg/index.ts @@ -102,6 +102,7 @@ async function createContext(payload: OB11PostSendMsg, contextMode: ContextMode) if ((contextMode === ContextMode.Private || contextMode === ContextMode.Normal) && payload.user_id) { const Uid = await NTQQUserApi.getUidByUin(payload.user_id.toString()); const isBuddy = await NTQQFriendApi.isBuddy(Uid!); + //console.log("[调试代码] UIN:", payload.user_id, " UID:", Uid, " IsBuddy:", isBuddy); return { peer: { chatType: isBuddy ? ChatType.friend : ChatType.temp,