diff --git a/DiscordBot/Utilities/ConsoleCommandsHandler_OLD.cs b/DiscordBot/Utilities/ConsoleCommandsHandler_OLD.cs deleted file mode 100644 index 17bf751..0000000 --- a/DiscordBot/Utilities/ConsoleCommandsHandler_OLD.cs +++ /dev/null @@ -1,435 +0,0 @@ -// using System; -// using System.Collections.Generic; -// using System.IO; -// using System.Linq; -// using System.Net.Http; -// using System.Reflection; -// using System.Threading.Tasks; - -// using Discord.WebSocket; - -// using PluginManager; -// using PluginManager.Loaders; -// using PluginManager.Online; -// using PluginManager.Others; - -// namespace DiscordBot.Utilities; - -// public class ConsoleCommandsHandlerOLD -// { - -// public static ConsoleCommandsHandler handler; -// private readonly PluginsManager manager; - -// private readonly List commandList = new(); - - -// private bool isDownloading; -// private bool pluginsLoaded; -// private DiscordSocketClient client; - -// public ConsoleCommandsHandler(DiscordSocketClient client) -// { -// this.client = client; - -// manager = new PluginsManager(Program.URLs["PluginList"], Program.URLs["PluginVersions"]); -// InitializeBasicCommands(); -// Console.WriteLine("Done"); - -// if (handler == null) -// handler = this; -// else -// throw new Exception("ConsoleCommandsHandler already initialized"); -// } - -// private void InitializeBasicCommands() -// { -// commandList.Clear(); - -// AddCommand("help", "Show help", "help ", args => -// { -// if (args.Length <= 1) -// { -// Console.WriteLine("Available commands:"); -// var items = new List -// { -// new[] { "-", "-", "-" }, -// new[] { "Command", "Description", "Usage" }, -// new[] { " ", " ", "Argument type: [required]" }, -// new[] { "-", "-", "-" } -// }; - -// foreach (var command in commandList) -// { -// if (!command.CommandName.StartsWith("_")) -// items.Add(new[] { command.CommandName, command.Description, command.Usage }); -// } - -// items.Add(new[] { "-", "-", "-" }); -// Utilities.FormatAndAlignTable(items, TableFormat.DEFAULT); -// } -// else -// { -// foreach (var command in commandList) -// if (command.CommandName == args[1]) -// { -// Console.WriteLine("Command description: " + command.Description); -// Console.WriteLine("Command execution format:" + command.Usage); -// return; -// } - -// Console.WriteLine("Command not found"); -// } -// } -// ); - -// AddCommand("lp", "Load plugins", () => -// { -// if (pluginsLoaded) -// return; -// var loader = new PluginLoader(client!); -// var cc = Console.ForegroundColor; -// loader.onCMDLoad += (name, typeName, success, exception) => -// { -// if (name == null || name.Length < 2) -// name = typeName; -// if (success) -// { -// Console.ForegroundColor = ConsoleColor.Green; -// Console.WriteLine("[CMD] Successfully loaded command : " + name); -// } - -// else -// { -// Console.ForegroundColor = ConsoleColor.Red; -// if (exception is null) -// Console.WriteLine("An error occured while loading: " + name); -// else -// Console.WriteLine("[CMD] Failed to load command : " + name + " because " + exception!.Message); -// } - -// Console.ForegroundColor = cc; -// }; -// loader.onEVELoad += (name, typeName, success, exception) => -// { -// if (name == null || name.Length < 2) -// name = typeName; - -// if (success) -// { -// Console.ForegroundColor = ConsoleColor.Green; -// Console.WriteLine("[EVENT] Successfully loaded event : " + name); -// } -// else -// { -// Console.ForegroundColor = ConsoleColor.Red; -// Console.WriteLine("[EVENT] Failed to load event : " + name + " because " + exception!.Message); -// } - -// Console.ForegroundColor = cc; -// }; - -// loader.onSLSHLoad += (name, typeName, success, exception) => -// { -// if (name == null || name.Length < 2) -// name = typeName; - -// if (success) -// { -// Console.ForegroundColor = ConsoleColor.Green; -// Console.WriteLine("[SLASH] Successfully loaded command : " + name); -// } -// else -// { -// Console.ForegroundColor = ConsoleColor.Red; -// Console.WriteLine("[SLASH] Failed to load command : " + name + " because " + exception!.Message); -// } - -// Console.ForegroundColor = cc; -// }; - -// loader.LoadPlugins(); -// Console.ForegroundColor = cc; -// pluginsLoaded = true; -// } -// ); - -// AddCommand("listplugs", "list available plugins", async () => { -// if(manager == null) -// { -// Console.WriteLine("Plugin manager is null"); -// return; -// } -// var data = await manager.GetAvailablePlugins(); -// var items = new List -// { -// new[] { "-", "-", "-", "-" }, -// new[] { "Name", "Type", "Description", "Required" }, -// new[] { "-", "-", "-", "-" } -// }; - -// foreach (var plugin in data) -// { -// items.Add(new[] { plugin[0], plugin[1], plugin[2], plugin[3] }); -// } - -// items.Add(new[] { "-", "-", "-", "-" }); -// Utilities.FormatAndAlignTable(items, TableFormat.DEFAULT); -// }); - -// AddCommand("dwplug", "download plugin", "dwplug [name]", async args => -// { -// isDownloading = true; -// Utilities.Spinner spinner = new Utilities.Spinner(); -// if (args.Length == 1) -// { -// isDownloading = false; -// Console.WriteLine("Please specify plugin name"); -// return; -// } - -// var name = string.Join(' ', args, 1, args.Length - 1); -// // info[0] = plugin type -// // info[1] = plugin link -// // info[2] = if others are required, or string.Empty if none -// var info = await manager.GetPluginLinkByName(name); -// if (info[1] == null) // link is null -// { -// if (name == "") -// { -// isDownloading = false; -// Utilities.WriteColorText("Name is invalid"); -// return; -// } - -// isDownloading = false; -// Utilities.WriteColorText($"Failed to find plugin &b{name} &c!" + -// " Use &glistplugs &ccommand to display all available plugins !"); -// return; -// } - -// spinner.Start(); - -// string path; -// if (info[0] == "Plugin") -// path = "./Data/Plugins/" + name + ".dll"; -// else -// path = $"./{info[1].Split('/')[info[1].Split('/').Length - 1]}"; - - -// Console.WriteLine($"Downloading plugin {name} from {info[1]} to {path}"); -// await ServerCom.DownloadFileAsync(info[1], path, null); - -// Console.WriteLine("\n"); - -// // check requirements if any - -// if (info.Length == 3 && info[2] != string.Empty && info[2] != null) -// { -// Console.WriteLine($"Downloading requirements for plugin : {name}"); - -// var lines = await ServerCom.ReadTextFromURL(info[2]); - -// foreach (var line in lines) -// { -// if (!(line.Length > 0 && line.Contains(","))) -// 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], null); - -// Console.WriteLine("Item " + split[1] + " downloaded !"); - -// Console.WriteLine(); -// if (split[0].EndsWith(".pak")) -// { -// File.Move("./" + split[1], "./Data/PAKS/" + split[1], true); -// } -// else if (split[0].EndsWith(".zip") || split[0].EndsWith(".pkg")) -// { -// Console.WriteLine($"Extracting {split[1]} ..."); -// await ArchiveManager.ExtractArchive("./" + split[1], "./", null, -// UnzipProgressType.PERCENTAGE_FROM_TOTAL_SIZE); -// Console.WriteLine("\n"); -// File.Delete("./" + split[1]); -// } -// } - -// Console.WriteLine(); -// } -// spinner.Stop(); - -// var ver = await manager.GetVersionOfPackageFromWeb(name); -// if (ver is null) throw new Exception("Incorrect version"); -// Config.Plugins[name] = ver.ToShortString(); - -// isDownloading = false; - - -// Config.Logger.Log("Plugin installed !", this, LogLevel.INFO); - -// //await ExecuteCommad("localload " + name); -// } -// ); - - -// AddCommand("value", "read value from VariableStack", "value [key]", args => -// { -// if (args.Length != 2) -// return; -// if (!Config.Data.ContainsKey(args[1])) -// return; - -// var data = Config.Data[args[1]]; -// Console.WriteLine($"{args[1]} => {data}"); -// } -// ); - -// AddCommand("add", "add variable to the system variables", "add [key] [value]", args => -// { -// if (args.Length < 4) -// return; -// var key = args[1]; -// var value = args[2]; -// var isReadOnly = args[3].Equals("true", StringComparison.CurrentCultureIgnoreCase); - -// try -// { -// Config.Data[key] = value; -// Console.WriteLine($"Updated config file with the following command: {args[1]} => {value}"); -// } -// catch (Exception ex) -// { -// Console.WriteLine(ex.ToString()); -// } -// } -// ); - -// AddCommand("remv", "remove variable from system variables", "remv [key]", args => -// { -// if (args.Length < 2) -// return; -// Config.Data.Remove(args[1]); -// } -// ); - -// AddCommand("sd", "Shuts down the discord bot", async () => -// { -// if (client is null) -// return; - -// await Functions.SaveToJsonFile(Functions.dataFolder + "config.json", Config.Data); -// await Functions.SaveToJsonFile(Functions.dataFolder + "Plugins.json", Config.Plugins); -// await client.StopAsync(); -// await client.DisposeAsync(); - -// Config.Logger.SaveToFile(); -// await Task.Delay(1000); -// Environment.Exit(0); -// } -// ); - -// AddCommand("import", "Load an external command", "import [pluginName]", async args => -// { -// if (args.Length <= 1) return; -// try -// { -// var pName = string.Join(' ', args, 1, args.Length - 1); -// using (var client = new HttpClient()) -// { -// var url = (await manager.GetPluginLinkByName(pName))[1]; -// if (url is null) throw new Exception($"Invalid plugin name {pName}."); -// var s = await client.GetStreamAsync(url); -// var str = new MemoryStream(); -// await s.CopyToAsync(str); -// var asmb = Assembly.Load(str.ToArray()); - -// await PluginLoader.LoadPluginFromAssembly(asmb, this.client); -// } - - -// } -// catch (Exception ex) -// { -// Console.WriteLine(ex.Message); -// } -// }); - -// AddCommand("localload", "Load a local command", "local [pluginName]", async args => -// { -// if (args.Length <= 1) return; -// try -// { -// var pName = string.Join(' ', args, 1, args.Length - 1); -// var asmb = Assembly.LoadFile(Path.GetFullPath("./Data/Plugins/" + pName + ".dll")); - -// await PluginLoader.LoadPluginFromAssembly(asmb, this.client); -// } -// catch (Exception ex) -// { -// Console.WriteLine(ex.Message); -// Config.Logger.Log(ex.Message, this, LogLevel.ERROR); -// } -// }); - - -// commandList.Sort((x, y) => x.CommandName.CompareTo(y.CommandName)); -// } - -// public void AddCommand(string command, string description, string usage, Action action) -// { -// Console.WriteLine($"Adding command {command} ..."); -// commandList.Add(new ConsoleCommand -// { CommandName = command, Description = description, Action = action, Usage = usage }); -// Console.ForegroundColor = ConsoleColor.White; -// Utilities.WriteColorText($"Command &r{command} &cadded to the list of commands"); -// } - -// public void AddCommand(string command, string description, Action action) -// { -// AddCommand(command, description, command, args => action()); -// } - -// public void RemoveCommand(string command) -// { -// commandList.RemoveAll(x => x.CommandName == command); -// } - -// public bool CommandExists(string command) -// { -// return GetCommand(command) is not null; -// } - -// public ConsoleCommand? GetCommand(string command) -// { -// return commandList.FirstOrDefault(t => t.CommandName == command); -// } - -// public bool HandleCommand(string command, bool removeCommandExecution = true) -// { -// Console.ForegroundColor = ConsoleColor.White; -// var args = command.Split(' '); -// foreach (var item in commandList.ToList()) -// if (item.CommandName == args[0]) -// { -// if (args[0].StartsWith("_")) -// throw new Exception("This command is reserved for internal worker and can not be executed manually !"); - -// if (removeCommandExecution) -// { -// Console.SetCursorPosition(0, Console.CursorTop - 1); -// for (var i = 0; i < command.Length + 30; i++) -// Console.Write(" "); -// Console.SetCursorPosition(0, Console.CursorTop); -// } - -// Console.WriteLine(); -// item.Action(args); - -// return true; -// } - -// return false; -// } -// } \ No newline at end of file