From debdc58646c879a9ab425d5f2f32ccd3aa226b8e Mon Sep 17 00:00:00 2001 From: Wizzy69 Date: Wed, 17 Aug 2022 20:12:31 +0300 Subject: [PATCH] The ability to remove a plugin has been added --- BUILDS/net6.0/PluginManager.dll | Bin 72192 -> 79360 bytes DiscordBot/DiscordBot.csproj | 2 +- DiscordBot/Program.cs | 27 ++++-- PluginManager/Items/ConsoleCommandsHandler.cs | 79 +++++++++++++++++- PluginManager/Others/Functions.cs | 4 +- 5 files changed, 103 insertions(+), 9 deletions(-) diff --git a/BUILDS/net6.0/PluginManager.dll b/BUILDS/net6.0/PluginManager.dll index 030162ff854595754c73f6ff7c17a4b3da5bd9ac..110653e8ed3943d94f6f6a47aed61eb2d5fec4fd 100644 GIT binary patch literal 79360 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 z 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 YL;1h^4|ae*IJ1L{@{fQ2-%;Ry1J_rpHUIzs diff --git a/DiscordBot/DiscordBot.csproj b/DiscordBot/DiscordBot.csproj index adc235a..5aa59c2 100644 --- a/DiscordBot/DiscordBot.csproj +++ b/DiscordBot/DiscordBot.csproj @@ -8,7 +8,7 @@ False True - 1.0.0.2 + 1.0.0.3 diff --git a/DiscordBot/Program.cs b/DiscordBot/Program.cs index 77f2207..3383372 100644 --- a/DiscordBot/Program.cs +++ b/DiscordBot/Program.cs @@ -19,6 +19,7 @@ public class Program { private static bool loadPluginsOnStartup; private static bool listPluginsAtStartup; + private static ConsoleCommandsHandler consoleCommandsHandler; /// /// The main entry point for the application. @@ -33,6 +34,7 @@ public class Program Directory.CreateDirectory("./Data/Plugins/Events"); PreLoadComponents().Wait(); + if (!Config.ContainsKey("ServerID")) { do @@ -105,7 +107,7 @@ public class Program /// The discord booter used to start the application private static void NoGUI(Boot discordbooter) { - var consoleCommandsHandler = new ConsoleCommandsHandler(discordbooter.client); + #if DEBUG Console.WriteLine(); consoleCommandsHandler.HandleCommand("lp"); @@ -118,10 +120,11 @@ public class Program { //Console_Utilities.WriteColorText("&rSethBot (&yDEBUG&r) &c> ", false); var cmd = Console.ReadLine(); - if (!consoleCommandsHandler.HandleCommand(cmd!, + if (!consoleCommandsHandler.HandleCommand(cmd! #if DEBUG - false + , false #endif + ) && cmd.Length > 0) Console.WriteLine("Failed to run command " + cmd); } @@ -199,8 +202,11 @@ public class Program /// The arguments private static async Task HandleInput(string[] args) { + var b = await StartNoGUI(); + consoleCommandsHandler = new ConsoleCommandsHandler(b.client); var len = args.Length; + if (len == 3 && args[0] == "/download") { var url = args[1]; @@ -211,6 +217,17 @@ public class Program return; } + if (len > 0 && args[0] == "/remplug") + { + + string plugName = Functions.MergeStrings(args, 1); + Console.WriteLine("Starting to remove " + plugName); + await ConsoleCommandsHandler.ExecuteCommad("remplug " + plugName); + loadPluginsOnStartup = true; + len = 0; + } + + if (len > 0 && (args.Contains("--cmd") || args.Contains("--args") || args.Contains("--nomessage"))) { if (args.Contains("lp") || args.Contains("loadplugins")) @@ -222,10 +239,10 @@ public class Program } + + if (len == 0 || (args[0] != "--exec" && args[0] != "--execute")) { - var b = await StartNoGUI(); - Thread mainThread = new Thread(() => NoGUI(b)); mainThread.Start(); return; diff --git a/PluginManager/Items/ConsoleCommandsHandler.cs b/PluginManager/Items/ConsoleCommandsHandler.cs index 8c67892..a25ac76 100644 --- a/PluginManager/Items/ConsoleCommandsHandler.cs +++ b/PluginManager/Items/ConsoleCommandsHandler.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Diagnostics; using System.IO; using System.Linq; using System.Net.Http; @@ -168,6 +169,7 @@ public class ConsoleCommandsHandler continue; var split = line.Split(','); Console.WriteLine($"\nDownloading item: {split[1]}"); + if (File.Exists("./" + split[1])) File.Delete("./" + split[1]); await ServerCom.DownloadFileAsync(split[0], "./" + split[1]); Console.WriteLine(); @@ -294,6 +296,80 @@ public class ConsoleCommandsHandler } }); + AddCommand("remplug", "Remove a plugin", "remplug [plugName]", async args => + { + isDownloading = true; + if (args.Length <= 1) return; + string plugName = Functions.MergeStrings(args, 1); + if (pluginsLoaded) + { + if (Functions.GetOperatingSystem() == Others.OperatingSystem.WINDOWS) + { + Process.Start("DiscordBot.exe ", $"/remplug {plugName}"); + Environment.Exit(0); + } + else + { + Process.Start("./DiscordBot", $"/remplug {plugName}"); + Environment.Exit(0); + } + isDownloading = false; + return; + } + + + string location = "./Data/Plugins/"; + + location = Config.PluginConfig.GetPluginType(plugName) switch + { + PluginType.Command => location + "Commands/" + plugName + "." + PluginLoader.pluginCMDExtension, + PluginType.Event => location + "Events/" + plugName + "." + PluginLoader.pluginEVEExtension, + PluginType.Unknown => "./", + _ => throw new NotImplementedException("Plugin type incorrect") + }; + + if (!File.Exists(location)) + { + Console.WriteLine("The plugig does not exist"); + return; + } + + File.Delete(location); + if (Config.PluginConfig.Contains(plugName)) + { + var tuple = Config.PluginConfig.InstalledPlugins.Where(t => t.Item1 == plugName).FirstOrDefault(); + Console.WriteLine("Found: " + tuple.ToString()); + Config.PluginConfig.InstalledPlugins.Remove(tuple); + Config.RemovePluginVersion(plugName); + Config.SaveConfig(); + } + Console.WriteLine("Removed the plugin DLL. Checking for other files ..."); + + var info = await manager.GetPluginLinkByName(plugName); + if (info[2] != string.Empty) + { + var lines = await ServerCom.ReadTextFromURL(info[2]); + foreach (var line in lines) + { + if (!(line.Length > 0 && line.Contains(","))) + continue; + var split = line.Split(','); + if (File.Exists("./" + split[1])) + File.Delete("./" + split[1]); + + + Console.WriteLine("Removed: " + split[1]); + } + + + if (Directory.Exists(plugName)) + Directory.Delete(plugName, true); + } + isDownloading = false; + Console.WriteLine(plugName + " has been successfully deleted !"); + + }); + //Sort the commands by name commandList.Sort((x, y) => x.CommandName.CompareTo(y.CommandName)); } @@ -325,9 +401,10 @@ public class ConsoleCommandsHandler return commandList.FirstOrDefault(t => t.CommandName == command); } - internal static async Task ExecuteCommad(string command) + public static async Task ExecuteCommad(string command) { var args = command.Split(' '); + // Console.WriteLine(command); foreach (var item in commandList.ToList()) if (item.CommandName == args[0]) { diff --git a/PluginManager/Others/Functions.cs b/PluginManager/Others/Functions.cs index 8039902..a99bc7f 100644 --- a/PluginManager/Others/Functions.cs +++ b/PluginManager/Others/Functions.cs @@ -26,12 +26,12 @@ namespace PluginManager.Others /// /// The location for all logs /// - public static readonly string logFolder = @"./Output/Logs/"; + public static readonly string logFolder = @"./Data/Output/Logs/"; /// /// The location for all errors /// - public static readonly string errFolder = @"./Output/Errors/"; + public static readonly string errFolder = @"./Data/Output/Errors/"; /// /// Archives folder