diff --git a/Dalamud/Configuration/DalamudConfiguration.cs b/Dalamud/Configuration/DalamudConfiguration.cs index e21397326..7a1671cc2 100644 --- a/Dalamud/Configuration/DalamudConfiguration.cs +++ b/Dalamud/Configuration/DalamudConfiguration.cs @@ -31,12 +31,21 @@ namespace Dalamud public string LastVersion { get; set; } + [JsonIgnore] + public string ConfigPath; + public static DalamudConfiguration Load(string path) { - return JsonConvert.DeserializeObject(File.ReadAllText(path)); + var deserialized = JsonConvert.DeserializeObject(File.ReadAllText(path)); + deserialized.ConfigPath = path; + + return deserialized; } - public void Save(string path) { - File.WriteAllText(path, JsonConvert.SerializeObject(this, Formatting.Indented)); + /// + /// Save the configuration at the path it was loaded from. + /// + public void Save() { + File.WriteAllText(this.ConfigPath, JsonConvert.SerializeObject(this, Formatting.Indented)); } } } diff --git a/Dalamud/Dalamud.cs b/Dalamud/Dalamud.cs index c56d481c3..ce6399cb0 100644 --- a/Dalamud/Dalamud.cs +++ b/Dalamud/Dalamud.cs @@ -501,7 +501,7 @@ namespace Dalamud { this.Configuration.BadWords.Add(arguments); - this.Configuration.Save(this.StartInfo.ConfigurationPath); + this.Configuration.Save(); Framework.Gui.Chat.Print(string.Format(Loc.Localize("DalamudMuted", "Muted \"{0}\"."), arguments)); } @@ -515,7 +515,7 @@ namespace Dalamud { return; } - this.Configuration.Save(this.StartInfo.ConfigurationPath); + this.Configuration.Save(); foreach (var word in this.Configuration.BadWords) Framework.Gui.Chat.Print($"\"{word}\""); } @@ -526,7 +526,7 @@ namespace Dalamud { this.Configuration.BadWords.RemoveAll(x => x == arguments); - this.Configuration.Save(this.StartInfo.ConfigurationPath); + this.Configuration.Save(); Framework.Gui.Chat.Print(string.Format(Loc.Localize("DalamudUnmuted", "Unmuted \"{0}\"."), arguments)); } @@ -622,7 +622,7 @@ namespace Dalamud { Framework.Gui.Chat.Print($"Set bonus notifications for {argParts[0]}({rouletteIndex}) to {role}"); Framework.Gui.Chat.Print(string.Format(Loc.Localize("DalamudBonusSet", "Set bonus notifications for {0}({1}) to {2}"), argParts[0], rouletteIndex, role)); - this.Configuration.Save(this.StartInfo.ConfigurationPath); + this.Configuration.Save(); return; @@ -659,7 +659,7 @@ namespace Dalamud { this.Configuration.LanguageOverride = null; } - this.Configuration.Save(this.StartInfo.ConfigurationPath); + this.Configuration.Save(); } private int RouletteSlugToKey(string slug) => slug.ToLower() switch { diff --git a/Dalamud/Game/ChatHandlers.cs b/Dalamud/Game/ChatHandlers.cs index 739e1d40e..3c2d59474 100644 --- a/Dalamud/Game/ChatHandlers.cs +++ b/Dalamud/Game/ChatHandlers.cs @@ -119,7 +119,7 @@ namespace Dalamud.Game { }); this.dalamud.Configuration.LastVersion = assemblyVersion; - this.dalamud.Configuration.Save(this.dalamud.StartInfo.ConfigurationPath); + this.dalamud.Configuration.Save(); } try {