From e31c232f7991a6895653d2640843630fba11f41b Mon Sep 17 00:00:00 2001 From: Stanley Dimant Date: Sun, 24 Jul 2022 14:44:36 +0200 Subject: [PATCH] cleanup --- MareSynchronos/Managers/CachedPlayer.cs | 1 - .../Managers/OnlinePlayerManager.cs | 2 +- MareSynchronos/Managers/PlayerManager.cs | 26 +++++++++---------- ...tachedObject.cs => PlayerRelatedObject.cs} | 4 +-- MareSynchronos/Utils/DalamudUtil.cs | 18 ------------- .../WebAPI/ApIController.Functions.Files.cs | 10 +++---- .../WebAPI/ApiController.Connectivity.cs | 6 ++--- 7 files changed, 24 insertions(+), 43 deletions(-) rename MareSynchronos/Models/{PlayerAttachedObject.cs => PlayerRelatedObject.cs} (95%) diff --git a/MareSynchronos/Managers/CachedPlayer.cs b/MareSynchronos/Managers/CachedPlayer.cs index ccbdf3a..b23d2c2 100644 --- a/MareSynchronos/Managers/CachedPlayer.cs +++ b/MareSynchronos/Managers/CachedPlayer.cs @@ -11,7 +11,6 @@ using MareSynchronos.FileCacheDB; using MareSynchronos.Interop; using MareSynchronos.Utils; using MareSynchronos.WebAPI; -using Penumbra.GameData.ByteString; using Penumbra.GameData.Structs; namespace MareSynchronos.Managers; diff --git a/MareSynchronos/Managers/OnlinePlayerManager.cs b/MareSynchronos/Managers/OnlinePlayerManager.cs index d20575b..30f0ee9 100644 --- a/MareSynchronos/Managers/OnlinePlayerManager.cs +++ b/MareSynchronos/Managers/OnlinePlayerManager.cs @@ -254,7 +254,7 @@ public class OnlinePlayerManager : IDisposable { Task.Run(async () => { - await _apiController.PushCharacterData(_playerManager.LastCreatedCharacterData!, + await _apiController.PushCharacterData(_playerManager.LastCreatedCharacterData, visiblePlayers); }); } diff --git a/MareSynchronos/Managers/PlayerManager.cs b/MareSynchronos/Managers/PlayerManager.cs index 01b7b16..e80fafa 100644 --- a/MareSynchronos/Managers/PlayerManager.cs +++ b/MareSynchronos/Managers/PlayerManager.cs @@ -31,7 +31,7 @@ namespace MareSynchronos.Managers private DateTime _lastPlayerObjectCheck; private CharacterEquipment? _currentCharacterEquipment = new(); - private List playerAttachedObjects = new List(); + private List playerRelatedObjects = new List(); public unsafe PlayerManager(ApiController apiController, IpcManager ipcManager, CharacterDataFactory characterDataFactory, DalamudUtil dalamudUtil) @@ -53,13 +53,13 @@ namespace MareSynchronos.Managers ApiControllerOnConnected(); } - playerAttachedObjects = new List() + playerRelatedObjects = new List() { - new PlayerOrRelatedObject(ObjectKind.Player, IntPtr.Zero, IntPtr.Zero, () => _dalamudUtil.PlayerPointer), - new PlayerOrRelatedObject(ObjectKind.Minion, IntPtr.Zero, IntPtr.Zero, () => (IntPtr)((Character*)_dalamudUtil.PlayerPointer)->CompanionObject), - new PlayerOrRelatedObject(ObjectKind.Pet, IntPtr.Zero, IntPtr.Zero, () => _dalamudUtil.GetPet()), - new PlayerOrRelatedObject(ObjectKind.Companion, IntPtr.Zero, IntPtr.Zero, () => _dalamudUtil.GetCompanion()), - new PlayerOrRelatedObject(ObjectKind.Mount, IntPtr.Zero, IntPtr.Zero, () => (IntPtr)((CharaExt*)_dalamudUtil.PlayerPointer)->Mount), + new PlayerRelatedObject(ObjectKind.Player, IntPtr.Zero, IntPtr.Zero, () => _dalamudUtil.PlayerPointer), + new PlayerRelatedObject(ObjectKind.Minion, IntPtr.Zero, IntPtr.Zero, () => (IntPtr)((Character*)_dalamudUtil.PlayerPointer)->CompanionObject), + new PlayerRelatedObject(ObjectKind.Pet, IntPtr.Zero, IntPtr.Zero, () => _dalamudUtil.GetPet()), + new PlayerRelatedObject(ObjectKind.Companion, IntPtr.Zero, IntPtr.Zero, () => _dalamudUtil.GetCompanion()), + new PlayerRelatedObject(ObjectKind.Mount, IntPtr.Zero, IntPtr.Zero, () => (IntPtr)((CharaExt*)_dalamudUtil.PlayerPointer)->Mount), }; } @@ -80,8 +80,8 @@ namespace MareSynchronos.Managers if (DateTime.Now < _lastPlayerObjectCheck.AddSeconds(0.25)) return; - playerAttachedObjects.ForEach(k => k.CheckAndUpdateObject()); - if (playerAttachedObjects.Any(c => c.HasUnprocessedUpdate && !c.IsProcessing)) + playerRelatedObjects.ForEach(k => k.CheckAndUpdateObject()); + if (playerRelatedObjects.Any(c => c.HasUnprocessedUpdate && !c.IsProcessing)) { OnPlayerOrAttachedObjectsChanged(); } @@ -105,7 +105,7 @@ namespace MareSynchronos.Managers private async Task CreateFullCharacterCacheDto(CancellationToken token) { - foreach (var unprocessedObject in playerAttachedObjects.Where(c => c.HasUnprocessedUpdate).ToList()) + foreach (var unprocessedObject in playerRelatedObjects.Where(c => c.HasUnprocessedUpdate).ToList()) { Logger.Verbose("Building Cache for " + unprocessedObject.ObjectKind); PermanentDataCache = _characterDataFactory.BuildCharacterData(PermanentDataCache, unprocessedObject.ObjectKind, unprocessedObject.Address); @@ -130,7 +130,7 @@ namespace MareSynchronos.Managers { Logger.Verbose("RedrawEvent for addr " + address); - foreach (var item in playerAttachedObjects) + foreach (var item in playerRelatedObjects) { if (address == item.Address) { @@ -139,7 +139,7 @@ namespace MareSynchronos.Managers } } - if (playerAttachedObjects.Any(c => c.HasUnprocessedUpdate)) + if (playerRelatedObjects.Any(c => c.HasUnprocessedUpdate)) { OnPlayerOrAttachedObjectsChanged(); } @@ -149,7 +149,7 @@ namespace MareSynchronos.Managers { if (_dalamudUtil.IsInGpose) return; - var unprocessedObjects = playerAttachedObjects.Where(c => c.HasUnprocessedUpdate); + var unprocessedObjects = playerRelatedObjects.Where(c => c.HasUnprocessedUpdate); foreach (var unprocessedObject in unprocessedObjects) { unprocessedObject.IsProcessing = true; diff --git a/MareSynchronos/Models/PlayerAttachedObject.cs b/MareSynchronos/Models/PlayerRelatedObject.cs similarity index 95% rename from MareSynchronos/Models/PlayerAttachedObject.cs rename to MareSynchronos/Models/PlayerRelatedObject.cs index 87d06e5..fcf8606 100644 --- a/MareSynchronos/Models/PlayerAttachedObject.cs +++ b/MareSynchronos/Models/PlayerRelatedObject.cs @@ -7,7 +7,7 @@ using Penumbra.GameData.ByteString; namespace MareSynchronos.Models { - internal class PlayerOrRelatedObject + internal class PlayerRelatedObject { private readonly Func getAddress; @@ -21,7 +21,7 @@ namespace MareSynchronos.Models private IntPtr CurrentAddress => getAddress.Invoke(); - public PlayerOrRelatedObject(ObjectKind objectKind, IntPtr address, IntPtr drawObjectAddress, Func getAddress) + public PlayerRelatedObject(ObjectKind objectKind, IntPtr address, IntPtr drawObjectAddress, Func getAddress) { ObjectKind = objectKind; Address = address; diff --git a/MareSynchronos/Utils/DalamudUtil.cs b/MareSynchronos/Utils/DalamudUtil.cs index b8f2318..9cc4721 100644 --- a/MareSynchronos/Utils/DalamudUtil.cs +++ b/MareSynchronos/Utils/DalamudUtil.cs @@ -114,18 +114,6 @@ namespace MareSynchronos.Utils return (Dalamud.Game.ClientState.Objects.Types.Character)objTableObj; } - internal unsafe int GetIdxBasedOnPtr(FFXIVClientStructs.FFXIV.Client.Game.Character.Character* pet) - { - var idx = 0; - foreach (var item in _objectTable) - { - if (item.Address == (IntPtr)pet) return idx; - idx++; - } - - return -1; - } - public PlayerCharacter? GetPlayerCharacterFromObjectTableByName(string characterName) { foreach (var item in _objectTable) @@ -137,12 +125,6 @@ namespace MareSynchronos.Utils return null; } - public unsafe void DebugPrintRenderFlags(IntPtr characterAddress) - { - var obj = (GameObject*)characterAddress; - Logger.Verbose("RenderFlags for " + characterAddress + ": " + Convert.ToString(obj->RenderFlags, 2)); - } - public unsafe void WaitWhileCharacterIsDrawing(IntPtr characterAddress, CancellationToken? ct = null) { if (!_clientState.IsLoggedIn) return; diff --git a/MareSynchronos/WebAPI/ApIController.Functions.Files.cs b/MareSynchronos/WebAPI/ApIController.Functions.Files.cs index 110de12..368c8c8 100644 --- a/MareSynchronos/WebAPI/ApIController.Functions.Files.cs +++ b/MareSynchronos/WebAPI/ApIController.Functions.Files.cs @@ -19,10 +19,10 @@ namespace MareSynchronos.WebAPI private int _downloadId = 0; public void CancelUpload() { - if (_uploadToken != null) + if (_uploadCancellationTokenSource != null) { Logger.Debug("Cancelling upload"); - _uploadToken?.Cancel(); + _uploadCancellationTokenSource?.Cancel(); _mareHub!.SendAsync(Api.SendFileAbortUpload); CurrentUploads.Clear(); } @@ -123,8 +123,8 @@ namespace MareSynchronos.WebAPI Logger.Debug("Sending Character data to service " + ApiUri); CancelUpload(); - _uploadToken = new CancellationTokenSource(); - var uploadToken = _uploadToken.Token; + _uploadCancellationTokenSource = new CancellationTokenSource(); + var uploadToken = _uploadCancellationTokenSource.Token; Logger.Verbose("New Token Created"); var filesToUpload = await _mareHub!.InvokeAsync>(Api.InvokeFileSendFiles, character.FileReplacements.SelectMany(c => c.Value.Select(v => v.Hash)).Distinct(), uploadToken); @@ -204,7 +204,7 @@ namespace MareSynchronos.WebAPI } Logger.Verbose("Upload complete for " + character.GetHashCode()); - _uploadToken = null; + _uploadCancellationTokenSource = null; } private async Task<(string, byte[])> GetCompressedFileData(string fileHash, CancellationToken uploadToken) diff --git a/MareSynchronos/WebAPI/ApiController.Connectivity.cs b/MareSynchronos/WebAPI/ApiController.Connectivity.cs index 7130caf..2671a1e 100644 --- a/MareSynchronos/WebAPI/ApiController.Connectivity.cs +++ b/MareSynchronos/WebAPI/ApiController.Connectivity.cs @@ -37,7 +37,7 @@ namespace MareSynchronos.WebAPI private HubConnection? _mareHub; - private CancellationTokenSource? _uploadToken = new(); + private CancellationTokenSource? _uploadCancellationTokenSource = new(); private ConnectionDto? _connectionDto; public SystemInfoDto SystemInfoDto { get; private set; } = new(); @@ -268,7 +268,7 @@ namespace MareSynchronos.WebAPI { CurrentUploads.Clear(); CurrentDownloads.Clear(); - _uploadToken?.Cancel(); + _uploadCancellationTokenSource?.Cancel(); Logger.Debug("Connection closed"); Disconnected?.Invoke(); return Task.CompletedTask; @@ -286,7 +286,7 @@ namespace MareSynchronos.WebAPI { CurrentUploads.Clear(); CurrentDownloads.Clear(); - _uploadToken?.Cancel(); + _uploadCancellationTokenSource?.Cancel(); Logger.Debug("Connection closed... Reconnecting"); Disconnected?.Invoke(); return Task.CompletedTask;