Renamed to IsEnabled

This commit is contained in:
2024-07-04 16:35:17 +03:00
parent e0eae076f1
commit 48a133d58c
6 changed files with 29 additions and 25 deletions
@@ -28,16 +28,19 @@ internal static class PluginMethods
var data = await ConsoleUtilities.ExecuteWithProgressBar(Application.CurrentApplication.PluginManager.GetPluginsList(), "Reading remote database"); var data = await ConsoleUtilities.ExecuteWithProgressBar(Application.CurrentApplication.PluginManager.GetPluginsList(), "Reading remote database");
TableData tableData = new(["Name", "Description", "Version", "Is Installed", "Dependencies"]); TableData tableData = new(["Name", "Description", "Version", "Installed", "Dependencies", "Enabled"]);
var installedPlugins = await ConsoleUtilities.ExecuteWithProgressBar(Application.CurrentApplication.PluginManager.GetInstalledPlugins(), "Reading local database "); var installedPlugins = await ConsoleUtilities.ExecuteWithProgressBar(Application.CurrentApplication.PluginManager.GetInstalledPlugins(), "Reading local database ");
foreach (var plugin in data) foreach (var plugin in data)
{ {
bool isInstalled = installedPlugins.Any(p => p.PluginName == plugin.Name); bool isInstalled = installedPlugins.Any(p => p.PluginName == plugin.Name);
if (!plugin.HasFileDependencies) if (!plugin.HasFileDependencies)
{ {
tableData.AddRow([plugin.Name, plugin.Description, plugin.Version.ToString(), isInstalled ? "Yes" : "No", "None"]); tableData.AddRow([plugin.Name, plugin.Description,
plugin.Version.ToString(), isInstalled ? "[green]Yes[/]" : "[red]No[/]", "None",
isInstalled ? installedPlugins.First(p=>p.PluginName == plugin.Name).IsEnabled ? "[green]Enabled[/]" : "[red]Disabled[/]" : "[yellow]NOT INSTALLED[/]"]);
continue; continue;
} }
@@ -66,7 +69,8 @@ internal static class PluginMethods
Table spectreTable = dependenciesTable.AsTable(); Table spectreTable = dependenciesTable.AsTable();
tableData.AddRow([plugin.Name, plugin.Description, plugin.Version.ToString(), isInstalled ? "Yes" : "No", spectreTable]); tableData.AddRow([plugin.Name, plugin.Description, plugin.Version.ToString(), isInstalled ? "[green]Yes[/]" : "[red]No[/]", spectreTable,
isInstalled ? installedPlugins.First(p=>p.PluginName == plugin.Name).IsEnabled ? "Enabled" : "[red]Disabled[/]" : "[yellow]NOT INSTALLED[/]"]);
} }
tableData.HasRoundBorders = false; tableData.HasRoundBorders = false;
@@ -92,12 +96,12 @@ internal static class PluginMethods
internal static async Task DisablePlugin(string pluginName) internal static async Task DisablePlugin(string pluginName)
{ {
await Application.CurrentApplication.PluginManager.SetDisabledStatus(pluginName, true); await Application.CurrentApplication.PluginManager.SetEnabledStatus(pluginName, false);
} }
internal static async Task EnablePlugin(string pluginName) internal static async Task EnablePlugin(string pluginName)
{ {
await Application.CurrentApplication.PluginManager.SetDisabledStatus(pluginName, false); await Application.CurrentApplication.PluginManager.SetEnabledStatus(pluginName, true);
} }
internal static async Task DownloadPlugin(string pluginName) internal static async Task DownloadPlugin(string pluginName)
+2 -2
View File
@@ -59,7 +59,7 @@ public class Plugin: ICommandAction
} }
string pluginName = string.Join(' ', args, 1, args.Length - 1); string pluginName = string.Join(' ', args, 1, args.Length - 1);
await Application.CurrentApplication.PluginManager.SetDisabledStatus(pluginName, false); await PluginMethods.EnablePlugin(pluginName);
break; break;
} }
@@ -72,7 +72,7 @@ public class Plugin: ICommandAction
} }
string pluginName = string.Join(' ', args, 1, args.Length - 1); string pluginName = string.Join(' ', args, 1, args.Length - 1);
await Application.CurrentApplication.PluginManager.SetDisabledStatus(pluginName, true); await PluginMethods.DisablePlugin(pluginName);
break; break;
} }
@@ -24,6 +24,6 @@ namespace DiscordBotCore.Interfaces.PluginManager
Task RemovePluginFromDatabase(string pluginName); Task RemovePluginFromDatabase(string pluginName);
Task UninstallMarkedPlugins(); Task UninstallMarkedPlugins();
Task SetDisabledStatus(string pluginName, bool status); Task SetEnabledStatus(string pluginName, bool status);
} }
} }
+1 -1
View File
@@ -21,7 +21,7 @@ internal class Loader
internal async Task Load() internal async Task Load()
{ {
var installedPlugins = await Application.CurrentApplication.PluginManager.GetInstalledPlugins(); var installedPlugins = await Application.CurrentApplication.PluginManager.GetInstalledPlugins();
var files = installedPlugins.Where(plugin=>!plugin.IsDisabled).Select(plugin => plugin.FilePath).ToArray(); var files = installedPlugins.Where(plugin=>plugin.IsEnabled).Select(plugin => plugin.FilePath).ToArray();
foreach (var file in files) foreach (var file in files)
{ {
+7 -7
View File
@@ -88,9 +88,9 @@ public class PluginManager : IPluginManager
public async Task AppendPluginToDatabase(PluginInfo pluginData) public async Task AppendPluginToDatabase(PluginInfo pluginData)
{ {
List<PluginInfo> installedPlugins = await JsonManager.ConvertFromJson<List<PluginInfo>>(await File.ReadAllTextAsync(Application.CurrentApplication.PluginDatabase)); List<PluginInfo> installedPlugins = await JsonManager.ConvertFromJson<List<PluginInfo>>(await File.ReadAllTextAsync(Application.CurrentApplication.PluginDatabase));
foreach (var dependency in pluginData.ListOfDependancies) foreach (var dependency in pluginData.ListOfExecutableDependencies)
{ {
pluginData.ListOfDependancies[dependency.Key] = GenerateDependencyLocation(pluginData.PluginName, dependency.Value); pluginData.ListOfExecutableDependencies[dependency.Key] = GenerateDependencyLocation(pluginData.PluginName, dependency.Value);
} }
installedPlugins.Add(pluginData); installedPlugins.Add(pluginData);
@@ -160,7 +160,7 @@ public class PluginManager : IPluginManager
{ {
File.Delete(pluginInfo.FilePath); File.Delete(pluginInfo.FilePath);
foreach (var dependency in pluginInfo.ListOfDependancies) foreach (var dependency in pluginInfo.ListOfExecutableDependencies)
File.Delete(dependency.Value); File.Delete(dependency.Value);
await RemovePluginFromDatabase(pluginInfo.PluginName); await RemovePluginFromDatabase(pluginInfo.PluginName);
@@ -175,8 +175,8 @@ public class PluginManager : IPluginManager
foreach (var plugin in installedPlugins) foreach (var plugin in installedPlugins)
{ {
if (plugin.ListOfDependancies.ContainsKey(dependencyName)) if (plugin.ListOfExecutableDependencies.ContainsKey(dependencyName))
return plugin.ListOfDependancies[dependencyName]; return plugin.ListOfExecutableDependencies[dependencyName];
} }
return null; return null;
@@ -230,7 +230,7 @@ public class PluginManager : IPluginManager
await AppendPluginToDatabase(pluginInfo); await AppendPluginToDatabase(pluginInfo);
} }
public async Task SetDisabledStatus(string pluginName, bool status) public async Task SetEnabledStatus(string pluginName, bool status)
{ {
var plugins = await GetInstalledPlugins(); var plugins = await GetInstalledPlugins();
var plugin = plugins.Find(p => p.PluginName == pluginName); var plugin = plugins.Find(p => p.PluginName == pluginName);
@@ -238,7 +238,7 @@ public class PluginManager : IPluginManager
if (plugin == null) if (plugin == null)
return; return;
plugin.IsDisabled = status; plugin.IsEnabled = status;
await RemovePluginFromDatabase(pluginName); await RemovePluginFromDatabase(pluginName);
await AppendPluginToDatabase(plugin); await AppendPluginToDatabase(plugin);
+8 -8
View File
@@ -10,32 +10,32 @@ public class PluginInfo
public string PluginName { get; private set; } public string PluginName { get; private set; }
public PluginVersion PluginVersion { get; private set; } public PluginVersion PluginVersion { get; private set; }
public string FilePath { get; private set; } public string FilePath { get; private set; }
public Dictionary<string, string> ListOfDependancies {get; private set;} public Dictionary<string, string> ListOfExecutableDependencies {get; private set;}
public bool IsMarkedToUninstall {get; internal set;} public bool IsMarkedToUninstall {get; internal set;}
public bool IsOfflineAdded { get; internal set; } public bool IsOfflineAdded { get; internal set; }
public bool IsDisabled { get; internal set; } public bool IsEnabled { get; internal set; }
[JsonConstructor] [JsonConstructor]
public PluginInfo(string pluginName, PluginVersion pluginVersion, Dictionary<string, string> listOfDependancies, bool isMarkedToUninstall, bool isOfflineAdded, bool isDisabled) public PluginInfo(string pluginName, PluginVersion pluginVersion, Dictionary<string, string> listOfExecutableDependencies, bool isMarkedToUninstall, bool isOfflineAdded, bool isEnabled)
{ {
PluginName = pluginName; PluginName = pluginName;
PluginVersion = pluginVersion; PluginVersion = pluginVersion;
ListOfDependancies = listOfDependancies; ListOfExecutableDependencies = listOfExecutableDependencies;
IsMarkedToUninstall = isMarkedToUninstall; IsMarkedToUninstall = isMarkedToUninstall;
FilePath = $"{Application.CurrentApplication.ApplicationEnvironmentVariables["PluginFolder"]}/{pluginName}.dll"; FilePath = $"{Application.CurrentApplication.ApplicationEnvironmentVariables["PluginFolder"]}/{pluginName}.dll";
IsOfflineAdded = isOfflineAdded; IsOfflineAdded = isOfflineAdded;
IsDisabled = isDisabled; IsEnabled = isEnabled;
} }
public PluginInfo(string pluginName, PluginVersion pluginVersion, Dictionary<string, string> listOfDependancies) public PluginInfo(string pluginName, PluginVersion pluginVersion, Dictionary<string, string> listOfExecutableDependencies)
{ {
PluginName = pluginName; PluginName = pluginName;
PluginVersion = pluginVersion; PluginVersion = pluginVersion;
ListOfDependancies = listOfDependancies; ListOfExecutableDependencies = listOfExecutableDependencies;
IsMarkedToUninstall = false; IsMarkedToUninstall = false;
FilePath = $"{Application.CurrentApplication.ApplicationEnvironmentVariables["PluginFolder"]}/{pluginName}.dll"; FilePath = $"{Application.CurrentApplication.ApplicationEnvironmentVariables["PluginFolder"]}/{pluginName}.dll";
IsOfflineAdded = false; IsOfflineAdded = false;
IsDisabled = false; IsEnabled = true;
} }
public static PluginInfo FromOnlineInfo(PluginOnlineInfo onlineInfo) public static PluginInfo FromOnlineInfo(PluginOnlineInfo onlineInfo)