mirror of
https://github.com/Caraxi/mare.client.git
synced 2025-12-12 21:57:22 +01:00
adjustments to cachedplayer handling
This commit is contained in:
parent
73f009757c
commit
eed44f090d
12 changed files with 303 additions and 178 deletions
|
|
@ -1,5 +1,4 @@
|
|||
using MareSynchronos.API.Data;
|
||||
using MareSynchronos.API.Dto.User;
|
||||
using MareSynchronos.FileCache;
|
||||
using MareSynchronos.Mediator;
|
||||
using MareSynchronos.Utils;
|
||||
|
|
@ -70,22 +69,22 @@ public class OnlinePlayerManager : MediatorSubscriberBase, IDisposable
|
|||
if (!_dalamudUtil.IsPlayerPresent || !_apiController.IsConnected) return;
|
||||
|
||||
var playerCharacters = _dalamudUtil.GetPlayerCharacters();
|
||||
var onlinePairs = _pairManager.OnlineUserPairs;
|
||||
var newVisiblePlayers = new List<UserData>();
|
||||
foreach (var pChar in playerCharacters)
|
||||
{
|
||||
var pair = _pairManager.FindPair(pChar);
|
||||
if (pair == null) continue;
|
||||
|
||||
pair.InitializePair(pChar.Address, pChar.Name.ToString());
|
||||
if (pair.InitializePair(pChar.Name.ToString()))
|
||||
{
|
||||
newVisiblePlayers.Add(pair.UserData ?? pair.GroupPair.First().Value.User);
|
||||
}
|
||||
}
|
||||
|
||||
var newlyVisiblePlayers = onlinePairs.Select(v => v.CachedPlayer)
|
||||
.Where(p => p != null && p.PlayerCharacter != IntPtr.Zero && p.IsVisible && !p.WasVisible).Select(p => (UserDto)p!.OnlineUser)
|
||||
.ToList();
|
||||
if (newlyVisiblePlayers.Any())
|
||||
if (newVisiblePlayers.Any())
|
||||
{
|
||||
Logger.Verbose("Has new visible players, pushing character data");
|
||||
PushCharacterData(newlyVisiblePlayers.Select(c => c.User).ToList());
|
||||
PushCharacterData(newVisiblePlayers);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue