From 059228ca52fd1dea111d024fabc65686f5e9602a Mon Sep 17 00:00:00 2001 From: Wizzy69 Date: Tue, 28 Jun 2022 10:45:40 +0300 Subject: [PATCH] --- BUILDS/net6.0/MusicCommands.dll | Bin 17920 -> 17920 bytes BUILDS/net6.0/PluginManager.dll | Bin 65024 -> 61440 bytes DiscordBot/Discord/Core/CommandHandler.cs | 1 - DiscordBot/Program.cs | 453 ++++++++++------------ MusicCommands/Data.cs | 3 +- MusicCommands/Leave.cs | 2 +- MusicCommands/MusicCommands.csproj | 1 + MusicCommands/MusicPlayer.cs | 1 - MusicCommands/Pause.cs | 2 +- MusicCommands/Play.cs | 5 +- MusicCommands/Unpause.cs | 3 +- MusicCommands/lplay.cs | 3 +- 12 files changed, 218 insertions(+), 256 deletions(-) diff --git a/BUILDS/net6.0/MusicCommands.dll b/BUILDS/net6.0/MusicCommands.dll index dac55ebd46e8cbd30c19db1342debe3c2522b214..086a3043f22909479fbc9dbcc8c3397e2bfe5834 100644 GIT binary patch literal 17920 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 Y-@&y?n?9$xZ~4za%*%fygcC$!@#V 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�g*i+V9>07O5^0yrAB($<^w7AlfN1KJ7DbO+A1(Wd56y)NBN7TC>)}?6z z*eH#a?aaaM^^oL%hvo4|GoZ2USs59(r$JdsM(;}DPKoz#l=>uKo;qoh^k&`^{2j-4 zY+bmk^FNlA7Av-Z&j=;OCj9UOwfn(+6rM`LQl9H^p|UNoxVaw|90iqUb^>xn@J;pr z(d<(rGJ&i{yRd-T7z~etF$>7yaP^64N2?=7UYqZ7>Fkue=w@@c&QNPaK1X1&>$3tXPXX!!vAR5K5$g1akQtvpTd`zt=GE^E{K4QO%O8B@f4;Fl zPiEXOg1$HzepI4SMr*km+bnQI$R#si#9HxkB6?q-!!V46%kdQ`Q$WTKk10C)DB~Ue zIK^h)%hYzp+qt%pYa6-N#kDR!YO^1)$XAOGtHU>JOo`2YG!cjdRb%unBlfOXt6LE? z)flynpl*q#V^grVHW*jSYJJh!ryxVYWN3bRbv)b{oBc27U#nuX&%|aw7n}X_*zA{L zv(GP!&Ay1|ndt0a2V97rSfYW^5)p`>G(pAcRHJR#;&mt>WV;c1|}tr@P7XKrq(M3{$~q zTE(V3b-`u+V9*lHLCC(#2!^zgU=PK8@VzjI>~@ndl}&*fh=_HBgGxpdgj5Lh$CYv2 zB8%sF_AR`rLeHQ!sRLdJaHqc+wLv$+EQErZ8N)h??I!bD6R>b13=*C52JrVuQc)>8|_=cl#8uI4~MN5brx zShwh#J*|SVsYo2Ec_JjTTCkk#g_6}u@u)ogi4LFf<7yHAF4a>^y3-C6I50$ikW~LXl|JT zYudE1czo6}zp}0a&y*!RkP=JaS%fFf(m%rBjIzR*eqJE6XS~YkaNIOvJ7WE@K^4NZ z!YcgNQ_BUWwpNOd$aG%kOHeHyBpbt{F{+s)pTbrHNDHpmJi!}!@NIl zfKUGh2!EikD7kCLFyE_jm~VG)M7JK@lmZJ_gYE0U0!Bj!k|@`a`NHlGR9$pc3;DeE4@c;`#-(cBFxku%8;ZY@-cLg~1?|VT2>Vd$$6wm-0^Sd}Q~%XH zeaU=tPQTgroTp3tAXz>pV3k;*^#K}?$|s!lO@D3^(G?03T2{-ryVfeuU4&`uuhrBhu$VmR~t2 zXr3vt1FtgC)+c>EU43!@85bL-VN1ovYsu(9Dly6<-wzo%$gcG5!~v+I{IJd#_}N2z z;K`xnvtGsGtLsYQ*p$IP{v9xXzr`o>gVLKvHjN_`d+#6)Jq7T@@eGKr-7cLy%euVr zGR8-@Yx$_6Q~P-jWI3>72B+3SmDSgh!N0rY?}g^~z0^|`KjF_5#HT&*Bi~u3Fw+@~ iE{-Uh@7+ot_VK@i&mR3-)UV$9?_ezde+a*|2mUvcu^OfT diff --git a/BUILDS/net6.0/PluginManager.dll b/BUILDS/net6.0/PluginManager.dll index 6be9c729bc3d518f26449ae0a210b19c72c1c3f9..7680527a240bff24b1aabb289f55256048633298 100644 GIT binary patch literal 61440 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 literal 65024 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�e(;0iGYzC!8ZEx*P&H=fXBl&YE)=bfV7& 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�)>mo-H>~u3oY%ew(L9DbR$@BHFu%5)4Jg< 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 G!2bp{+i7J0 diff --git a/DiscordBot/Discord/Core/CommandHandler.cs b/DiscordBot/Discord/Core/CommandHandler.cs index b876858..3a87dbc 100644 --- a/DiscordBot/Discord/Core/CommandHandler.cs +++ b/DiscordBot/Discord/Core/CommandHandler.cs @@ -121,7 +121,6 @@ internal class CommandHandler plugin.Execute(context, message, client, false); Functions.WriteLogFile($"[{message.Author.Id}] Executed command : " + plugin.Command); - return; } } } diff --git a/DiscordBot/Program.cs b/DiscordBot/Program.cs index 7a9f374..a2907b4 100644 --- a/DiscordBot/Program.cs +++ b/DiscordBot/Program.cs @@ -1,264 +1,231 @@ -using DiscordBot.Discord.Core; -using PluginManager; -using PluginManager.Items; -using PluginManager.Others; -using System; +using System; using System.IO; using System.Linq; using System.Threading.Tasks; +using DiscordBot.Discord.Core; +using PluginManager; +using PluginManager.Items; using PluginManager.Online; +using PluginManager.Others; -namespace DiscordBot +namespace DiscordBot; + +public class Program { - public class Program + private static bool loadPluginsOnStartup; + private static bool listPluginsAtStartup; + + /// + /// The main entry point for the application. + /// + [STAThread] + [Obsolete] + public static void Main(string[] args) { - private static bool loadPluginsOnStartup = false; - private static bool listPluginsAtStartup = false; + Directory.CreateDirectory("./Data/Resources"); + Directory.CreateDirectory("./Data/Plugins/Commands"); + Directory.CreateDirectory("./Data/Plugins/Events"); + PreLoadComponents().Wait(); - /// - /// The main entry point for the application. - /// - [STAThread] - [Obsolete] - public static void Main(string[] args) + if (!Config.ContainsKey("token") || Config.GetValue("token") == null || Config.GetValue("token")?.Length != 70) { - Directory.CreateDirectory("./Data/Resources"); - Directory.CreateDirectory("./Data/Plugins/Commands"); - Directory.CreateDirectory("./Data/Plugins/Events"); - PreLoadComponents().Wait(); + Console.WriteLine("Please insert your token"); + Console.Write("Token = "); + var token = Console.ReadLine(); + if (token?.Length == 59 || token?.Length == 70) + Config.AddValueToVariables("token", token, true); + else + Console.WriteLine("Invalid token"); - if (!Config.ContainsKey("token") || Config.GetValue("token") == null || Config.GetValue("token")?.Length != 70) - { - while (true) - { - Console.WriteLine("Please insert your token"); - Console.Write("Token = "); - string token = Console.ReadLine(); - if (token?.Length == 59 || token?.Length == 70) - Config.AddValueToVariables("token", token, true); - else - { - Console.WriteLine("Invalid token"); - continue; - } + Console.WriteLine("Please insert your prefix (max. 1 character long):"); + Console.WriteLine("For a prefix longer then one character, the first character will be saved and the others will be ignored.\n No spaces or numbers allowed"); + Console.Write("Prefix = "); + var prefix = Console.ReadLine()![0]; - Console.WriteLine("Please insert your prefix (max. 1 character long):"); - Console.WriteLine("For a prefix longer then one character, the first character will be saved and the others will be ignored.\n No spaces or numbers allowed"); - Console.Write("Prefix = "); - char prefix = Console.ReadLine()![0]; - - if (prefix == ' ' || char.IsDigit(prefix)) continue; - Config.AddValueToVariables("prefix", prefix.ToString(), false); - break; - } - } - - if (!Config.ContainsKey("prefix")) - { - Console.WriteLine("Please insert your prefix (max. 1 character long):"); - Console.WriteLine("For a prefix longer then one character, the first character will be saved and the others will be ignored.\n No spaces or numbers allowed"); - Console.Write("Prefix = "); - char prefix = Console.ReadLine()![0]; - - if (prefix == ' ' || char.IsDigit(prefix)) return; - Config.AddValueToVariables("prefix", prefix.ToString(), false); - } - - HandleInput(args).Wait(); + if (prefix == ' ' || char.IsDigit(prefix)) return; + Config.AddValueToVariables("prefix", prefix.ToString(), false); } - /// - /// The main loop for the discord bot - /// - /// The discord booter used to start the application - private static Task NoGUI(Boot discordbooter) + if (!Config.ContainsKey("prefix") || Config.GetValue("prefix") == default) { - ConsoleCommandsHandler consoleCommandsHandler = new ConsoleCommandsHandler(discordbooter.client); - if (loadPluginsOnStartup) consoleCommandsHandler.HandleCommand("lp"); - if (listPluginsAtStartup) consoleCommandsHandler.HandleCommand("listplugs"); - Config.SaveConfig(); - while (true) - { - Console.ForegroundColor = ConsoleColor.White; - string cmd = Console.ReadLine(); - consoleCommandsHandler.HandleCommand(cmd); - } + Console.WriteLine("Please insert your prefix (max. 1 character long):"); + Console.WriteLine("For a prefix longer then one character, the first character will be saved and the others will be ignored.\n No spaces or numbers allowed"); + Console.Write("Prefix = "); + var prefix = Console.ReadLine()![0]; + if (prefix == ' ') return; + Config.AddValueToVariables("prefix", prefix.ToString(), false); } - /// - /// Start the bot without user interface - /// - /// Returns the boot loader for the Discord Bot - private static async Task StartNoGUI() - { - Console.Clear(); - Console.ForegroundColor = ConsoleColor.DarkYellow; - Console.WriteLine("Discord BOT for Cross Platform"); - Console.WriteLine("Created by: Wizzy\nDiscord: Wizzy#9181"); + HandleInput(args).Wait(); + } + + /// + /// The main loop for the discord bot + /// + /// The discord booter used to start the application + private static Task NoGUI(Boot discordbooter) + { + var consoleCommandsHandler = new ConsoleCommandsHandler(discordbooter.client); + if (loadPluginsOnStartup) consoleCommandsHandler.HandleCommand("lp"); + if (listPluginsAtStartup) consoleCommandsHandler.HandleCommand("listplugs"); + Config.SaveConfig(); + while (true) + { Console.ForegroundColor = ConsoleColor.White; - Console.WriteLine("============================ Discord BOT - Cross Platform ============================"); - - try - { - string token = Config.GetValue("token"); - string prefix = Config.GetValue("prefix"); - - var discordbooter = new Boot(token, prefix); - await discordbooter.Awake(); - return discordbooter; - } - catch (Exception ex) - { - Console.WriteLine(ex); - return null; - } - } - - /// - /// Clear folder - /// - /// Directory path - private static Task ClearFolder(string d) - { - string[] files = Directory.GetFiles(d); - int fileNumb = files.Length; - for (var i = 0; i < fileNumb; i++) - { - File.Delete(files[i]); - Console.WriteLine("Deleting : " + files[i]); - } - - return Task.CompletedTask; - } - - /// - /// Handle user input arguments from the startup of the application - /// - /// The arguments - private static async Task HandleInput(string[] args) - { - int len = args.Length; - if (len == 1 && args[0] == "--help") - { - Console.WriteLine("Available commands:\n--exec -> start the bot with tools enabled"); - return; - } - - if (len == 1 && args[0] == "--logout") - { - File.Delete(Functions.dataFolder + "config.json"); - await Task.Run(async () => - { - await Task.Delay(1000); - Environment.Exit(0x08); - } - ); - return; - } - - if (len >= 2 && args[0] == "--encrypt") - { - string s2e = args.MergeStrings(1); - Console.WriteLine("MD5: " + await Cryptography.CreateMD5(s2e)); - Console.WriteLine("SHA356: " + await Cryptography.CreateSHA256(s2e)); - return; - } - - if (len == 3 && args[0] == "/download") - { - string url = args[1]; - string location = args[2]; - - await ServerCom.DownloadFileAsync(url, location); - - return; - } - - if (len > 0 && (args.Contains("--cmd") || args.Contains("--args") || args.Contains("--nomessage"))) - { - if (args.Contains("lp") || args.Contains("loadplugins")) loadPluginsOnStartup = true; - if (args.Contains("listplugs")) listPluginsAtStartup = true; - len = 0; - } - - - if (len == 0 || args[0] != "--exec" && args[0] != "--execute") - { - Boot b = await StartNoGUI(); - await NoGUI(b); - return; - } - - - Console.ForegroundColor = ConsoleColor.DarkYellow; - Console.WriteLine("Execute command interface noGUI\n\n"); - Console.WriteLine( - "\tCommand name\t\t\t\tDescription\n" + - "-- help | -help\t\t ------ \tDisplay the help message\n" + - "--reset-full\t\t ------ \tReset all files (clear files)\n" + - "--reset-logs\t\t ------ \tClear up the output folder\n" + - "--start\t\t ------ \tStart the bot\n" + - "exit\t\t\t ------ \tClose the application" - ); - while (true) - { - Console.ForegroundColor = ConsoleColor.White; - Console.Write("> "); - string[] message = Console.ReadLine().Split(' '); - - switch (message[0]) - { - case "--help": - case "-help": - Console.ForegroundColor = ConsoleColor.DarkYellow; - Console.WriteLine( - "\tCommand name\t\t\t\tDescription\n" + - "-- help | -help\t\t ------ \tDisplay the help message\n" + - "--reset-full\t\t ------ \tReset all files (clear files)\n" + - "--reset-settings\t ------ \tReset only bot settings\n" + - "--reset-logs\t\t ------ \tClear up the output folder\n" + - "--start\t\t ------ \tStart the bot\n" + - "exit\t\t\t ------ \tClose the application" - ); - break; - case "--reset-full": - await ClearFolder("./Data/Resources/"); - await ClearFolder("./Output/Logs/"); - await ClearFolder("./Output/Errors"); - await ClearFolder("./Data/Languages/"); - await ClearFolder("./Data/Plugins/Commands"); - await ClearFolder("./Data/Plugins/Events"); - Console.WriteLine("Successfully cleared all folders"); - break; - case "--reset-logs": - await ClearFolder("./Output/Logs"); - await ClearFolder("./Output/Errors"); - Console.WriteLine("Successfully cleard logs folder"); - break; - case "--exit": - case "exit": - Environment.Exit(0); - break; - case "--start": - Boot booter = await StartNoGUI(); - await NoGUI(booter); - return; - - default: - Console.WriteLine("Failed to execute command " + message[0]); - break; - } - } - } - - private static async Task PreLoadComponents() - { - await Config.LoadConfig(); - if (Config.ContainsKey("DeleteLogsAtStartup")) - if (Config.GetValue("DeleteLogsAtStartup")) - foreach (string file in Directory.GetFiles("./Output/Logs/")) - File.Delete(file); + var cmd = Console.ReadLine(); + consoleCommandsHandler.HandleCommand(cmd); } } + + /// + /// Start the bot without user interface + /// + /// Returns the boot loader for the Discord Bot + private static async Task StartNoGUI() + { + Console.Clear(); + Console.ForegroundColor = ConsoleColor.DarkYellow; + Console.WriteLine("Discord BOT for Cross Platform"); + Console.WriteLine("Created by: Wizzy\nDiscord: Wizzy#9181"); + + Console.ForegroundColor = ConsoleColor.White; + Console.WriteLine("============================ Discord BOT - Cross Platform ============================"); + + try + { + var token = Config.GetValue("token"); + var prefix = Config.GetValue("prefix"); + + var discordbooter = new Boot(token, prefix); + await discordbooter.Awake(); + return discordbooter; + } + catch (Exception ex) + { + Console.WriteLine(ex); + return null; + } + } + + /// + /// Clear folder + /// + /// Directory path + private static Task ClearFolder(string d) + { + var files = Directory.GetFiles(d); + var fileNumb = files.Length; + for (var i = 0; i < fileNumb; i++) + { + File.Delete(files[i]); + Console.WriteLine("Deleting : " + files[i]); + } + + return Task.CompletedTask; + } + + /// + /// Handle user input arguments from the startup of the application + /// + /// The arguments + private static async Task HandleInput(string[] args) + { + var len = args.Length; + + if (len == 3 && args[0] == "/download") + { + var url = args[1]; + var location = args[2]; + + await ServerCom.DownloadFileAsync(url, location); + + return; + } + + if (len > 0 && (args.Contains("--cmd") || args.Contains("--args") || args.Contains("--nomessage"))) + { + if (args.Contains("lp") || args.Contains("loadplugins")) loadPluginsOnStartup = true; + if (args.Contains("listplugs")) listPluginsAtStartup = true; + len = 0; + } + + + if (len == 0 || (args[0] != "--exec" && args[0] != "--execute")) + { + var b = await StartNoGUI(); + await NoGUI(b); + return; + } + + + Console.ForegroundColor = ConsoleColor.DarkYellow; + Console.WriteLine("Execute command interface noGUI\n\n"); + Console.WriteLine( + "\tCommand name\t\t\t\tDescription\n" + + "-- help | -help\t\t ------ \tDisplay the help message\n" + + "--reset-full\t\t ------ \tReset all files (clear files)\n" + + "--reset-logs\t\t ------ \tClear up the output folder\n" + + "--start\t\t ------ \tStart the bot\n" + + "exit\t\t\t ------ \tClose the application" + ); + while (true) + { + Console.ForegroundColor = ConsoleColor.White; + Console.Write("> "); + var message = Console.ReadLine().Split(' '); + + switch (message[0]) + { + case "--help": + case "-help": + Console.ForegroundColor = ConsoleColor.DarkYellow; + Console.WriteLine( + "\tCommand name\t\t\t\tDescription\n" + + "-- help | -help\t\t ------ \tDisplay the help message\n" + + "--reset-full\t\t ------ \tReset all files (clear files)\n" + + "--reset-settings\t ------ \tReset only bot settings\n" + + "--reset-logs\t\t ------ \tClear up the output folder\n" + + "--start\t\t ------ \tStart the bot\n" + + "exit\t\t\t ------ \tClose the application" + ); + break; + case "--reset-full": + await ClearFolder("./Data/Resources/"); + await ClearFolder("./Output/Logs/"); + await ClearFolder("./Output/Errors"); + await ClearFolder("./Data/Languages/"); + await ClearFolder("./Data/Plugins/Commands"); + await ClearFolder("./Data/Plugins/Events"); + Console.WriteLine("Successfully cleared all folders"); + break; + case "--reset-logs": + await ClearFolder("./Output/Logs"); + await ClearFolder("./Output/Errors"); + Console.WriteLine("Successfully cleard logs folder"); + break; + case "--exit": + case "exit": + Environment.Exit(0); + break; + case "--start": + var booter = await StartNoGUI(); + await NoGUI(booter); + return; + + default: + Console.WriteLine("Failed to execute command " + message[0]); + break; + } + } + } + + private static async Task PreLoadComponents() + { + await Config.LoadConfig(); + if (Config.ContainsKey("DeleteLogsAtStartup")) + if (Config.GetValue("DeleteLogsAtStartup")) + foreach (var file in Directory.GetFiles("./Output/Logs/")) + File.Delete(file); + } } diff --git a/MusicCommands/Data.cs b/MusicCommands/Data.cs index 30a79b4..066af23 100644 --- a/MusicCommands/Data.cs +++ b/MusicCommands/Data.cs @@ -1,8 +1,7 @@ using Discord; using Discord.Audio; -using MusicCommands; -namespace CMD_Utils.Music; +namespace MusicCommands; internal static class Data { diff --git a/MusicCommands/Leave.cs b/MusicCommands/Leave.cs index 11fb2dd..3171489 100644 --- a/MusicCommands/Leave.cs +++ b/MusicCommands/Leave.cs @@ -2,7 +2,7 @@ using Discord.WebSocket; using PluginManager.Interfaces; -namespace CMD_Utils.Music; +namespace MusicCommands; internal class Leave : DBCommand { diff --git a/MusicCommands/MusicCommands.csproj b/MusicCommands/MusicCommands.csproj index f64e6f5..9bd106b 100644 --- a/MusicCommands/MusicCommands.csproj +++ b/MusicCommands/MusicCommands.csproj @@ -3,6 +3,7 @@ net6.0 warnings + ..\DiscordBot\bin\Debug\net6.0\Data\Plugins\Commands\MusicCommands diff --git a/MusicCommands/MusicPlayer.cs b/MusicCommands/MusicPlayer.cs index e50ab8f..6d8e8f6 100644 --- a/MusicCommands/MusicPlayer.cs +++ b/MusicCommands/MusicPlayer.cs @@ -3,7 +3,6 @@ using System.IO; using System.Net.Http; using System.Threading; using System.Threading.Tasks; -using CMD_Utils.Music; using PluginManager.Others; namespace MusicCommands; diff --git a/MusicCommands/Pause.cs b/MusicCommands/Pause.cs index 035e8f7..8a86430 100644 --- a/MusicCommands/Pause.cs +++ b/MusicCommands/Pause.cs @@ -2,7 +2,7 @@ using Discord.WebSocket; using PluginManager.Interfaces; -namespace CMD_Utils.Music; +namespace MusicCommands; internal class Pause : DBCommand { diff --git a/MusicCommands/Play.cs b/MusicCommands/Play.cs index 26d9a0f..0e9b181 100644 --- a/MusicCommands/Play.cs +++ b/MusicCommands/Play.cs @@ -5,11 +5,10 @@ using Discord; using Discord.Audio; using Discord.Commands; using Discord.WebSocket; -using MusicCommands; using PluginManager.Interfaces; using PluginManager.Others; -namespace CMD_Utils.Music; +namespace MusicCommands; internal class Play : DBCommand { @@ -29,7 +28,7 @@ internal class Play : DBCommand { var path = "./Music"; var FileName = Functions.GetArguments(message).ToArray().MergeStrings(0); - path += "/" + FileName + ".mp3"; + path += "/" + FileName + ".ogg"; if (!File.Exists(path)) { Console.WriteLine("Unknown path " + path); diff --git a/MusicCommands/Unpause.cs b/MusicCommands/Unpause.cs index cc004c7..cfe2040 100644 --- a/MusicCommands/Unpause.cs +++ b/MusicCommands/Unpause.cs @@ -1,5 +1,4 @@ -using CMD_Utils.Music; -using Discord.Commands; +using Discord.Commands; using Discord.WebSocket; using PluginManager.Interfaces; diff --git a/MusicCommands/lplay.cs b/MusicCommands/lplay.cs index 14e51b3..6adb117 100644 --- a/MusicCommands/lplay.cs +++ b/MusicCommands/lplay.cs @@ -1,5 +1,4 @@ -using CMD_Utils.Music; -using Discord; +using Discord; using Discord.Audio; using Discord.Commands; using Discord.WebSocket;