diff --git a/CustomizePlus/Configuration/Services/Temporary/Version3ConfigFixer.cs b/CustomizePlus/Configuration/Services/Temporary/Version3ConfigFixer.cs new file mode 100644 index 0000000..1193a16 --- /dev/null +++ b/CustomizePlus/Configuration/Services/Temporary/Version3ConfigFixer.cs @@ -0,0 +1,35 @@ +using CustomizePlus.Core.Services; +using OtterGui.Log; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CustomizePlus.Configuration.Services.Temporary; + +//V3 has bug when it doesn't create config file. We need to have one to migrate stuff properly. +internal class Version3ConfigFixer +{ + private readonly Logger _logger; + private readonly FilenameService _filenameService; + + public Version3ConfigFixer( + Logger logger, + FilenameService filenameService) + { + _logger = logger; + _filenameService = filenameService; + } + + public void FixV3ConfigIfNeeded() + { + var oldVersionProfiles = Directory.EnumerateFiles(_filenameService.ConfigDirectory, "*.profile", SearchOption.TopDirectoryOnly); + if (oldVersionProfiles.Count() > 0 && !File.Exists(_filenameService.ConfigFile)) + { + _logger.Warning("V3 config not found while profiles are available, creating dummy V3 config"); + File.WriteAllText(_filenameService.ConfigFile, "{\r\n \"ViewedMessageWindows\": [],\r\n \"Version\": 3,\r\n \"PluginEnabled\": true,\r\n \"DebuggingModeEnabled\": false,\r\n \"RootPositionEditingEnabled\": false\r\n}"); + } + } +} diff --git a/CustomizePlus/Core/ServiceManager.cs b/CustomizePlus/Core/ServiceManager.cs index b7eef44..520f89e 100644 --- a/CustomizePlus/Core/ServiceManager.cs +++ b/CustomizePlus/Core/ServiceManager.cs @@ -147,7 +147,8 @@ public static class ServiceManager services .AddSingleton() .AddSingleton() - .AddSingleton(); + .AddSingleton() + .AddSingleton(); return services; } diff --git a/CustomizePlus/Plugin.cs b/CustomizePlus/Plugin.cs index 9b470b6..5e92882 100644 --- a/CustomizePlus/Plugin.cs +++ b/CustomizePlus/Plugin.cs @@ -33,6 +33,9 @@ public sealed class Plugin : IDalamudPlugin var configMover = _services.GetRequiredService(); configMover.MoveConfigsIfNeeded(); + var v3ConfigFixer = _services.GetRequiredService(); + v3ConfigFixer.FixV3ConfigIfNeeded(); + _services.GetRequiredService(); _services.GetRequiredService(); _services.GetRequiredService();