connectivity fixes
This commit is contained in:
@@ -426,7 +426,9 @@ public class CachedPlayer
|
|||||||
_penumbraRedrawEventTask = Task.Run(() =>
|
_penumbraRedrawEventTask = Task.Run(() =>
|
||||||
{
|
{
|
||||||
PlayerCharacter = player;
|
PlayerCharacter = player;
|
||||||
_dalamudUtil.WaitWhileCharacterIsDrawing(PlayerCharacter.Address);
|
using var cts = new CancellationTokenSource();
|
||||||
|
cts.CancelAfter(TimeSpan.FromSeconds(5));
|
||||||
|
_dalamudUtil.WaitWhileCharacterIsDrawing(PlayerCharacter.Address, cts.Token);
|
||||||
|
|
||||||
if (RequestedPenumbraRedraw == false)
|
if (RequestedPenumbraRedraw == false)
|
||||||
{
|
{
|
||||||
@@ -445,9 +447,9 @@ public class CachedPlayer
|
|||||||
private void OnPlayerChanged()
|
private void OnPlayerChanged()
|
||||||
{
|
{
|
||||||
Logger.Debug($"Player {PlayerName} changed, PenumbraRedraw is {RequestedPenumbraRedraw}");
|
Logger.Debug($"Player {PlayerName} changed, PenumbraRedraw is {RequestedPenumbraRedraw}");
|
||||||
|
_currentCharacterEquipment!.HasUnprocessedUpdate = false;
|
||||||
if (!RequestedPenumbraRedraw && PlayerCharacter is not null)
|
if (!RequestedPenumbraRedraw && PlayerCharacter is not null)
|
||||||
{
|
{
|
||||||
_currentCharacterEquipment!.HasUnprocessedUpdate = false;
|
|
||||||
Logger.Debug($"Saving new Glamourer data");
|
Logger.Debug($"Saving new Glamourer data");
|
||||||
_lastGlamourerData = _ipcManager.GlamourerGetCharacterCustomization(PlayerCharacter!);
|
_lastGlamourerData = _ipcManager.GlamourerGetCharacterCustomization(PlayerCharacter!);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<Authors></Authors>
|
<Authors></Authors>
|
||||||
<Company></Company>
|
<Company></Company>
|
||||||
<Version>0.3.8</Version>
|
<Version>0.3.9</Version>
|
||||||
<Description></Description>
|
<Description></Description>
|
||||||
<Copyright></Copyright>
|
<Copyright></Copyright>
|
||||||
<PackageProjectUrl>https://github.com/Penumbra-Sync/client</PackageProjectUrl>
|
<PackageProjectUrl>https://github.com/Penumbra-Sync/client</PackageProjectUrl>
|
||||||
|
|||||||
@@ -60,17 +60,11 @@ namespace MareSynchronos.Models
|
|||||||
HasUnprocessedUpdate = true;
|
HasUnprocessedUpdate = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else if (Address != IntPtr.Zero || DrawObjectAddress != IntPtr.Zero)
|
||||||
{
|
{
|
||||||
if (Address != IntPtr.Zero || DrawObjectAddress != IntPtr.Zero)
|
|
||||||
{
|
|
||||||
Address = IntPtr.Zero;
|
|
||||||
DrawObjectAddress = IntPtr.Zero;
|
|
||||||
HasUnprocessedUpdate = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Address = IntPtr.Zero;
|
Address = IntPtr.Zero;
|
||||||
DrawObjectAddress = IntPtr.Zero;
|
DrawObjectAddress = IntPtr.Zero;
|
||||||
|
Logger.Verbose(ObjectKind + " Changed: " + _name + ", now: " + Address + ", " + DrawObjectAddress);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -137,16 +137,19 @@ namespace MareSynchronos.WebAPI
|
|||||||
|
|
||||||
public async Task CreateConnections()
|
public async Task CreateConnections()
|
||||||
{
|
{
|
||||||
await StopConnection(_connectionCancellationTokenSource.Token);
|
Logger.Debug("CreateConnections called");
|
||||||
|
|
||||||
if (_pluginConfiguration.FullPause)
|
if (_pluginConfiguration.FullPause)
|
||||||
{
|
{
|
||||||
Logger.Info("Not recreating Connection, paused");
|
Logger.Info("Not recreating Connection, paused");
|
||||||
ServerState = ServerState.Disconnected;
|
ServerState = ServerState.Disconnected;
|
||||||
_connectionDto = null;
|
_connectionDto = null;
|
||||||
|
await StopConnection(_connectionCancellationTokenSource.Token);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
await StopConnection(_connectionCancellationTokenSource.Token);
|
||||||
|
|
||||||
Logger.Info("Recreating Connection");
|
Logger.Info("Recreating Connection");
|
||||||
|
|
||||||
_connectionCancellationTokenSource.Cancel();
|
_connectionCancellationTokenSource.Cancel();
|
||||||
@@ -198,7 +201,6 @@ namespace MareSynchronos.WebAPI
|
|||||||
await InitializeData(token);
|
await InitializeData(token);
|
||||||
|
|
||||||
_mareHub.Closed += MareHubOnClosed;
|
_mareHub.Closed += MareHubOnClosed;
|
||||||
_mareHub.Reconnected += MareHubOnReconnected;
|
|
||||||
_mareHub.Reconnecting += MareHubOnReconnecting;
|
_mareHub.Reconnecting += MareHubOnReconnecting;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -314,24 +316,15 @@ namespace MareSynchronos.WebAPI
|
|||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task MareHubOnReconnected(string? arg)
|
|
||||||
{
|
|
||||||
Logger.Info("Connection restored");
|
|
||||||
await Task.Delay(TimeSpan.FromSeconds(new Random().Next(5, 10)));
|
|
||||||
|
|
||||||
_ = Task.Run(CreateConnections);
|
|
||||||
}
|
|
||||||
|
|
||||||
private Task MareHubOnReconnecting(Exception? arg)
|
private Task MareHubOnReconnecting(Exception? arg)
|
||||||
{
|
{
|
||||||
CurrentUploads.Clear();
|
|
||||||
CurrentDownloads.Clear();
|
|
||||||
_uploadCancellationTokenSource?.Cancel();
|
|
||||||
ServerState = ServerState.Disconnected;
|
ServerState = ServerState.Disconnected;
|
||||||
Logger.Warn("Connection closed... Reconnecting");
|
Logger.Warn("Connection closed... Reconnecting");
|
||||||
Logger.Warn(arg?.Message ?? string.Empty);
|
Logger.Warn(arg?.Message ?? string.Empty);
|
||||||
Logger.Warn(arg?.StackTrace ?? string.Empty);
|
Logger.Warn(arg?.StackTrace ?? string.Empty);
|
||||||
Disconnected?.Invoke();
|
Disconnected?.Invoke();
|
||||||
|
ServerState = ServerState.Offline;
|
||||||
|
_ = Task.Run(CreateConnections);
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -340,11 +333,14 @@ namespace MareSynchronos.WebAPI
|
|||||||
if (_mareHub is not null)
|
if (_mareHub is not null)
|
||||||
{
|
{
|
||||||
Logger.Info("Stopping existing connection");
|
Logger.Info("Stopping existing connection");
|
||||||
await _mareHub.StopAsync(token);
|
|
||||||
_mareHub.Closed -= MareHubOnClosed;
|
_mareHub.Closed -= MareHubOnClosed;
|
||||||
_mareHub.Reconnected -= MareHubOnReconnected;
|
|
||||||
_mareHub.Reconnecting += MareHubOnReconnecting;
|
_mareHub.Reconnecting += MareHubOnReconnecting;
|
||||||
|
await _mareHub.StopAsync(token);
|
||||||
await _mareHub.DisposeAsync();
|
await _mareHub.DisposeAsync();
|
||||||
|
CurrentUploads.Clear();
|
||||||
|
CurrentDownloads.Clear();
|
||||||
|
_uploadCancellationTokenSource?.Cancel();
|
||||||
|
Disconnected?.Invoke();
|
||||||
_mareHub = null;
|
_mareHub = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user