check for modified game files on connection and throw an error

This commit is contained in:
rootdarkarchon
2024-03-11 16:46:36 +01:00
parent c28d9a114a
commit 5b925ac358
2 changed files with 11 additions and 0 deletions

View File

@@ -22,6 +22,7 @@ public class DalamudUtilService : IHostedService, IMediatorSubscriber
private readonly List<uint> _classJobIdsIgnoredForPets = [30];
private readonly IClientState _clientState;
private readonly ICondition _condition;
private readonly IDataManager _gameData;
private readonly IFramework _framework;
private readonly IGameGui _gameGui;
private readonly ILogger<DalamudUtilService> _logger;
@@ -46,6 +47,7 @@ public class DalamudUtilService : IHostedService, IMediatorSubscriber
_framework = framework;
_gameGui = gameGui;
_condition = condition;
_gameData = gameData;
Mediator = mediator;
_performanceCollector = performanceCollector;
WorldData = new(() =>
@@ -77,6 +79,7 @@ public class DalamudUtilService : IHostedService, IMediatorSubscriber
public bool IsOnFrameworkThread => _framework.IsInFrameworkUpdateThread;
public bool IsZoning => _condition[ConditionFlag.BetweenAreas] || _condition[ConditionFlag.BetweenAreas51];
public bool IsInCombatOrPerforming { get; private set; } = false;
public bool HasModifiedGameFiles => _gameData.HasModifiedGameDataFiles;
public Lazy<Dictionary<ushort, string>> WorldData { get; private set; }

View File

@@ -204,6 +204,14 @@ public sealed partial class ApiController : DisposableMediatorSubscriberBase, IM
Dalamud.Interface.Internal.Notifications.NotificationType.Warning));
}
if (_dalamudUtil.HasModifiedGameFiles)
{
Mediator.Publish(new NotificationMessage("Modified Game Files detected",
"Mare has detected modified game files in your FFXIV installation. You will be able to connect, but the synchronization functionality might be (partially) broken. " +
"Exit the game and repair it through XIVLauncher to get rid of this message.",
Dalamud.Interface.Internal.Notifications.NotificationType.Error));
}
await LoadIninitialPairs().ConfigureAwait(false);
await LoadOnlinePairs().ConfigureAwait(false);
}