From 18847d663d5c29141b500e3aeaf227f0caeb611a Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Wed, 5 Sep 2018 20:51:12 -0500 Subject: [PATCH] Finalized ConfigProvider Incremented version --- IPA.Injector/Properties/AssemblyInfo.cs | 4 ++-- .../Config/ConfigProviders/JsonConfigProvider.cs | 6 ++++++ IPA.Loader/Loader/PluginComponent.cs | 9 +++++++++ IPA.Loader/Loader/PluginManager.cs | 11 ++++++++--- IPA.Loader/Logging/StandardLogger.cs | 1 + IPA.Loader/Updating/SelfPlugin.cs | 2 +- IPA/Properties/AssemblyInfo.cs | 4 ++-- 7 files changed, 29 insertions(+), 8 deletions(-) diff --git a/IPA.Injector/Properties/AssemblyInfo.cs b/IPA.Injector/Properties/AssemblyInfo.cs index 74d9d81a..d88c5e7b 100644 --- a/IPA.Injector/Properties/AssemblyInfo.cs +++ b/IPA.Injector/Properties/AssemblyInfo.cs @@ -33,5 +33,5 @@ using System.Runtime.InteropServices; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("3.9.1")] -[assembly: AssemblyFileVersion("3.9.1")] +[assembly: AssemblyVersion("3.9.2")] +[assembly: AssemblyFileVersion("3.9.2")] diff --git a/IPA.Loader/Config/ConfigProviders/JsonConfigProvider.cs b/IPA.Loader/Config/ConfigProviders/JsonConfigProvider.cs index 7a1ef5ad..09ae875a 100644 --- a/IPA.Loader/Config/ConfigProviders/JsonConfigProvider.cs +++ b/IPA.Loader/Config/ConfigProviders/JsonConfigProvider.cs @@ -32,6 +32,8 @@ namespace IPA.Config.ConfigProviders public void Load() { + Logger.config.Debug($"Loading file {Filename}.json"); + var finfo = new FileInfo(Filename + ".json"); if (finfo.Exists) { @@ -85,9 +87,13 @@ namespace IPA.Config.ConfigProviders public void Save() { + Logger.config.Debug($"Saving file {Filename}.json"); + var finfo = new FileInfo(Filename + ".json"); File.WriteAllText(finfo.FullName, JsonConvert.SerializeObject(jsonObj)); + + HasChanged = false; } public void Store(T obj) diff --git a/IPA.Loader/Loader/PluginComponent.cs b/IPA.Loader/Loader/PluginComponent.cs index 34417bed..b7529821 100644 --- a/IPA.Loader/Loader/PluginComponent.cs +++ b/IPA.Loader/Loader/PluginComponent.cs @@ -42,6 +42,9 @@ namespace IPA.Loader SceneManager.activeSceneChanged += OnActiveSceneChanged; SceneManager.sceneLoaded += OnSceneLoaded; SceneManager.sceneUnloaded += OnSceneUnloaded; + + foreach (var provider in PluginManager.configProviders) + if (provider.HasChanged) provider.Save(); } void Update() @@ -54,6 +57,9 @@ namespace IPA.Loader { bsPlugins.OnLateUpdate(); ipaPlugins.OnLateUpdate(); + + foreach (var provider in PluginManager.configProviders) + if (provider.HasChanged) provider.Save(); } void FixedUpdate() @@ -79,6 +85,9 @@ namespace IPA.Loader bsPlugins.OnApplicationQuit(); ipaPlugins.OnApplicationQuit(); + foreach (var provider in PluginManager.configProviders) + if (provider.HasChanged) provider.Save(); + quitting = true; } diff --git a/IPA.Loader/Loader/PluginManager.cs b/IPA.Loader/Loader/PluginManager.cs index 42dfed49..2e28a2b2 100644 --- a/IPA.Loader/Loader/PluginManager.cs +++ b/IPA.Loader/Loader/PluginManager.cs @@ -247,6 +247,7 @@ namespace IPA.Loader Logger modLogger = null; IModPrefs modPrefs = null; + IConfigProvider cfgProvider = null; foreach (var param in initParams) { @@ -262,9 +263,13 @@ namespace IPA.Loader } else if (ptype.IsAssignableFrom(typeof(IConfigProvider))) { - var configProvider = new JsonConfigProvider() { Filename = Path.Combine("UserData", $"{bsPlugin.Name}.{param.Name}") }; - configProviders.Add(configProvider); - initArgs.Add(configProvider); + if (cfgProvider == null) + { + cfgProvider = new JsonConfigProvider() { Filename = Path.Combine("UserData", $"{bsPlugin.Name}") }; + configProviders.Add(cfgProvider); + cfgProvider.Load(); + } + initArgs.Add(cfgProvider); } else initArgs.Add(ptype.GetDefault()); diff --git a/IPA.Loader/Logging/StandardLogger.cs b/IPA.Loader/Logging/StandardLogger.cs index e3706fc0..789dd0d4 100644 --- a/IPA.Loader/Logging/StandardLogger.cs +++ b/IPA.Loader/Logging/StandardLogger.cs @@ -9,6 +9,7 @@ using System.Threading; using System.Threading.Tasks; using IPA; using IPA.Logging.Printers; +using IPA.Config; namespace IPA.Logging { diff --git a/IPA.Loader/Updating/SelfPlugin.cs b/IPA.Loader/Updating/SelfPlugin.cs index d0365a6b..2fde0921 100644 --- a/IPA.Loader/Updating/SelfPlugin.cs +++ b/IPA.Loader/Updating/SelfPlugin.cs @@ -11,7 +11,7 @@ namespace IPA.Updating internal class SelfPlugin : IBeatSaberPlugin { internal const string IPA_Name = "Beat Saber IPA"; - internal const string IPA_Version = "3.9.1"; + internal const string IPA_Version = "3.9.2"; public string Name => IPA_Name; diff --git a/IPA/Properties/AssemblyInfo.cs b/IPA/Properties/AssemblyInfo.cs index 40952001..63939eed 100644 --- a/IPA/Properties/AssemblyInfo.cs +++ b/IPA/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("3.9.1")] -[assembly: AssemblyFileVersion("3.9.1")] +[assembly: AssemblyVersion("3.9.2")] +[assembly: AssemblyFileVersion("3.9.2")]