rework the whole connection garbage/custom servers, other cleanups/refactors
This commit is contained in:
		| @@ -11,7 +11,6 @@ using MareSynchronos.FileCacheDB; | ||||
| using MareSynchronos.Managers; | ||||
| using MareSynchronos.Utils; | ||||
| using MareSynchronos.WebAPI; | ||||
| using Penumbra.PlayerWatch; | ||||
|  | ||||
| namespace MareSynchronos.Models; | ||||
|  | ||||
| @@ -20,16 +19,14 @@ public class CachedPlayer | ||||
|     private readonly DalamudUtil _dalamudUtil; | ||||
|     private readonly IpcManager _ipcManager; | ||||
|     private readonly ApiController _apiController; | ||||
|     private readonly IPlayerWatcher _watcher; | ||||
|     private bool _isVisible; | ||||
|  | ||||
|     public CachedPlayer(string nameHash, IpcManager ipcManager, ApiController apiController, DalamudUtil dalamudUtil, IPlayerWatcher watcher) | ||||
|     public CachedPlayer(string nameHash, IpcManager ipcManager, ApiController apiController, DalamudUtil dalamudUtil) | ||||
|     { | ||||
|         PlayerNameHash = nameHash; | ||||
|         _ipcManager = ipcManager; | ||||
|         _apiController = apiController; | ||||
|         _dalamudUtil = dalamudUtil; | ||||
|         _watcher = watcher; | ||||
|     } | ||||
|  | ||||
|     public bool IsVisible | ||||
| @@ -165,7 +162,7 @@ public class CachedPlayer | ||||
|             _downloadCancellationTokenSource?.Cancel(); | ||||
|             _downloadCancellationTokenSource?.Dispose(); | ||||
|             _downloadCancellationTokenSource = null; | ||||
|             _watcher.RemovePlayerFromWatch(PlayerName); | ||||
|             _dalamudUtil.RemovePlayerFromWatch(PlayerName); | ||||
|             _ipcManager.PenumbraRemoveTemporaryCollection(PlayerName); | ||||
|             _ipcManager.GlamourerRevertCharacterCustomization(PlayerName); | ||||
|             _ipcManager.GlamourerApplyOnlyCustomization(_originalGlamourerData, PlayerName); | ||||
| @@ -177,7 +174,7 @@ public class CachedPlayer | ||||
|         } | ||||
|         finally | ||||
|         { | ||||
|             _watcher.PlayerChanged -= WatcherOnPlayerChanged; | ||||
|             _dalamudUtil.PlayerChanged -= WatcherOnPlayerChanged; | ||||
|             _ipcManager.PenumbraRedrawEvent -= IpcManagerOnPenumbraRedrawEvent; | ||||
|             _apiController.CharacterReceived -= ApiControllerOnCharacterReceived; | ||||
|             PlayerName = string.Empty; | ||||
| @@ -191,8 +188,8 @@ public class CachedPlayer | ||||
|         PlayerName = character.Name.ToString(); | ||||
|         PlayerCharacter = character; | ||||
|         Logger.Debug("Initializing Player " + this); | ||||
|         _watcher.AddPlayerToWatch(PlayerName!); | ||||
|         _watcher.PlayerChanged += WatcherOnPlayerChanged; | ||||
|         _dalamudUtil.AddPlayerToWatch(PlayerName!); | ||||
|         _dalamudUtil.PlayerChanged += WatcherOnPlayerChanged; | ||||
|         _ipcManager.PenumbraRedrawEvent += IpcManagerOnPenumbraRedrawEvent; | ||||
|         _apiController.CharacterReceived += ApiControllerOnCharacterReceived; | ||||
|         _originalGlamourerData = _ipcManager.GlamourerGetCharacterCustomization(PlayerName); | ||||
| @@ -203,15 +200,15 @@ public class CachedPlayer | ||||
|         return PlayerNameHash + ":" + PlayerName + ":HasChar " + (PlayerCharacter != null); | ||||
|     } | ||||
|  | ||||
|     private Task? penumbraRedrawEventTask; | ||||
|     private Task? _penumbraRedrawEventTask; | ||||
|  | ||||
|     private void IpcManagerOnPenumbraRedrawEvent(object? sender, EventArgs e) | ||||
|     { | ||||
|         var player = _dalamudUtil.GetPlayerCharacterFromObjectTableIndex((int)sender!); | ||||
|         if (player == null || player.Name.ToString() != PlayerName) return; | ||||
|         if (!penumbraRedrawEventTask?.IsCompleted ?? false) return; | ||||
|         if (!_penumbraRedrawEventTask?.IsCompleted ?? false) return; | ||||
|  | ||||
|         penumbraRedrawEventTask = Task.Run(() => | ||||
|         _penumbraRedrawEventTask = Task.Run(() => | ||||
|         { | ||||
|             PlayerCharacter = player; | ||||
|             _dalamudUtil.WaitWhileCharacterIsDrawing(PlayerCharacter.Address); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Stanley Dimant
					Stanley Dimant