"improving" pair handler clean up and some other stuff
This commit is contained in:
@@ -50,6 +50,7 @@ public class VisibleUserDataDistributor : DisposableMediatorSubscriberBase
|
||||
});
|
||||
|
||||
Mediator.Subscribe<ConnectedMessage>(this, (_) => PushToAllVisibleUsers());
|
||||
Mediator.Subscribe<PairOnlineMessage>(this, (msg) => HandlePairOnline(msg.PairIdent));
|
||||
Mediator.Subscribe<DisconnectedMessage>(this, (_) =>
|
||||
{
|
||||
_fileTransferManager.CancelUpload();
|
||||
@@ -111,6 +112,20 @@ public class VisibleUserDataDistributor : DisposableMediatorSubscriberBase
|
||||
_ = PushCharacterDataAsync(forced);
|
||||
}
|
||||
|
||||
private void HandlePairOnline(PairUniqueIdentifier pairIdent)
|
||||
{
|
||||
if (!_apiController.IsConnected || !_pairLedger.IsPairVisible(pairIdent))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (_pairLedger.GetHandler(pairIdent)?.UserData is { } user)
|
||||
{
|
||||
_usersToPushDataTo.Add(user);
|
||||
PushCharacterData(forced: true);
|
||||
}
|
||||
}
|
||||
|
||||
private async Task PushCharacterDataAsync(bool forced = false)
|
||||
{
|
||||
await _pushLock.WaitAsync(_runtimeCts.Token).ConfigureAwait(false);
|
||||
@@ -152,5 +167,6 @@ public class VisibleUserDataDistributor : DisposableMediatorSubscriberBase
|
||||
}
|
||||
}
|
||||
|
||||
private List<UserData> GetVisibleUsers() => [.. _pairLedger.GetVisiblePairs().Select(connection => connection.User)];
|
||||
private List<UserData> GetVisibleUsers()
|
||||
=> [.. _pairLedger.GetVisiblePairs().Where(connection => connection.IsOnline).Select(connection => connection.User)];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user