diff --git a/MareSynchronos/Interop/Ipc/IpcManager.cs b/MareSynchronos/Interop/Ipc/IpcManager.cs index 03a6770..47d7709 100644 --- a/MareSynchronos/Interop/Ipc/IpcManager.cs +++ b/MareSynchronos/Interop/Ipc/IpcManager.cs @@ -44,15 +44,21 @@ public sealed partial class IpcManager : DisposableMediatorSubscriberBase public IpcCallerPetNames PetNames { get; } public IpcCallerMoodles Moodles { get; } + private int _stateCheckCounter = -1; + private void PeriodicApiStateCheck() { - Penumbra.CheckAPI(); - Penumbra.CheckModDirectory(); - Glamourer.CheckAPI(); - Heels.CheckAPI(); - CustomizePlus.CheckAPI(); - Honorific.CheckAPI(); - PetNames.CheckAPI(); - Moodles.CheckAPI(); + // Stagger API checks + if (++_stateCheckCounter > 7) + _stateCheckCounter = 0; + int i = _stateCheckCounter; + if (i == 0) Penumbra.CheckAPI(); + if (i == 1) Penumbra.CheckModDirectory(); + if (i == 2) Glamourer.CheckAPI(); + if (i == 3) Heels.CheckAPI(); + if (i == 4) CustomizePlus.CheckAPI(); + if (i == 5) Honorific.CheckAPI(); + if (i == 6) PetNames.CheckAPI(); + if (i == 7) Moodles.CheckAPI(); } } \ No newline at end of file diff --git a/MareSynchronos/PlayerData/Handlers/PairHandler.cs b/MareSynchronos/PlayerData/Handlers/PairHandler.cs index 5a2a226..e277fcf 100644 --- a/MareSynchronos/PlayerData/Handlers/PairHandler.cs +++ b/MareSynchronos/PlayerData/Handlers/PairHandler.cs @@ -642,11 +642,11 @@ public sealed class PairHandler : DisposableMediatorSubscriberBase if (_charaHandler?.Address != nint.Zero && !IsVisible) { - Guid appData = Guid.NewGuid(); IsVisible = true; Mediator.Publish(new PairHandlerVisibleMessage(this)); if (_cachedData != null) { + Guid appData = Guid.NewGuid(); Logger.LogTrace("[BASE-{appBase}] {this} visibility changed, now: {visi}, cached data exists", appData, this, IsVisible); _ = Task.Run(() => diff --git a/MareSynchronos/PlayerData/Services/CacheCreationService.cs b/MareSynchronos/PlayerData/Services/CacheCreationService.cs index fc05e09..ca93dc8 100644 --- a/MareSynchronos/PlayerData/Services/CacheCreationService.cs +++ b/MareSynchronos/PlayerData/Services/CacheCreationService.cs @@ -169,7 +169,7 @@ public sealed class CacheCreationService : DisposableMediatorSubscriberBase _ = Task.Run(async () => { - await Task.Delay(TimeSpan.FromSeconds(1), token).ConfigureAwait(false); + await Task.Delay(TimeSpan.FromMilliseconds(500), token).ConfigureAwait(false); await AddPlayerCacheToCreate(kind).ConfigureAwait(false); }); } @@ -183,7 +183,7 @@ public sealed class CacheCreationService : DisposableMediatorSubscriberBase _ = Task.Run(async () => { - await Task.Delay(TimeSpan.FromSeconds(3), token).ConfigureAwait(false); + await Task.Delay(TimeSpan.FromSeconds(1), token).ConfigureAwait(false); await AddPlayerCacheToCreate().ConfigureAwait(false); }, token); } @@ -197,7 +197,7 @@ public sealed class CacheCreationService : DisposableMediatorSubscriberBase _ = Task.Run(async () => { - await Task.Delay(TimeSpan.FromSeconds(3), token).ConfigureAwait(false); + await Task.Delay(TimeSpan.FromSeconds(1), token).ConfigureAwait(false); await AddPlayerCacheToCreate().ConfigureAwait(false); }, token); } @@ -211,7 +211,7 @@ public sealed class CacheCreationService : DisposableMediatorSubscriberBase _ = Task.Run(async () => { - await Task.Delay(TimeSpan.FromSeconds(2), token).ConfigureAwait(false); + await Task.Delay(TimeSpan.FromSeconds(1), token).ConfigureAwait(false); await AddPlayerCacheToCreate().ConfigureAwait(false); }, token); } diff --git a/MareSynchronos/Services/DalamudUtilService.cs b/MareSynchronos/Services/DalamudUtilService.cs index 17be050..0b7ee22 100644 --- a/MareSynchronos/Services/DalamudUtilService.cs +++ b/MareSynchronos/Services/DalamudUtilService.cs @@ -482,7 +482,7 @@ public class DalamudUtilService : IHostedService, IMediatorSubscriber return; } - bool isNormalFrameworkUpdate = DateTime.UtcNow < _delayedFrameworkUpdateCheck.AddSeconds(1); + bool isNormalFrameworkUpdate = DateTime.UtcNow < _delayedFrameworkUpdateCheck.AddMilliseconds(200); _performanceCollector.LogPerformance(this, $"FrameworkOnUpdateInternal+{(isNormalFrameworkUpdate ? "Regular" : "Delayed")}", () => {