From de86bdcce46e6eba08c970f5fd06379e508d6ff4 Mon Sep 17 00:00:00 2001 From: Somebody Date: Sat, 3 May 2025 15:44:43 +0800 Subject: [PATCH] fix: search player didnt work & error assist panel --- Common/Database/Player/PlayerData.cs | 33 +++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/Common/Database/Player/PlayerData.cs b/Common/Database/Player/PlayerData.cs index dd2ffec6..380e3b12 100644 --- a/Common/Database/Player/PlayerData.cs +++ b/Common/Database/Player/PlayerData.cs @@ -76,6 +76,18 @@ public class PlayerData : BaseDatabaseDataHelper }; } + public LobbyPlayerBasicInfo ToLobbyProto() + { + return new LobbyPlayerBasicInfo + { + Nickname = Name, + Level = (uint)Level, + LobbyHeadIconId = (uint)HeadIcon, + Platform = PlatformType.Pc, + Uid = (uint)Uid + }; + } + public PlayerSimpleInfo ToSimpleProto(FriendOnlineStatus status) { if (!GameData.ChatBubbleConfigData.ContainsKey(ChatBubble)) // to avoid npe @@ -123,7 +135,8 @@ public class PlayerData : BaseDatabaseDataHelper Platform = PlatformType.Pc, Uid = (uint)Uid, WorldLevel = (uint)WorldLevel, - RecordInfo = new PlayerRecordInfo() + RecordInfo = new PlayerRecordInfo(), + PrivacySettings = new PrivacySettings() }; var avatarInfo = DatabaseHelper.Instance!.GetInstance(Uid); @@ -132,14 +145,22 @@ public class PlayerData : BaseDatabaseDataHelper if (avatarInfo == null || inventoryInfo == null) return info; var pos = 0; - foreach (var avatar in avatarInfo.AssistAvatars.Select(assist => - avatarInfo.FormalAvatars.Find(x => x.AvatarId == assist)!)) - info.AssistAvatarList.Add(avatar.ToDetailProto(pos++, new PlayerDataCollection(this, inventoryInfo, new LineupInfo()))); + foreach (var avatarId in avatarInfo.AssistAvatars) + { + var avatar = avatarInfo.FormalAvatars.Find(x => x.AvatarId == avatarId); + if (avatar != null) + info.AssistAvatarList.Add(avatar.ToDetailProto(pos++, + new PlayerDataCollection(this, inventoryInfo, new LineupInfo()))); + } pos = 0; foreach (var avatar in avatarInfo.DisplayAvatars.Select(display => - avatarInfo.FormalAvatars.Find(x => x.AvatarId == display)!)) - info.DisplayAvatarList.Add(avatar.ToDetailProto(pos++, new PlayerDataCollection(this, inventoryInfo, new LineupInfo()))); + avatarInfo.FormalAvatars.Find(x => x.AvatarId == display))) + { + if (avatar != null) + info.DisplayAvatarList.Add(avatar.ToDetailProto(pos++, + new PlayerDataCollection(this, inventoryInfo, new LineupInfo()))); + } return info; }