From dc960c5f6f0b5152d143efc112cc53550a46b855 Mon Sep 17 00:00:00 2001 From: goat Date: Sat, 19 Oct 2019 02:27:23 +0900 Subject: [PATCH] Apply new configuration scheme to everything --- Dalamud/Configuration/DalamudConfiguration.cs | 8 +++ Dalamud/Dalamud.cs | 55 +++++++++++-------- Dalamud/Game/ChatHandlers.cs | 5 +- Dalamud/Game/Internal/Framework.cs | 1 - Dalamud/Game/Network/NetworkHandlers.cs | 5 +- Dalamud/Settings/PersistentSettings.cs | 50 ----------------- 6 files changed, 45 insertions(+), 79 deletions(-) delete mode 100644 Dalamud/Settings/PersistentSettings.cs diff --git a/Dalamud/Configuration/DalamudConfiguration.cs b/Dalamud/Configuration/DalamudConfiguration.cs index 32f2c0bd9..ebc5106c6 100644 --- a/Dalamud/Configuration/DalamudConfiguration.cs +++ b/Dalamud/Configuration/DalamudConfiguration.cs @@ -18,6 +18,14 @@ namespace Dalamud public List BadWords { get; set; } + public class FateInfo { + public string Name { get; set; } + public int Id { get; set; } + } + + public List Fates; + + public static DalamudConfiguration Load(string path) { return JsonConvert.DeserializeObject(File.ReadAllText(path)); } diff --git a/Dalamud/Dalamud.cs b/Dalamud/Dalamud.cs index b5013c1de..98708a4c5 100644 --- a/Dalamud/Dalamud.cs +++ b/Dalamud/Dalamud.cs @@ -14,7 +14,6 @@ using Dalamud.Game.Internal; using Dalamud.Game.Internal.Gui; using Dalamud.Game.Network; using Dalamud.Plugin; -using Dalamud.Settings; using Serilog; using XIVLauncher.Dalamud; @@ -218,8 +217,8 @@ namespace Dalamud { } private void OnFateWatchAdd(string command, string arguments) { - if (PersistentSettings.Instance.Fates == null) - PersistentSettings.Instance.Fates = new List(); + if (this.Configuration.Fates == null) + this.Configuration.Fates = new List(); dynamic candidates = XivApi.Search(arguments, "Fate").GetAwaiter().GetResult(); @@ -228,32 +227,36 @@ namespace Dalamud { return; } - var fateInfo = new PersistentSettings.FateInfo { + var fateInfo = new DalamudConfiguration.FateInfo { Id = candidates.Results[0].ID, Name = candidates.Results[0].Name }; - PersistentSettings.Instance.Fates.Add(fateInfo); + this.Configuration.Fates.Add(fateInfo); + + this.Configuration.Save(this.StartInfo.ConfigurationPath); Framework.Gui.Chat.Print($"Added fate \"{fateInfo.Name}\"."); } private void OnFateWatchList(string command, string arguments) { - if (PersistentSettings.Instance.Fates == null) - PersistentSettings.Instance.Fates = new List(); + if (this.Configuration.Fates == null) + this.Configuration.Fates = new List(); - if (PersistentSettings.Instance.Fates.Count == 0) { + if (this.Configuration.Fates.Count == 0) { Framework.Gui.Chat.Print("No fates on your watchlist."); return; } - foreach (var fate in PersistentSettings.Instance.Fates) + this.Configuration.Save(this.StartInfo.ConfigurationPath); + + foreach (var fate in this.Configuration.Fates) Framework.Gui.Chat.Print($"Fate {fate.Id}: {fate.Name}"); } private void OnFateWatchRemove(string command, string arguments) { - if (PersistentSettings.Instance.Fates == null) - PersistentSettings.Instance.Fates = new List(); + if (this.Configuration.Fates == null) + this.Configuration.Fates = new List(); dynamic candidates = XivApi.Search(arguments, "Fate").GetAwaiter().GetResult(); @@ -262,37 +265,45 @@ namespace Dalamud { return; } - PersistentSettings.Instance.Fates.RemoveAll(x => x.Id == candidates.Results[0].ID); + this.Configuration.Fates.RemoveAll(x => x.Id == candidates.Results[0].ID); + + this.Configuration.Save(this.StartInfo.ConfigurationPath); Framework.Gui.Chat.Print($"Removed fate \"{candidates.Results[0].Name}\"."); } private void OnBadWordsAdd(string command, string arguments) { - if (PersistentSettings.Instance.BadWords == null) - PersistentSettings.Instance.BadWords = new List(); + if (this.Configuration.BadWords == null) + this.Configuration.BadWords = new List(); - PersistentSettings.Instance.BadWords.Add(arguments); + this.Configuration.BadWords.Add(arguments); + + this.Configuration.Save(this.StartInfo.ConfigurationPath); Framework.Gui.Chat.Print($"Muted \"{arguments}\"."); } private void OnBadWordsList(string command, string arguments) { - if (PersistentSettings.Instance.BadWords == null) - PersistentSettings.Instance.BadWords = new List(); + if (this.Configuration.BadWords == null) + this.Configuration.BadWords = new List(); - if (PersistentSettings.Instance.BadWords.Count == 0) { + if (this.Configuration.BadWords.Count == 0) { Framework.Gui.Chat.Print("No muted words or sentences."); return; } - foreach (var word in PersistentSettings.Instance.BadWords) Framework.Gui.Chat.Print($"\"{word}\""); + this.Configuration.Save(this.StartInfo.ConfigurationPath); + + foreach (var word in this.Configuration.BadWords) Framework.Gui.Chat.Print($"\"{word}\""); } private void OnBadWordsRemove(string command, string arguments) { - if (PersistentSettings.Instance.BadWords == null) - PersistentSettings.Instance.BadWords = new List(); + if (this.Configuration.BadWords == null) + this.Configuration.BadWords = new List(); - PersistentSettings.Instance.BadWords.RemoveAll(x => x == arguments); + this.Configuration.BadWords.RemoveAll(x => x == arguments); + + this.Configuration.Save(this.StartInfo.ConfigurationPath); Framework.Gui.Chat.Print($"Unmuted \"{arguments}\"."); } diff --git a/Dalamud/Game/ChatHandlers.cs b/Dalamud/Game/ChatHandlers.cs index dab95d694..158527216 100644 --- a/Dalamud/Game/ChatHandlers.cs +++ b/Dalamud/Game/ChatHandlers.cs @@ -5,7 +5,6 @@ using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; using Dalamud.Game.Chat; -using Dalamud.Settings; using Serilog; namespace Dalamud.Game { @@ -81,8 +80,8 @@ namespace Dalamud.Game { var originalMessage = string.Copy(message); - if (PersistentSettings.Instance.BadWords != null && - PersistentSettings.Instance.BadWords.Any(x => originalMessage.Contains(x))) { + if (this.dalamud.Configuration.BadWords != null && + this.dalamud.Configuration.BadWords.Any(x => originalMessage.Contains(x))) { // This seems to be in the user block list - let's not show it Log.Debug("Blocklist triggered"); isHandled = true; diff --git a/Dalamud/Game/Internal/Framework.cs b/Dalamud/Game/Internal/Framework.cs index 547753157..72c41fd3f 100644 --- a/Dalamud/Game/Internal/Framework.cs +++ b/Dalamud/Game/Internal/Framework.cs @@ -1,6 +1,5 @@ using System; using System.Runtime.InteropServices; -using Dalamud.Settings; using Dalamud.Game.Internal.Gui; using Dalamud.Game.Internal.Libc; using Dalamud.Game.Internal.Network; diff --git a/Dalamud/Game/Network/NetworkHandlers.cs b/Dalamud/Game/Network/NetworkHandlers.cs index 02d5c0e2b..eea77eb4c 100644 --- a/Dalamud/Game/Network/NetworkHandlers.cs +++ b/Dalamud/Game/Network/NetworkHandlers.cs @@ -6,7 +6,6 @@ using System.Threading.Tasks; using Dalamud.Game.Network.MarketBoardUploaders; using Dalamud.Game.Network.Structures; using Dalamud.Game.Network.Universalis.MarketBoardUploaders; -using Dalamud.Settings; using Serilog; namespace Dalamud.Game.Network { @@ -46,14 +45,14 @@ namespace Dalamud.Game.Network { } if (opCode == ZoneOpCode.FateSpawn) { - if (PersistentSettings.Instance.Fates == null) + if (this.dalamud.Configuration.Fates == null) return; var data = new byte[64]; Marshal.Copy(dataPtr, data, 0, 64); var fateId = data[16]; - if (PersistentSettings.Instance.Fates.Any(x => x.Id == fateId) && + if (this.dalamud.Configuration.Fates.Any(x => x.Id == fateId) && this.dalamud.BotManager.IsConnected) Task.Run(() => this.dalamud.BotManager.ProcessFate(fateId)); diff --git a/Dalamud/Settings/PersistentSettings.cs b/Dalamud/Settings/PersistentSettings.cs deleted file mode 100644 index 243202586..000000000 --- a/Dalamud/Settings/PersistentSettings.cs +++ /dev/null @@ -1,50 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Reflection; -using System.Text; -using System.Threading.Tasks; -using Newtonsoft.Json; - -namespace Dalamud.Settings -{ - public class PersistentSettings { - private static PersistentSettings _instance = null; - - private static readonly string ConfigPath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "settings.json"); - - public static PersistentSettings Instance { - get { - if (_instance == null) { - if (!File.Exists(ConfigPath)) { - _instance = new PersistentSettings(); - return _instance; - } - - _instance = JsonConvert.DeserializeObject(File.ReadAllText(ConfigPath)); - } - - return _instance; - } - } - - public class FateInfo { - public string Name { get; set; } - public int Id { get; set; } - } - - public List Fates; - - public List BadWords; - - public void Save() { - File.WriteAllText(ConfigPath, JsonConvert.SerializeObject(this)); - } - - public static void Reset() { - _instance = new PersistentSettings(); - Instance.Save(); - } - } -}