From 0fccf706a112adb77250f63dabd5f4b31c4d2c7f Mon Sep 17 00:00:00 2001 From: Andrei Tudor Date: Sun, 3 Mar 2024 15:07:06 +0200 Subject: [PATCH] Fixed some errors on SettingsDictionary --- PluginManager/Config.cs | 13 ++++++++++--- PluginManager/Others/SettingsDictionary.cs | 11 ++++------- SethDiscordBot.sln | 13 +++++++++---- 3 files changed, 23 insertions(+), 14 deletions(-) diff --git a/PluginManager/Config.cs b/PluginManager/Config.cs index 87eaf72..184b16c 100644 --- a/PluginManager/Config.cs +++ b/PluginManager/Config.cs @@ -32,15 +32,22 @@ public class Config Directory.CreateDirectory("./Data/Logs"); AppSettings = new SettingsDictionary("./Data/Resources/config.json"); + bool response = await AppSettings.LoadFromFile(); + + if (!response) + throw new Exception("Invalid config file"); AppSettings["LogFolder"] = "./Data/Logs"; AppSettings["PluginFolder"] = "./Data/Plugins"; AppSettings["ArchiveFolder"] = "./Data/Archives"; AppSettings["PluginDatabase"] = "./Data/Resources/plugins.json"; + ArchiveManager.Initialize(); + + if (!File.Exists(AppSettings["PluginDatabase"])) { List plugins = new(); @@ -49,15 +56,15 @@ public class Config Logger = new Logger(false, true, AppSettings["LogFolder"] + $"/{DateTime.Today.ToShortDateString().Replace("/", "")}.log"); - - _isLoaded = true; - + PluginsManager = new PluginsManager("releases"); await PluginsManager.UninstallMarkedPlugins(); await PluginsManager.CheckForUpdates(); + _isLoaded = true; + Logger.Log("Config initialized", typeof(Config)); } diff --git a/PluginManager/Others/SettingsDictionary.cs b/PluginManager/Others/SettingsDictionary.cs index 4c2717c..83f0650 100644 --- a/PluginManager/Others/SettingsDictionary.cs +++ b/PluginManager/Others/SettingsDictionary.cs @@ -13,11 +13,6 @@ public class SettingsDictionary: IDictionary public SettingsDictionary(string? file) { _file = file; - if (!LoadFromFile()) - { - _dictionary = new Dictionary(); - SaveToFile(); - } } public async Task SaveToFile() @@ -26,7 +21,7 @@ public class SettingsDictionary: IDictionary await JsonManager.SaveToJsonFile(_file, _dictionary); } - private bool LoadFromFile() + public async Task LoadFromFile() { if (!string.IsNullOrEmpty(_file)) try @@ -42,7 +37,9 @@ public class SettingsDictionary: IDictionary } else File.WriteAllText(_file, "{}"); - _dictionary = JsonManager.ConvertFromJson>(_file).Result; + + + _dictionary = await JsonManager.ConvertFromJson>(_file); return true; } catch diff --git a/SethDiscordBot.sln b/SethDiscordBot.sln index a8d9f43..989c9bd 100644 --- a/SethDiscordBot.sln +++ b/SethDiscordBot.sln @@ -1,4 +1,3 @@ - Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.1.32421.90 @@ -9,11 +8,13 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PluginManager", "PluginMana EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SethPlugins", "SethPlugins", "{78B6D390-F61A-453F-B38D-E4C054321615}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MusicPlayer", "..\SethPlugins\MusicPlayer\MusicPlayer.csproj", "{1690CBBC-BDC0-4DD8-B701-F8817189D9D5}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MusicPlayer", "..\SethPlugins\MusicPlayer\MusicPlayer.csproj", "{1690CBBC-BDC0-4DD8-B701-F8817189D9D5}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LevelingSystem", "..\SethPlugins\LevelingSystem\LevelingSystem.csproj", "{BFE3491C-AC01-4252-B242-6451270FC548}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LevelingSystem", "..\SethPlugins\LevelingSystem\LevelingSystem.csproj", "{BFE3491C-AC01-4252-B242-6451270FC548}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PythonCompatibilityLayer", "..\SethPlugins\PythonCompatibilityLayer\PythonCompatibilityLayer.csproj", "{81ED4953-13E5-4950-96A8-8CEF5FD59559}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PythonCompatibilityLayer", "..\SethPlugins\PythonCompatibilityLayer\PythonCompatibilityLayer.csproj", "{81ED4953-13E5-4950-96A8-8CEF5FD59559}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DiscordBotUI", "DiscordBotUI\DiscordBotUI.csproj", "{1E781CB6-3EAF-425D-9913-4FE879B1D633}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -41,6 +42,10 @@ Global {81ED4953-13E5-4950-96A8-8CEF5FD59559}.Debug|Any CPU.Build.0 = Debug|Any CPU {81ED4953-13E5-4950-96A8-8CEF5FD59559}.Release|Any CPU.ActiveCfg = Release|Any CPU {81ED4953-13E5-4950-96A8-8CEF5FD59559}.Release|Any CPU.Build.0 = Release|Any CPU + {1E781CB6-3EAF-425D-9913-4FE879B1D633}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1E781CB6-3EAF-425D-9913-4FE879B1D633}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1E781CB6-3EAF-425D-9913-4FE879B1D633}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1E781CB6-3EAF-425D-9913-4FE879B1D633}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE