Renamed to IsEnabled
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user