From b77954cd57c48030fca6388aab8fde623cccaa61 Mon Sep 17 00:00:00 2001 From: Stanley Dimant Date: Sun, 12 Jan 2025 13:29:58 +0100 Subject: [PATCH] don't show shared data from paused people --- MareSynchronos/PlayerData/Pairs/PairManager.cs | 11 +++++++++++ MareSynchronos/Services/CharaData/CharaDataManager.cs | 7 ++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/MareSynchronos/PlayerData/Pairs/PairManager.cs b/MareSynchronos/PlayerData/Pairs/PairManager.cs index e553e4e..2d4ec6d 100644 --- a/MareSynchronos/PlayerData/Pairs/PairManager.cs +++ b/MareSynchronos/PlayerData/Pairs/PairManager.cs @@ -63,6 +63,17 @@ public sealed class PairManager : DisposableMediatorSubscriberBase RecreateLazy(); } + public Pair? GetPairByUID(string uid) + { + var existingPair = _allClientPairs.FirstOrDefault(f => f.Key.UID == uid); + if (!Equals(existingPair, default(KeyValuePair))) + { + return existingPair.Value; + } + + return null; + } + public void AddUserPair(UserFullPairDto dto) { if (!_allClientPairs.ContainsKey(dto.User)) diff --git a/MareSynchronos/Services/CharaData/CharaDataManager.cs b/MareSynchronos/Services/CharaData/CharaDataManager.cs index 2919b54..77c2e29 100644 --- a/MareSynchronos/Services/CharaData/CharaDataManager.cs +++ b/MareSynchronos/Services/CharaData/CharaDataManager.cs @@ -6,6 +6,7 @@ using MareSynchronos.Interop.Ipc; using MareSynchronos.MareConfiguration; using MareSynchronos.PlayerData.Factories; using MareSynchronos.PlayerData.Handlers; +using MareSynchronos.PlayerData.Pairs; using MareSynchronos.Services.CharaData.Models; using MareSynchronos.Services.Mediator; using MareSynchronos.Utils; @@ -26,6 +27,7 @@ public sealed partial class CharaDataManager : DisposableMediatorSubscriberBase private readonly List _nearbyData = []; private readonly CharaDataNearbyManager _nearbyManager; private readonly CharaDataCharacterHandler _characterHandler; + private readonly PairManager _pairManager; private readonly Dictionary _ownCharaData = []; private readonly Dictionary _sharedMetaInfoTimeoutTasks = []; private readonly Dictionary> _sharedWithYouData = []; @@ -42,7 +44,7 @@ public sealed partial class CharaDataManager : DisposableMediatorSubscriberBase MareMediator mareMediator, IpcManager ipcManager, DalamudUtilService dalamudUtilService, FileDownloadManagerFactory fileDownloadManagerFactory, CharaDataConfigService charaDataConfigService, CharaDataNearbyManager charaDataNearbyManager, - CharaDataCharacterHandler charaDataCharacterHandler) : base(logger, mareMediator) + CharaDataCharacterHandler charaDataCharacterHandler, PairManager pairManager) : base(logger, mareMediator) { _apiController = apiController; _fileHandler = charaDataFileHandler; @@ -51,6 +53,7 @@ public sealed partial class CharaDataManager : DisposableMediatorSubscriberBase _configService = charaDataConfigService; _nearbyManager = charaDataNearbyManager; _characterHandler = charaDataCharacterHandler; + _pairManager = pairManager; mareMediator.Subscribe(this, (msg) => { _connectCts?.Cancel(); @@ -395,6 +398,8 @@ public sealed partial class CharaDataManager : DisposableMediatorSubscriberBase var result = await GetSharedWithYouTask.ConfigureAwait(false); foreach (var grouping in result.GroupBy(r => r.Uploader)) { + var pair = _pairManager.GetPairByUID(grouping.Key.UID); + if (pair?.IsPaused ?? false) continue; List newList = new(); foreach (var item in grouping) {