From 7fcdf7db560d5956d12c65eb4e9f9fe7c69dd01f Mon Sep 17 00:00:00 2001 From: Wizzy69 Date: Fri, 6 May 2022 08:57:37 +0300 Subject: [PATCH] --- BUILDS/net6.0/PluginManager.dll | Bin 43008 -> 45056 bytes DiscordBot/Program.cs | 11 ++++---- PluginManager/Loaders/PluginLoader.cs | 6 ++++- PluginManager/Online/LanguageManager.cs | 5 ---- PluginManager/Online/PluginsManager.cs | 2 +- PluginManager/Online/ServerCom.cs | 30 +++------------------- PluginManager/Others/Console Utilities.cs | 2 -- 7 files changed, 16 insertions(+), 40 deletions(-) diff --git a/BUILDS/net6.0/PluginManager.dll b/BUILDS/net6.0/PluginManager.dll index b790e5f32037c60e9485f7913ac03c3583d7c057..97cc8133d77aee2a20e3a7d49f62a3d772854caa 100644 GIT binary patch literal 45056 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 literal 43008 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 diff --git a/DiscordBot/Program.cs b/DiscordBot/Program.cs index 92902d4..dad195a 100644 --- a/DiscordBot/Program.cs +++ b/DiscordBot/Program.cs @@ -9,11 +9,10 @@ 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; - namespace DiscordBot { public class Program @@ -37,7 +36,7 @@ namespace DiscordBot Directory.CreateDirectory("./Data/Languages"); Directory.CreateDirectory("./Data/Plugins/Commands"); Directory.CreateDirectory("./Data/Plugins/Events"); - if (!File.Exists("./Data/Resources/DiscordBotCore.data") || Functions.readCodeFromFile("./Data/Resources/DiscordBotCore.data", "BOT_TOKEN", '=')!.Length != 59) + if (!File.Exists("./Data/Resources/DiscordBotCore.data") || (Functions.readCodeFromFile("./Data/Resources/DiscordBotCore.data", "BOT_TOKEN", '=').Length != 59 && Functions.readCodeFromFile("./Data/Resources/DiscordBotCore.data", "BOT_TOKEN", '=').Length != 70)) { File.WriteAllText("./Data/Resources/DiscordBotCore.data", "BOT_TOKEN=token\nBOT_PREFIX=!\n"); while (true) @@ -45,7 +44,7 @@ namespace DiscordBot Console.WriteLine("Please insert your token: "); Console.Write("TOKEN: "); string botToken = Console.ReadLine(); - if (botToken.Length == 59) + if (botToken.Length == 59 || botToken.Length == 70) { string prefix = Functions.readCodeFromFile("./Data/Resources/DiscordBotCore.data", "BOT_PREFIX", '='); if (prefix == string.Empty || prefix == null) @@ -96,7 +95,9 @@ namespace DiscordBot Console_Utilities.WriteColorText("&mConsole > &c", false); string[] data = Console.ReadLine().Split(' '); - if (data[0].Length < 2) continue; + if (data[0].Length < 2) + continue; // The input command is less then 2 characters long + switch (data[0]) { case "shutdown": diff --git a/PluginManager/Loaders/PluginLoader.cs b/PluginManager/Loaders/PluginLoader.cs index 3f6ed97..36a192a 100644 --- a/PluginManager/Loaders/PluginLoader.cs +++ b/PluginManager/Loaders/PluginLoader.cs @@ -61,7 +61,11 @@ namespace PluginManager.Loaders Functions.WriteLogFile("Starting plugin loader..."); if (LanguageSystem.Language.ActiveLanguage != null) - Console_Utilities.WriteColorText(LanguageSystem.Language.ActiveLanguage.FormatText(LanguageSystem.Language.ActiveLanguage.LanguageWords["PLUGIN_LOADING_START"])); + Console_Utilities.WriteColorText( + LanguageSystem.Language.ActiveLanguage.FormatText( + LanguageSystem.Language.ActiveLanguage.LanguageWords["PLUGIN_LOADING_START"] + ) + ); //Load commands CommandsLoader CMDLoader = new CommandsLoader(pluginCMDFolder, pluginCMDExtension); diff --git a/PluginManager/Online/LanguageManager.cs b/PluginManager/Online/LanguageManager.cs index 71eacdd..408315c 100644 --- a/PluginManager/Online/LanguageManager.cs +++ b/PluginManager/Online/LanguageManager.cs @@ -27,11 +27,6 @@ namespace PluginManager.Online try { - /*#pragma warning disable SYSLIB0014 - WebClient client = new WebClient(); - #pragma warning restore SYSLIB0014 - Stream data = await client.OpenReadTaskAsync(link); - string[] lines = (await new StreamReader(data).ReadToEndAsync()).Split('\n');*/ List list = await ServerCom.ReadTextFromFile(link); string[] lines = list.ToArray(); diff --git a/PluginManager/Online/PluginsManager.cs b/PluginManager/Online/PluginsManager.cs index 1de837e..344d3fd 100644 --- a/PluginManager/Online/PluginsManager.cs +++ b/PluginManager/Online/PluginsManager.cs @@ -63,7 +63,7 @@ namespace PluginManager.Online continue; } } - else if (op == PluginManager.Others.OperatingSystem.LINUX) + else if (op == Others.OperatingSystem.LINUX) { if (content[4].Contains("Linux")) { diff --git a/PluginManager/Online/ServerCom.cs b/PluginManager/Online/ServerCom.cs index d53e833..edd7e58 100644 --- a/PluginManager/Online/ServerCom.cs +++ b/PluginManager/Online/ServerCom.cs @@ -57,11 +57,8 @@ namespace PluginManager.Online bool isDownloading = true; int c_progress = 0; - long secondsPast = 0; - long m_dwBytes = 0; - double c_downloadSpeed = 0f; - string c_downloadUnit = "MB"; - + //long m_dwBytes = 0; + Others.Console_Utilities.ProgressBar pbar = new Others.Console_Utilities.ProgressBar(100, ""); IProgress progress = new Progress(percent => @@ -71,39 +68,20 @@ namespace PluginManager.Online IProgress progress_downloaded = new Progress(downloadedBytes => { - m_dwBytes = downloadedBytes; + //m_dwBytes = downloadedBytes; }); Task updateProgressBarTask = new Task(async () => { while (isDownloading) { - //pbar.Update(c_progress, c_downloadSpeed, c_downloadUnit); pbar.Update(c_progress); if (c_progress == 100) break; System.Threading.Thread.Sleep(500); } }); - - Task calculateDownloadSpeed = new Task(async () => - { - - while (isDownloading) - { - secondsPast++; - c_downloadSpeed = m_dwBytes / secondsPast; - - c_downloadSpeed /= 1024; // in KB - c_downloadSpeed /= 1024; // in MB - - c_downloadSpeed = Math.Round(c_downloadSpeed, 2, MidpointRounding.AwayFromZero); - - System.Threading.Thread.Sleep(1000); - } - }); - - // new System.Threading.Thread(calculateDownloadSpeed.Start).Start(); + new System.Threading.Thread(updateProgressBarTask.Start).Start(); await DownloadFileAsync(URL, location, progress, progress_downloaded); diff --git a/PluginManager/Others/Console Utilities.cs b/PluginManager/Others/Console Utilities.cs index 8c0f230..80e3330 100644 --- a/PluginManager/Others/Console Utilities.cs +++ b/PluginManager/Others/Console Utilities.cs @@ -96,7 +96,6 @@ namespace PluginManager.Others foreach (string[] row in data) { - //Console.Write("\t"); if (row[0][0] == tableLine) Console.Write(tableCross); else Console.Write(tableWall); for (int l = 0; l < row.Length; l++) @@ -135,7 +134,6 @@ namespace PluginManager.Others /// /// Write the text using color options( &g-green; &b-blue; &r-red; &c-clear; ) - /// /// /// The text public static void WriteColorText(string text, bool appendNewLine = true)