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

View File

@@ -28,16 +28,19 @@ internal static class PluginMethods
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 ");
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)
{
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;
}
@@ -66,7 +69,8 @@ internal static class PluginMethods
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;
@@ -92,12 +96,12 @@ internal static class PluginMethods
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)
{
await Application.CurrentApplication.PluginManager.SetDisabledStatus(pluginName, false);
await Application.CurrentApplication.PluginManager.SetEnabledStatus(pluginName, true);
}
internal static async Task DownloadPlugin(string pluginName)

View File

@@ -59,7 +59,7 @@ public class Plugin: ICommandAction
}
string pluginName = string.Join(' ', args, 1, args.Length - 1);
await Application.CurrentApplication.PluginManager.SetDisabledStatus(pluginName, false);
await PluginMethods.EnablePlugin(pluginName);
break;
}
@@ -72,7 +72,7 @@ public class Plugin: ICommandAction
}
string pluginName = string.Join(' ', args, 1, args.Length - 1);
await Application.CurrentApplication.PluginManager.SetDisabledStatus(pluginName, true);
await PluginMethods.DisablePlugin(pluginName);
break;
}

View File

@@ -24,6 +24,6 @@ namespace DiscordBotCore.Interfaces.PluginManager
Task RemovePluginFromDatabase(string pluginName);
Task UninstallMarkedPlugins();
Task SetDisabledStatus(string pluginName, bool status);
Task SetEnabledStatus(string pluginName, bool status);
}
}

View File

@@ -21,7 +21,7 @@ internal class Loader
internal async Task Load()
{
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)
{

View File

@@ -88,9 +88,9 @@ public class PluginManager : IPluginManager
public async Task AppendPluginToDatabase(PluginInfo pluginData)
{
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);
@@ -160,7 +160,7 @@ public class PluginManager : IPluginManager
{
File.Delete(pluginInfo.FilePath);
foreach (var dependency in pluginInfo.ListOfDependancies)
foreach (var dependency in pluginInfo.ListOfExecutableDependencies)
File.Delete(dependency.Value);
await RemovePluginFromDatabase(pluginInfo.PluginName);
@@ -175,8 +175,8 @@ public class PluginManager : IPluginManager
foreach (var plugin in installedPlugins)
{
if (plugin.ListOfDependancies.ContainsKey(dependencyName))
return plugin.ListOfDependancies[dependencyName];
if (plugin.ListOfExecutableDependencies.ContainsKey(dependencyName))
return plugin.ListOfExecutableDependencies[dependencyName];
}
return null;
@@ -230,7 +230,7 @@ public class PluginManager : IPluginManager
await AppendPluginToDatabase(pluginInfo);
}
public async Task SetDisabledStatus(string pluginName, bool status)
public async Task SetEnabledStatus(string pluginName, bool status)
{
var plugins = await GetInstalledPlugins();
var plugin = plugins.Find(p => p.PluginName == pluginName);
@@ -238,7 +238,7 @@ public class PluginManager : IPluginManager
if (plugin == null)
return;
plugin.IsDisabled = status;
plugin.IsEnabled = status;
await RemovePluginFromDatabase(pluginName);
await AppendPluginToDatabase(plugin);

View File

@@ -10,32 +10,32 @@ public class PluginInfo
public string PluginName { get; private set; }
public PluginVersion PluginVersion { 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 IsOfflineAdded { get; internal set; }
public bool IsDisabled { get; internal set; }
public bool IsEnabled { get; internal set; }
[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;
PluginVersion = pluginVersion;
ListOfDependancies = listOfDependancies;
ListOfExecutableDependencies = listOfExecutableDependencies;
IsMarkedToUninstall = isMarkedToUninstall;
FilePath = $"{Application.CurrentApplication.ApplicationEnvironmentVariables["PluginFolder"]}/{pluginName}.dll";
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;
PluginVersion = pluginVersion;
ListOfDependancies = listOfDependancies;
ListOfExecutableDependencies = listOfExecutableDependencies;
IsMarkedToUninstall = false;
FilePath = $"{Application.CurrentApplication.ApplicationEnvironmentVariables["PluginFolder"]}/{pluginName}.dll";
IsOfflineAdded = false;
IsDisabled = false;
IsEnabled = true;
}
public static PluginInfo FromOnlineInfo(PluginOnlineInfo onlineInfo)