diff --git a/MareSynchronos/Services/DalamudUtilService.cs b/MareSynchronos/Services/DalamudUtilService.cs index 8a14334..2c3a4cd 100644 --- a/MareSynchronos/Services/DalamudUtilService.cs +++ b/MareSynchronos/Services/DalamudUtilService.cs @@ -22,6 +22,7 @@ public class DalamudUtilService : IHostedService, IMediatorSubscriber private readonly List _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 _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> WorldData { get; private set; } diff --git a/MareSynchronos/WebAPI/SignalR/ApiController.cs b/MareSynchronos/WebAPI/SignalR/ApiController.cs index dbe3a2a..ce7ba12 100644 --- a/MareSynchronos/WebAPI/SignalR/ApiController.cs +++ b/MareSynchronos/WebAPI/SignalR/ApiController.cs @@ -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); }