diff --git a/IPA.Loader/Loader/PluginComponent.cs b/IPA.Loader/Loader/PluginComponent.cs index 0e46febd..59e6f138 100644 --- a/IPA.Loader/Loader/PluginComponent.cs +++ b/IPA.Loader/Loader/PluginComponent.cs @@ -44,7 +44,7 @@ namespace IPA.Loader SceneManager.sceneUnloaded += OnSceneUnloaded; foreach (var provider in PluginManager.configProviders) - if (provider.Item1.HasChanged) provider.Item1.Save(); + if (provider.Key.HasChanged) provider.Key.Save(); } void Update() @@ -60,8 +60,12 @@ namespace IPA.Loader foreach (var provider in PluginManager.configProviders) { - if (provider.Item1.HasChanged) provider.Item1.Save(); - else if (provider.Item1.LastModified > provider.Item2) provider.Item1.Load(); // auto reload if it changes + if (provider.Key.HasChanged) provider.Key.Save(); + else if (provider.Key.LastModified > provider.Value.Value) + { + provider.Key.Load(); // auto reload if it changes + provider.Value.Value = provider.Key.LastModified; + } } } @@ -89,7 +93,7 @@ namespace IPA.Loader ipaPlugins.OnApplicationQuit(); foreach (var provider in PluginManager.configProviders) - if (provider.Item1.HasChanged) provider.Item1.Save(); + if (provider.Key.HasChanged) provider.Key.Save(); quitting = true; } diff --git a/IPA.Loader/Loader/PluginManager.cs b/IPA.Loader/Loader/PluginManager.cs index c5ebc84f..c5257db6 100644 --- a/IPA.Loader/Loader/PluginManager.cs +++ b/IPA.Loader/Loader/PluginManager.cs @@ -79,7 +79,7 @@ namespace IPA.Loader internal static IConfigProvider SelfConfigProvider { get; set; } = null; - internal static List> configProviders = new List>(); + internal static List>> configProviders = new List>>(); private static void LoadPlugins() { @@ -164,7 +164,7 @@ namespace IPA.Loader _bsPlugins.Add(selfPlugin); - configProviders.Add(new Tuple(SelfConfigProvider = new JsonConfigProvider() { Filename = Path.Combine("UserData", SelfPlugin.IPA_Name) }, SelfConfigProvider.LastModified)); + configProviders.Add(new KeyValuePair>(SelfConfigProvider = new JsonConfigProvider() { Filename = Path.Combine("UserData", SelfPlugin.IPA_Name) }, new Ref(SelfConfigProvider.LastModified))); SelfConfigProvider.Load(); //Load copied plugins @@ -268,7 +268,7 @@ namespace IPA.Loader if (cfgProvider == null) { cfgProvider = new JsonConfigProvider() { Filename = Path.Combine("UserData", $"{bsPlugin.Name}") }; - configProviders.Add(new Tuple(cfgProvider, cfgProvider.LastModified)); + configProviders.Add(new KeyValuePair>(cfgProvider, new Ref(cfgProvider.LastModified))); cfgProvider.Load(); } initArgs.Add(cfgProvider);