From e6692e426349a0101480355fd28844a80da9da2d Mon Sep 17 00:00:00 2001 From: Wizzy69 Date: Thu, 26 May 2022 20:53:25 +0300 Subject: [PATCH 1/4] Added possibility to add external console commands --- DiscordBot/Program.cs | 347 +----------------- PluginManager/Items/Command.cs | 18 - PluginManager/Items/ConsoleCommandsHandler.cs | 310 ++++++++++++++++ PluginManager/Language System/Language.cs | 63 ++++ 4 files changed, 383 insertions(+), 355 deletions(-) create mode 100644 PluginManager/Items/ConsoleCommandsHandler.cs diff --git a/DiscordBot/Program.cs b/DiscordBot/Program.cs index 5f0f3aa..73e4005 100644 --- a/DiscordBot/Program.cs +++ b/DiscordBot/Program.cs @@ -6,27 +6,21 @@ using System.Threading.Tasks; using PluginManager.Core; using PluginManager.Others; -using PluginManager.Loaders; using PluginManager.LanguageSystem; using PluginManager.Online; -using System.Diagnostics; using System.Collections.Generic; using System.Linq; -using System.Threading; +using PluginManager.Items; namespace DiscordBot { public class Program { - private static PluginsManager manager = new PluginsManager("https://sethdiscordbot.000webhostapp.com/Storage/Discord%20Bot/Plugins"); - private static LanguageManager languageManager = new LanguageManager("https://sethdiscordbot.000webhostapp.com/Storage/Discord%20Bot/Languages"); - private static bool loadPluginsOnStartup = false; private static bool listPluginsAtStartup = false; private static bool listLanguagAtStartup = false; - private static bool PluginsLoaded = false; private static bool ShowStartupMessage = true; /// @@ -80,324 +74,20 @@ namespace DiscordBot /// The discord booter used to start the application private static async Task NoGUI(Boot discordbooter) { - LoadLanguage(); - if (loadPluginsOnStartup) - LoadPlugins(discordbooter); - if (listPluginsAtStartup) - await manager.ListAvailablePlugins(); - if (listLanguagAtStartup) - await languageManager.ListAllLanguages(); + Language.LoadLanguage(); + ConsoleCommandsHandler consoleCommandsHandler = new ConsoleCommandsHandler(discordbooter.client); + if (loadPluginsOnStartup) + consoleCommandsHandler.HandleCommand("lp"); + if (listPluginsAtStartup) + consoleCommandsHandler.HandleCommand("listplugs"); + if (listLanguagAtStartup) + consoleCommandsHandler.HandleCommand("listlang"); while (true) { Console.ForegroundColor = ConsoleColor.White; - Console_Utilities.WriteColorText("&mConsole ", false); - string[] data = Console.ReadLine().Split(' '); - - if (data[0].Length < 2) - continue; // The input command is less then 2 characters long - - switch (data[0]) - { - case "shutdown": - case "sd": - if (discordbooter.client.ConnectionState == ConnectionState.Connected) - await discordbooter.ShutDown().ContinueWith(t => { Environment.Exit(0); }); - break; - case "reload": - case "rl": - if (Environment.OSVersion.Platform != PlatformID.Win32NT) - { - Console.WriteLine("This command is for windows users ONLY"); - break; - } - Process.Start("./DiscordBot.exe", "--cmd lp"); - if (discordbooter.client.ConnectionState == ConnectionState.Connected) - await discordbooter.ShutDown(); - else Environment.Exit(0); - break; - case "listplugs": - await manager.ListAvailablePlugins(); - break; - - case "dwplug": - string name = data.MergeStrings(1); - // info[0] = plugin type - // info[1] = plugin link - // info[2] = if others are required, or string.Empty if none - string[] info = await manager.GetPluginLinkByName(name); - if (info[1] == null) // link is null - { - if (name == "") - { - Console_Utilities.WriteColorText($"Name is invalid"); - break; - } - Console_Utilities.WriteColorText($"Failed to find plugin &b{name} &c! Use &glistplugs &ccommand to display all available plugins !"); - break; - - } - string path; - if (info[0] == "Command" || info[0] == "Event") - path = "./Data/Plugins/" + info[0] + "s/" + name + ".dll"; - else path = $"./{info[1].Split('/')[info[1].Split('/').Length - 1]}"; - await ServerCom.DownloadFileAsync(info[1], path); - 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}"); - - List lines = await ServerCom.ReadTextFromFile(info[2]); - - foreach (var line in lines) - { - string[] split = line.Split(','); - Console.WriteLine($"\nDownloading item: {split[1]}"); - await ServerCom.DownloadFileAsync(split[0], "./" + split[1]); - Console.WriteLine(); - - if (split[0].EndsWith(".zip")) - { - - Console.WriteLine($"Extracting {split[1]}"); - double proc = 0d; - bool isExtracting = true; - Console_Utilities.ProgressBar bar = new Console_Utilities.ProgressBar(100, ""); - - IProgress extractProgress = new Progress(value => - { - proc = value; - }); - new Thread(new Task(() => - { - while (isExtracting) - { - bar.Update((int)proc); - if (proc >= 99.9f) - break; - Thread.Sleep(500); - } - }).Start).Start(); - await Functions.ExtractArchive("./" + split[1], "./", extractProgress); - bar.Update(100); - isExtracting = false; - await Task.Delay(1000); - bar.Update(100); - Console.WriteLine("\n"); - File.Delete("./" + split[1]); - - - - } - - if (name == "DBUI") - { - Console.WriteLine("Reload with GUI ?[y/n]"); - if (Console.ReadKey().Key == ConsoleKey.Y) - { - Process.Start("./DiscordBotGUI.exe"); - Environment.Exit(0); - } - } - } - Console.WriteLine(); - break; - } - - break; - case "setlang": - if (data.Length == 2) - SetLanguage(data[1]); - else Console.WriteLine("Invalid arguments"); - break; - case "set-setting": - if (data.Length >= 3) - Functions.WriteToSettingsFast(data[1], Functions.MergeStrings(data, 2)); - else Console.WriteLine("Failed to write to settings. Invalid params"); - break; - case "listlang": - await languageManager.ListAllLanguages(); - break; - case "dwlang": - string Lname = data.MergeStrings(1); - string[] link = await languageManager.GetDownloadLink(Lname); - try - { - if (link[0] is null || link is null) - { - if (Lname == "") - { - Console_Utilities.WriteColorText($"Name is invalid"); - break; - } - Console_Utilities.WriteColorText("Failed to find language &b" + Lname + " &c! Use &glistlang &ccommand to display all available languages !"); - break; - } - if (link[1].Contains("CrossPlatform") || link[1].Contains("cp")) - { - - string path2 = Functions.langFolder + Lname + ".lng"; - - await ServerCom.DownloadFileAsync(link[0], path2); - Console.WriteLine("\n"); - } - else Console_Utilities.WriteColorText("The language you are trying to download (&b" + Lname + "&c) is not compatible with the version of this bot. User &glistlang &ccommand in order to see all available languages for your current version !\n" + link[1]); - break; - } - catch - { - if (Lname == "") - { - Console_Utilities.WriteColorText($"Name is invalid"); - break; - } - Console_Utilities.WriteColorText("Failed to find language &b" + Lname + " &c! Use &glistlang &ccommand to display all available languages !"); - break; - } - - case "loadplugins": - case "lp": - if (PluginsLoaded) - { - Console_Utilities.WriteColorText("&rPlugins are already loaded"); - break; - } - LoadPlugins(discordbooter); - - break; - case "help": - Console.ForegroundColor = ConsoleColor.DarkYellow; - Console.WriteLine - ( - "lp | loadplugins -> load all plugins\n" + - "sd | shutdown->close connection to the server(stop bot)\n" + - "token -> display the current token\n" + - "listplugs -> list all available plugins\n" + - "dwplug [name] -> download plugin by name\n" + - "listlang -> list all available languages\n" + - "dwlang -> download language by name\n" + - "setlang [name] -> set language from the downloaded languages\n" + - "set-setting [setting.path] [value] -> set setting value" - ); - Console.ForegroundColor = ConsoleColor.White; - break; - case "token": - if (File.Exists("./Data/Resources/DiscordBotCore.data")) - Console.WriteLine("Token: " + Functions.readCodeFromFile("./Data/Resources/DiscordBotCore.data", "BOT_TOKEN", '=')); - else Console.WriteLine("File could not be found. Please register token"); - break; - default: - goto case "help"; - } - - } - } - - private static void LoadPlugins(Boot discordbooter) - { - var loader = new PluginLoader(discordbooter.client); - loader.onCMDLoad += (name, typeName, success, exception) => - { - Console.ForegroundColor = ConsoleColor.Green; - if (name == null || name.Length < 2) - name = typeName; - if (success) - if (Language.ActiveLanguage == null) - Console.WriteLine("[CMD] Successfully loaded command : " + name); - else Console.WriteLine(Language.ActiveLanguage.FormatText(Language.ActiveLanguage.LanguageWords["COMMAND_LOAD_SUCCESS"], name)); - else - if (Language.ActiveLanguage == null) - Console.WriteLine("[CMD] Failed to load command : " + name + " because " + exception.Message); - else - Console.WriteLine(Language.ActiveLanguage.FormatText(Language.ActiveLanguage.LanguageWords["COMMAND_LOAD_FAIL"], name, exception.Message)); - Console.ForegroundColor = ConsoleColor.Red; - }; - loader.onEVELoad += (name, typeName, success, exception) => - { - if (name == null || name.Length < 2) - name = typeName; - Console.ForegroundColor = ConsoleColor.Green; - if (success) - if (Language.ActiveLanguage == null) - Console.WriteLine("[EVENT] Successfully loaded event : " + name); - else - Console.WriteLine(Language.ActiveLanguage.FormatText(Language.ActiveLanguage.LanguageWords["EVENT_LOAD_SUCCESS"], name)); - else - if (Language.ActiveLanguage == null) - Console.WriteLine("[EVENT] Failed to load event : " + name + " because " + exception.Message); - else - Console.WriteLine(Language.ActiveLanguage.FormatText(Language.ActiveLanguage.LanguageWords["EVENT_LOAD_FAIL"], name, exception.Message)); - Console.ForegroundColor = ConsoleColor.Red; - }; - loader.LoadPlugins(); - - PluginsLoaded = true; - } - - /// - /// Load the language from the specified file - /// - private static bool LoadLanguage() - { - string folder = Functions.langFolder; - string langSettings = "./Data/Resources/Language.txt"; - if (!File.Exists(langSettings)) - File.WriteAllText(langSettings, "Language=English"); - //Load language from the specified file ... - Language.ActiveLanguage = null; - - string langname = Functions.readCodeFromFile(langSettings, "Language", '='); - if (langname == "English") - { - Language.ActiveLanguage = null; - return true; - } - foreach (var file in Directory.GetFiles(folder)) - { - if (Functions.readCodeFromFile(file, "LANGUAGE_NAME", '=') == langname) - { - Language.ActiveLanguage = Language.CreateLanguageFromFile(file); - - return true; - } - } - - if (Language.ActiveLanguage == null) - { - File.WriteAllText(langSettings, "Language=English"); - Console_Utilities.WriteColorText($"Failed to find language &r{langname} &c! Check available languages using command: &glistlang"); - - return false; - } - - return false; - } - - - public static void SetLanguage(string LanguageName) - { - string langSettings = Functions.dataFolder + "Language.txt"; - File.WriteAllText(langSettings, "Language=" + LanguageName); - - try - { - bool success = LoadLanguage(); - if (success) - { - Console_Utilities.WriteColorText($"Language has been setted to: &g{LanguageName}"); - return; - } - } - catch (Exception ex) - { - Console_Utilities.WriteColorText($"Could not find language &r{LanguageName}."); - Functions.WriteErrFile(ex.ToString()); - File.WriteAllText(langSettings, "Language=English"); - LoadLanguage(); + consoleCommandsHandler.HandleCommand(Console.ReadLine()); } } @@ -455,23 +145,6 @@ namespace DiscordBot private static async Task HandleInput(string[] args) { - /* if (args.Length > 0) - if (args[0] == "progress") - { - Console_Utilities.ProgressBar bar = new Console_Utilities.ProgressBar(100, "Download"); - for (int i = 0; i <= 100; i++) - { - bar.Update(i); - await Task.Delay(10); - - } - return; - } - else if (args[0] == "test") - { - return; - }*/ - if (args.Length == 0) { if (File.Exists("./ref/startupArguments.txt")) diff --git a/PluginManager/Items/Command.cs b/PluginManager/Items/Command.cs index 057ed90..b1292d5 100644 --- a/PluginManager/Items/Command.cs +++ b/PluginManager/Items/Command.cs @@ -47,23 +47,5 @@ namespace PluginManager.Items this.CommandName = data[0].Substring(1); this.PrefixUsed = data[0][0]; } - - /// - /// The Command class contructor - /// - /// The message string itself - /// True if the message has a prefix, false if not - public Command(string message, bool hasPrefix) - { - string[] data = message.Split(' '); - - this.Author = null; - this.Arguments = new List(data.MergeStrings(1).Split(' ')); - this.CommandName = data[0].Substring(1); - if (hasPrefix) - this.PrefixUsed = data[0][0]; - else this.PrefixUsed = '\0'; //null - } - } } diff --git a/PluginManager/Items/ConsoleCommandsHandler.cs b/PluginManager/Items/ConsoleCommandsHandler.cs new file mode 100644 index 0000000..39293ac --- /dev/null +++ b/PluginManager/Items/ConsoleCommandsHandler.cs @@ -0,0 +1,310 @@ +using Discord.WebSocket; + +using PluginManager.Loaders; +using PluginManager.Online; +using PluginManager.Others; + + +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Threading.Tasks; +using System.Threading; +using PluginManager.LanguageSystem; + +namespace PluginManager.Items +{ + public class ConsoleCommandsHandler + { + + private static PluginsManager manager = new PluginsManager("https://sethdiscordbot.000webhostapp.com/Storage/Discord%20Bot/Plugins"); + private static LanguageManager languageManager = new LanguageManager("https://sethdiscordbot.000webhostapp.com/Storage/Discord%20Bot/Languages"); + + + public static List>> commandList = new List>>(); + private DiscordSocketClient client; + + public ConsoleCommandsHandler(DiscordSocketClient client) + { + this.client = client; + //commandList = new List>>(); + InitializeBasicCommands(); + //Console.WriteLine("ConsoleCommandsHandler enabled"); + } + + private void InitializeBasicCommands() + { + + bool pluginsLoaded = false; + + AddCommand("help", "Show help", (args) => + { + if (args.Length == 1) + { + Console.WriteLine("Available commands:"); + foreach (var command in commandList) + { + Console.WriteLine("\t" + command.Item1 + " - " + command.Item2); + } + } + else + { + foreach (var command in commandList) + { + if (command.Item1 == args[0]) + { + Console.WriteLine(command.Item2); + return; + } + } + Console.WriteLine("Command not found"); + } + }); + + AddCommand("lp", "Load plugins", () => + { + if (pluginsLoaded) return; + var loader = new PluginLoader(client); + loader.onCMDLoad += (name, typeName, success, exception) => + { + Console.ForegroundColor = ConsoleColor.Green; + if (name == null || name.Length < 2) + name = typeName; + if (success) + if (LanguageSystem.Language.ActiveLanguage == null) + Console.WriteLine("[CMD] Successfully loaded command : " + name); + else Console.WriteLine(LanguageSystem.Language.ActiveLanguage.FormatText(LanguageSystem.Language.ActiveLanguage.LanguageWords["COMMAND_LOAD_SUCCESS"], name)); + else + if (LanguageSystem.Language.ActiveLanguage == null) + Console.WriteLine("[CMD] Failed to load command : " + name + " because " + exception.Message); + else + Console.WriteLine(LanguageSystem.Language.ActiveLanguage.FormatText(LanguageSystem.Language.ActiveLanguage.LanguageWords["COMMAND_LOAD_FAIL"], name, exception.Message)); + Console.ForegroundColor = ConsoleColor.Red; + }; + loader.onEVELoad += (name, typeName, success, exception) => + { + if (name == null || name.Length < 2) + name = typeName; + Console.ForegroundColor = ConsoleColor.Green; + if (success) + if (LanguageSystem.Language.ActiveLanguage == null) + Console.WriteLine("[EVENT] Successfully loaded event : " + name); + else + Console.WriteLine(LanguageSystem.Language.ActiveLanguage.FormatText(LanguageSystem.Language.ActiveLanguage.LanguageWords["EVENT_LOAD_SUCCESS"], name)); + else + if (LanguageSystem.Language.ActiveLanguage == null) + Console.WriteLine("[EVENT] Failed to load event : " + name + " because " + exception.Message); + else + Console.WriteLine(LanguageSystem.Language.ActiveLanguage.FormatText(LanguageSystem.Language.ActiveLanguage.LanguageWords["EVENT_LOAD_FAIL"], name, exception.Message)); + Console.ForegroundColor = ConsoleColor.Red; + }; + loader.LoadPlugins(); + pluginsLoaded = true; + }); + + AddCommand("listplugs", "list available plugins", async () => + { + await manager.ListAvailablePlugins(); + }); + + AddCommand("dwplug", "download plugin", async (args) => + { + if (args.Length == 1) + { + Console.WriteLine("Please specify plugin name"); + return; + } + + string name = args.MergeStrings(1); + // info[0] = plugin type + // info[1] = plugin link + // info[2] = if others are required, or string.Empty if none + string[] info = await manager.GetPluginLinkByName(name); + if (info[1] == null) // link is null + { + if (name == "") + { + Console_Utilities.WriteColorText($"Name is invalid"); + return; + } + Console_Utilities.WriteColorText($"Failed to find plugin &b{name} &c!" + + $" Use &glistplugs &ccommand to display all available plugins !"); + return; + + } + string path; + if (info[0] == "Command" || info[0] == "Event") + path = "./Data/Plugins/" + info[0] + "s/" + name + ".dll"; + else path = $"./{info[1].Split('/')[info[1].Split('/').Length - 1]}"; + await ServerCom.DownloadFileAsync(info[1], path); + 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}"); + + List lines = await ServerCom.ReadTextFromFile(info[2]); + + foreach (var line in lines) + { + string[] split = line.Split(','); + Console.WriteLine($"\nDownloading item: {split[1]}"); + await ServerCom.DownloadFileAsync(split[0], "./" + split[1]); + Console.WriteLine(); + + if (split[0].EndsWith(".zip")) + { + + Console.WriteLine($"Extracting {split[1]}"); + double proc = 0d; + bool isExtracting = true; + Console_Utilities.ProgressBar bar = new Console_Utilities.ProgressBar(100, ""); + + IProgress extractProgress = new Progress(value => + { + proc = value; + }); + new Thread(new Task(() => + { + while (isExtracting) + { + bar.Update((int)proc); + if (proc >= 99.9f) + break; + Thread.Sleep(500); + } + }).Start).Start(); + await Functions.ExtractArchive("./" + split[1], "./", extractProgress); + bar.Update(100); + isExtracting = false; + await Task.Delay(1000); + bar.Update(100); + Console.WriteLine("\n"); + System.IO.File.Delete("./" + split[1]); + + + + } + + if (name == "DBUI") + { + Console.WriteLine("Reload with GUI ?[y/n]"); + if (Console.ReadKey().Key == ConsoleKey.Y) + { + Process.Start("./DiscordBotGUI.exe"); + Environment.Exit(0); + } + } + } + Console.WriteLine(); + } + + }); + + AddCommand("setlang", "set language", (args) => + { + if (args.Length == 1) + { + Console.WriteLine("Please specify language"); + return; + } + Language.SetLanguage(args[0]); + }); + + AddCommand("listlang", "List all available languages", async () => + { + await languageManager.ListAllLanguages(); + }); + + AddCommand("dwlang", "Download language", async (args) => + { + if (args.Length == 1) + { + Console.WriteLine("Please specify language"); + return; + } + string Lname = args.MergeStrings(1); + string[] link = await languageManager!.GetDownloadLink(Lname); + try + { + if (link[0] is null || link is null) + { + if (Lname == "") + { + Console_Utilities.WriteColorText($"Name is invalid"); + return; + } + Console_Utilities.WriteColorText("Failed to find language &b" + Lname + " &c! Use &glistlang &ccommand to display all available languages !"); + return; + } + if (link[1].Contains("CrossPlatform") || link[1].Contains("cp")) + { + + string path2 = Functions.langFolder + Lname + ".lng"; + + await ServerCom.DownloadFileAsync(link[0], path2); + Console.WriteLine("\n"); + } + else Console_Utilities.WriteColorText("The language you are trying to download (&b" + Lname + "&c) is not compatible with the version of this bot. User &glistlang &ccommand in order to see all available languages for your current version !\n" + link[1]); + return; + } + catch + { + if (Lname == "") + { + Console_Utilities.WriteColorText($"Name is invalid"); + return; + } + Console_Utilities.WriteColorText("Failed to find language &b" + Lname + " &c! Use &glistlang &ccommand to display all available languages !"); + return; + } + }); + + + AddCommand("token", "Display the token used by the bot", () => + { + if (System.IO.File.Exists("./Data/Resources/DiscordBotCore.data")) + Console.WriteLine("Token: " + Functions.readCodeFromFile("./Data/Resources/DiscordBotCore.data", "BOT_TOKEN", '=')); + else Console.WriteLine("File could not be found. Please register token"); + }); + + } + + public static void AddCommand(string command, string description, Action action) + { + commandList.Add(new Tuple>(command, description, action)); + Console_Utilities.WriteColorText($"Command &r{command} &cadded to the list of commands"); + } + + public static void AddCommand(string command, string description, Action action) + { + AddCommand(command, description, (args) => + { + action(); + }); + + /* Console.WriteLine("Added command: " + command);*/ + } + + public static void RemoveCommand(string command) + { + commandList.RemoveAll(x => x.Item1 == command); + } + + public void HandleCommand(string command) + { + string[] args = command.Split(' '); + foreach (var item in commandList) + { + if (item.Item1 == args[0]) + { + item.Item3(args); + return; + } + } + } + + } +} diff --git a/PluginManager/Language System/Language.cs b/PluginManager/Language System/Language.cs index a1ef67f..732c4ae 100644 --- a/PluginManager/Language System/Language.cs +++ b/PluginManager/Language System/Language.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System; using System.IO; +using System.Threading.Tasks; namespace PluginManager.LanguageSystem { @@ -94,5 +95,67 @@ namespace PluginManager.LanguageSystem for (var i = 0; i < l; i++) text = text.Replace($"{i}", args[i]); return text; } + + + public static bool LoadLanguage() + { + string folder = Functions.langFolder; + string langSettings = "./Data/Resources/Language.txt"; + if (!File.Exists(langSettings)) + File.WriteAllText(langSettings, "Language=English"); + //Load language from the specified file ... + Language.ActiveLanguage = null; + + string langname = Functions.readCodeFromFile(langSettings, "Language", '='); + if (langname == "English") + { + Language.ActiveLanguage = null; + return true; + } + foreach (var file in Directory.GetFiles(folder)) + { + if (Functions.readCodeFromFile(file, "LANGUAGE_NAME", '=') == langname) + { + Language.ActiveLanguage = Language.CreateLanguageFromFile(file); + + return true; + } + } + + if (Language.ActiveLanguage == null) + { + File.WriteAllText(langSettings, "Language=English"); + Console_Utilities.WriteColorText($"Failed to find language &r{langname} &c! Check available languages using command: &glistlang"); + + return false; + } + + return false; + } + + public static void SetLanguage(string LanguageName) + { + string langSettings = Functions.dataFolder + "Language.txt"; + File.WriteAllText(langSettings, "Language=" + LanguageName); + + try + { + bool success = LoadLanguage(); + if (success) + { + Console_Utilities.WriteColorText($"Language has been setted to: &g{LanguageName}"); + return; + } + } + catch (Exception ex) + { + Console_Utilities.WriteColorText($"Could not find language &r{LanguageName}."); + Functions.WriteErrFile(ex.ToString()); + File.WriteAllText(langSettings, "Language=English"); + LoadLanguage(); + } + } + + } } \ No newline at end of file From a9ce01e7c9ebc6d7af42d36911acd1b5abfad67c Mon Sep 17 00:00:00 2001 From: Wizzy69 Date: Thu, 26 May 2022 20:58:53 +0300 Subject: [PATCH 2/4] --- BUILDS/net6.0/PluginManager.dll | Bin 48128 -> 61440 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/BUILDS/net6.0/PluginManager.dll b/BUILDS/net6.0/PluginManager.dll index 546a997e8fa04202a98429de7d3b3a7178524483..64b47fabd8af0da06ef55152e86dd08999d7ce28 100644 GIT binary patch literal 61440 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

2R+w#yN5Kv{Ah%bN)%$ybRN2n#J5<3+oM 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 literal 48128 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 Date: Fri, 27 May 2022 12:28:55 +0300 Subject: [PATCH 3/4] --- BUILDS/net6.0/EVE_LevelingSystem.dll | Bin 10240 -> 11776 bytes BUILDS/net6.0/PluginManager.dll | Bin 61440 -> 61952 bytes DiscordBot/Program.cs | 3 +- EVE_LevelingSystem/LevelingSystem.cs | 10 ++++++ FreeGames/Game.cs | 6 +++- PluginManager/Items/ConsoleCommandsHandler.cs | 29 +++++++++++------- 6 files changed, 35 insertions(+), 13 deletions(-) diff --git a/BUILDS/net6.0/EVE_LevelingSystem.dll b/BUILDS/net6.0/EVE_LevelingSystem.dll index 81fecadbd0237003cdc54ba69453add6fe4cabbd..e44346107e2f2c1203421bedc78994df8fa0da88 100644 GIT binary patch literal 11776 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 H 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 diff --git a/BUILDS/net6.0/PluginManager.dll b/BUILDS/net6.0/PluginManager.dll index 64b47fabd8af0da06ef55152e86dd08999d7ce28..856115d475eef34cc74c0721d43092668387d9b8 100644 GIT binary patch delta 24218 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 delta 23740 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 diff --git a/DiscordBot/Program.cs b/DiscordBot/Program.cs index 73e4005..9c1a719 100644 --- a/DiscordBot/Program.cs +++ b/DiscordBot/Program.cs @@ -87,7 +87,8 @@ namespace DiscordBot while (true) { Console.ForegroundColor = ConsoleColor.White; - consoleCommandsHandler.HandleCommand(Console.ReadLine()); + string cmd = Console.ReadLine(); + consoleCommandsHandler.HandleCommand(cmd); } } diff --git a/EVE_LevelingSystem/LevelingSystem.cs b/EVE_LevelingSystem/LevelingSystem.cs index 7f7195b..9325e4d 100644 --- a/EVE_LevelingSystem/LevelingSystem.cs +++ b/EVE_LevelingSystem/LevelingSystem.cs @@ -5,6 +5,9 @@ using Discord.WebSocket; using PluginManager.Others; using PluginManager.Interfaces; using PluginManager.LanguageSystem; +using PluginManager.Items; +using System; + public class LevelingSystem : DBEvent { public string name => "Leveling System"; @@ -13,6 +16,13 @@ public class LevelingSystem : DBEvent public void Start(DiscordSocketClient client) { + + ConsoleCommandsHandler.AddCommand("lvl", "calos command extern", async (args) => + { + Console.WriteLine("Leveling system command"); + + }); + client.MessageReceived += Client_MessageReceived; } diff --git a/FreeGames/Game.cs b/FreeGames/Game.cs index 40753fd..7080383 100644 --- a/FreeGames/Game.cs +++ b/FreeGames/Game.cs @@ -1,5 +1,8 @@ using PluginManager.Interfaces; +using PluginManager.Items; using Games.Objects; +using PluginManager.Others; + namespace Games; public class Game : DBCommand @@ -15,7 +18,8 @@ public class Game : DBCommand public async void Execute(Discord.Commands.SocketCommandContext context, Discord.WebSocket.SocketMessage message, Discord.WebSocket.DiscordSocketClient client, bool isDM) { - string game_name = PluginManager.Others.Functions.MergeStrings(message.Content.Split(' '), 1); + + string game_name = Functions.MergeStrings(message.Content.Split(' '), 1); string game_url = await GameData.GetSteamLinkFromGame(game_name); if (game_url is null || game_url == null) { diff --git a/PluginManager/Items/ConsoleCommandsHandler.cs b/PluginManager/Items/ConsoleCommandsHandler.cs index 39293ac..30a8c7a 100644 --- a/PluginManager/Items/ConsoleCommandsHandler.cs +++ b/PluginManager/Items/ConsoleCommandsHandler.cs @@ -11,6 +11,8 @@ using System.Diagnostics; using System.Threading.Tasks; using System.Threading; using PluginManager.LanguageSystem; +using System.Linq; +using System.Reflection.Metadata.Ecma335; namespace PluginManager.Items { @@ -21,25 +23,25 @@ namespace PluginManager.Items private static LanguageManager languageManager = new LanguageManager("https://sethdiscordbot.000webhostapp.com/Storage/Discord%20Bot/Languages"); - public static List>> commandList = new List>>(); + public static List>>? commandList = new List>>(); private DiscordSocketClient client; public ConsoleCommandsHandler(DiscordSocketClient client) { this.client = client; - //commandList = new List>>(); InitializeBasicCommands(); - //Console.WriteLine("ConsoleCommandsHandler enabled"); + Console.WriteLine("Initalized console command handeler !"); } private void InitializeBasicCommands() { bool pluginsLoaded = false; + commandList.Clear(); AddCommand("help", "Show help", (args) => { - if (args.Length == 1) + if (args.Length <= 1) { Console.WriteLine("Available commands:"); foreach (var command in commandList) @@ -51,7 +53,7 @@ namespace PluginManager.Items { foreach (var command in commandList) { - if (command.Item1 == args[0]) + if (command.Item1 == args[1]) { Console.WriteLine(command.Item2); return; @@ -270,20 +272,20 @@ namespace PluginManager.Items else Console.WriteLine("File could not be found. Please register token"); }); + + } public static void AddCommand(string command, string description, Action action) { commandList.Add(new Tuple>(command, description, action)); + Console.ForegroundColor = ConsoleColor.White; Console_Utilities.WriteColorText($"Command &r{command} &cadded to the list of commands"); } public static void AddCommand(string command, string description, Action action) { - AddCommand(command, description, (args) => - { - action(); - }); + AddCommand(command, description, (args) => action()); /* Console.WriteLine("Added command: " + command);*/ } @@ -293,15 +295,20 @@ namespace PluginManager.Items commandList.RemoveAll(x => x.Item1 == command); } + public static Tuple>? SearchCommand(string command) + { + return commandList.FirstOrDefault(t => t.Item1 == command); + } + public void HandleCommand(string command) { string[] args = command.Split(' '); - foreach (var item in commandList) + foreach (var item in commandList.ToList()) { if (item.Item1 == args[0]) { item.Item3(args); - return; + //Console.WriteLine($"Executing: {args[0]} with the following parameters: {args.MergeStrings(1)}"); } } } From f8de1536b2c0073e6f74020c8735ccebbc0ad91e Mon Sep 17 00:00:00 2001 From: Wizzy69 Date: Fri, 27 May 2022 12:29:23 +0300 Subject: [PATCH 4/4] --- EVE_LevelingSystem/LevelingSystem.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EVE_LevelingSystem/LevelingSystem.cs b/EVE_LevelingSystem/LevelingSystem.cs index 9325e4d..674da2a 100644 --- a/EVE_LevelingSystem/LevelingSystem.cs +++ b/EVE_LevelingSystem/LevelingSystem.cs @@ -17,7 +17,7 @@ public class LevelingSystem : DBEvent public void Start(DiscordSocketClient client) { - ConsoleCommandsHandler.AddCommand("lvl", "calos command extern", async (args) => + ConsoleCommandsHandler.AddCommand("lvl", "Test command", async (args) => { Console.WriteLine("Leveling system command");