stop processing framework queue while in gpose
This commit is contained in:
@@ -163,16 +163,6 @@ public class CachedPlayer
|
|||||||
ApplyBaseData(moddedPaths);
|
ApplyBaseData(moddedPaths);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_dalamudUtil.IsInGpose)
|
|
||||||
{
|
|
||||||
Logger.Verbose("Player is in GPose, waiting");
|
|
||||||
while (_dalamudUtil.IsInGpose)
|
|
||||||
{
|
|
||||||
await Task.Delay(TimeSpan.FromSeconds(0.5));
|
|
||||||
downloadToken.ThrowIfCancellationRequested();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (var kind in objectKind)
|
foreach (var kind in objectKind)
|
||||||
{
|
{
|
||||||
ApplyCustomizationData(kind);
|
ApplyCustomizationData(kind);
|
||||||
|
|||||||
@@ -198,30 +198,6 @@ public class OnlinePlayerManager : IDisposable
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_dalamudUtil.IsInGpose)
|
|
||||||
{
|
|
||||||
_playerTokenDisposal.TryGetValue(cachedPlayer, out var cancellationTokenSource);
|
|
||||||
cancellationTokenSource?.Cancel();
|
|
||||||
cachedPlayer.IsVisible = false;
|
|
||||||
_playerTokenDisposal[cachedPlayer] = new CancellationTokenSource();
|
|
||||||
cancellationTokenSource = _playerTokenDisposal[cachedPlayer];
|
|
||||||
var token = cancellationTokenSource.Token;
|
|
||||||
Task.Run(async () =>
|
|
||||||
{
|
|
||||||
Logger.Verbose("Cannot dispose Player, in GPose");
|
|
||||||
while (_dalamudUtil.IsInGpose)
|
|
||||||
{
|
|
||||||
await Task.Delay(TimeSpan.FromSeconds(0.5));
|
|
||||||
if (token.IsCancellationRequested) return;
|
|
||||||
}
|
|
||||||
|
|
||||||
cachedPlayer.DisposePlayer();
|
|
||||||
_onlineCachedPlayers.TryRemove(characterHash, out _);
|
|
||||||
}, token);
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
cachedPlayer.DisposePlayer();
|
cachedPlayer.DisposePlayer();
|
||||||
_onlineCachedPlayers.TryRemove(characterHash, out _);
|
_onlineCachedPlayers.TryRemove(characterHash, out _);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -165,8 +165,6 @@ namespace MareSynchronos.Managers
|
|||||||
|
|
||||||
private void OnPlayerOrAttachedObjectsChanged()
|
private void OnPlayerOrAttachedObjectsChanged()
|
||||||
{
|
{
|
||||||
if (_dalamudUtil.IsInGpose) return;
|
|
||||||
|
|
||||||
var unprocessedObjects = playerRelatedObjects.Where(c => c.HasUnprocessedUpdate).ToList();
|
var unprocessedObjects = playerRelatedObjects.Where(c => c.HasUnprocessedUpdate).ToList();
|
||||||
foreach (var unprocessedObject in unprocessedObjects)
|
foreach (var unprocessedObject in unprocessedObjects)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ namespace MareSynchronos.Utils
|
|||||||
|
|
||||||
private void FrameworkOnUpdate(Framework framework)
|
private void FrameworkOnUpdate(Framework framework)
|
||||||
{
|
{
|
||||||
if (_condition[ConditionFlag.BetweenAreas] || _condition[ConditionFlag.BetweenAreas51])
|
if (_condition[ConditionFlag.BetweenAreas] || _condition[ConditionFlag.BetweenAreas51] || IsInGpose)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user