don't show shared data from paused people

This commit is contained in:
Stanley Dimant
2025-01-12 13:29:58 +01:00
parent 52d0fa6590
commit b77954cd57
2 changed files with 17 additions and 1 deletions

View File

@@ -63,6 +63,17 @@ public sealed class PairManager : DisposableMediatorSubscriberBase
RecreateLazy(); RecreateLazy();
} }
public Pair? GetPairByUID(string uid)
{
var existingPair = _allClientPairs.FirstOrDefault(f => f.Key.UID == uid);
if (!Equals(existingPair, default(KeyValuePair<UserData, Pair>)))
{
return existingPair.Value;
}
return null;
}
public void AddUserPair(UserFullPairDto dto) public void AddUserPair(UserFullPairDto dto)
{ {
if (!_allClientPairs.ContainsKey(dto.User)) if (!_allClientPairs.ContainsKey(dto.User))

View File

@@ -6,6 +6,7 @@ using MareSynchronos.Interop.Ipc;
using MareSynchronos.MareConfiguration; using MareSynchronos.MareConfiguration;
using MareSynchronos.PlayerData.Factories; using MareSynchronos.PlayerData.Factories;
using MareSynchronos.PlayerData.Handlers; using MareSynchronos.PlayerData.Handlers;
using MareSynchronos.PlayerData.Pairs;
using MareSynchronos.Services.CharaData.Models; using MareSynchronos.Services.CharaData.Models;
using MareSynchronos.Services.Mediator; using MareSynchronos.Services.Mediator;
using MareSynchronos.Utils; using MareSynchronos.Utils;
@@ -26,6 +27,7 @@ public sealed partial class CharaDataManager : DisposableMediatorSubscriberBase
private readonly List<CharaDataMetaInfoExtendedDto> _nearbyData = []; private readonly List<CharaDataMetaInfoExtendedDto> _nearbyData = [];
private readonly CharaDataNearbyManager _nearbyManager; private readonly CharaDataNearbyManager _nearbyManager;
private readonly CharaDataCharacterHandler _characterHandler; private readonly CharaDataCharacterHandler _characterHandler;
private readonly PairManager _pairManager;
private readonly Dictionary<string, CharaDataFullExtendedDto> _ownCharaData = []; private readonly Dictionary<string, CharaDataFullExtendedDto> _ownCharaData = [];
private readonly Dictionary<string, Task> _sharedMetaInfoTimeoutTasks = []; private readonly Dictionary<string, Task> _sharedMetaInfoTimeoutTasks = [];
private readonly Dictionary<UserData, List<CharaDataMetaInfoExtendedDto>> _sharedWithYouData = []; private readonly Dictionary<UserData, List<CharaDataMetaInfoExtendedDto>> _sharedWithYouData = [];
@@ -42,7 +44,7 @@ public sealed partial class CharaDataManager : DisposableMediatorSubscriberBase
MareMediator mareMediator, IpcManager ipcManager, DalamudUtilService dalamudUtilService, MareMediator mareMediator, IpcManager ipcManager, DalamudUtilService dalamudUtilService,
FileDownloadManagerFactory fileDownloadManagerFactory, FileDownloadManagerFactory fileDownloadManagerFactory,
CharaDataConfigService charaDataConfigService, CharaDataNearbyManager charaDataNearbyManager, CharaDataConfigService charaDataConfigService, CharaDataNearbyManager charaDataNearbyManager,
CharaDataCharacterHandler charaDataCharacterHandler) : base(logger, mareMediator) CharaDataCharacterHandler charaDataCharacterHandler, PairManager pairManager) : base(logger, mareMediator)
{ {
_apiController = apiController; _apiController = apiController;
_fileHandler = charaDataFileHandler; _fileHandler = charaDataFileHandler;
@@ -51,6 +53,7 @@ public sealed partial class CharaDataManager : DisposableMediatorSubscriberBase
_configService = charaDataConfigService; _configService = charaDataConfigService;
_nearbyManager = charaDataNearbyManager; _nearbyManager = charaDataNearbyManager;
_characterHandler = charaDataCharacterHandler; _characterHandler = charaDataCharacterHandler;
_pairManager = pairManager;
mareMediator.Subscribe<ConnectedMessage>(this, (msg) => mareMediator.Subscribe<ConnectedMessage>(this, (msg) =>
{ {
_connectCts?.Cancel(); _connectCts?.Cancel();
@@ -395,6 +398,8 @@ public sealed partial class CharaDataManager : DisposableMediatorSubscriberBase
var result = await GetSharedWithYouTask.ConfigureAwait(false); var result = await GetSharedWithYouTask.ConfigureAwait(false);
foreach (var grouping in result.GroupBy(r => r.Uploader)) foreach (var grouping in result.GroupBy(r => r.Uploader))
{ {
var pair = _pairManager.GetPairByUID(grouping.Key.UID);
if (pair?.IsPaused ?? false) continue;
List<CharaDataMetaInfoExtendedDto> newList = new(); List<CharaDataMetaInfoExtendedDto> newList = new();
foreach (var item in grouping) foreach (var item in grouping)
{ {