From ddb6283975a8d0f952b40e2e9cd957abb2cde093 Mon Sep 17 00:00:00 2001 From: Rutherther Date: Fri, 3 Feb 2023 18:54:39 +0100 Subject: [PATCH] fix: keep correct name of comms packet provider --- .../Models/Packets/CommsPacketProvider.cs | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/PacketLogger/Models/Packets/CommsPacketProvider.cs b/src/PacketLogger/Models/Packets/CommsPacketProvider.cs index 6d527d1d777f569b173685ea320cc6b47fa9c7f5..aa74e412569355609388e224850ff8b1d094ed7a 100644 --- a/src/PacketLogger/Models/Packets/CommsPacketProvider.cs +++ b/src/PacketLogger/Models/Packets/CommsPacketProvider.cs @@ -10,9 +10,11 @@ using System.Data; using System.Threading; using System.Threading.Tasks; using DynamicData; +using DynamicData.Binding; using NosSmooth.Comms.Local; using NosSmooth.Core.Packets; using NosSmooth.PacketSerializer.Abstractions.Attributes; +using ReactiveUI; using Remora.Results; namespace PacketLogger.Models.Packets; @@ -20,26 +22,37 @@ namespace PacketLogger.Models.Packets; /// /// A packet provider using a connection to a nostale client. /// -public class CommsPacketProvider : IPacketProvider +public class CommsPacketProvider : ReactiveObject, IPacketProvider { + private readonly IDisposable _cleanUp; + private readonly NostaleProcess _process; private readonly Comms _comms; private long _currentIndex; /// /// Initializes a new instance of the class. /// + /// The process. /// The comms. - public CommsPacketProvider(Comms comms) + public CommsPacketProvider(NostaleProcess process, Comms comms) { + _process = process; _comms = comms; Packets = new SourceList(); + _cleanUp = process.WhenPropertyChanged(x => x.CharacterString) + .Subscribe + ( + _ => this.RaisePropertyChanged(nameof(Name)) + ); } /// public event PropertyChangedEventHandler? PropertyChanged; /// - public string Name => "TODO"; + public string Name => (_process.BrowserManager.IsInGame + ? _process.BrowserManager.PlayerManager.Player.Name + : null) ?? $"Not in game ({_process.Process.Id})"; /// public bool IsOpen => _comms.Connection.Connection.State == ConnectionState.Open;