// Main loop public static Task Start() { // Begin bot process in its own thread new Thread(delegate() { new RainBorg().RunBotAsync().GetAwaiter().GetResult(); }).Start(); // Begin timeout loop in its own thread /*new Thread(delegate () * { * UserTimeout(); * }).Start();*/ // Get console commands string command = ""; while (command.ToLower() != "exit") { // Get command command = Console.ReadLine(); if (command.ToLower().StartsWith("dotip")) { waitTime = 0; Log(0, "Console", "Tip sent."); } else if (command.ToLower().StartsWith("reset")) { foreach (KeyValuePair <ulong, LimitedList <ulong> > Entry in UserPools) { Entry.Value.Clear(); } Greylist.Clear(); Log(0, "Console", "Pools reset."); } else if (command.ToLower().StartsWith("loglevel")) { logLevel = int.Parse(command.Substring(command.IndexOf(' '))); Config.Save(); Log(0, "Console", "Log level changed."); } else if (command.ToLower().StartsWith("say")) { foreach (ulong Channel in StatusChannel) { (_client.GetChannel(Channel) as SocketTextChannel).SendMessageAsync(command.Substring(command.IndexOf(' '))); } Log(0, "Console", "Sent message."); } else if (command.ToLower().StartsWith("addoperator")) { if (!Operators.ContainsKey(ulong.Parse(command.Substring(command.IndexOf(' '))))) { Operators.Add(ulong.Parse(command.Substring(command.IndexOf(' ')))); } Log(0, "Console", "Added operator."); } else if (command.ToLower().StartsWith("removeoperator")) { if (Operators.ContainsKey(ulong.Parse(command.Substring(command.IndexOf(' '))))) { Operators.Remove(ulong.Parse(command.Substring(command.IndexOf(' ')))); } Log(0, "Console", "Removed operator."); } else if (command.ToLower().StartsWith("pause") && !Paused) { Paused = true; Log(0, "Console", "Bot paused."); } else if (command.ToLower().StartsWith("resume") && Paused) { Paused = false; Log(0, "Console", "Bot resumed."); } else if (command.ToLower().StartsWith("restart")) { Log(0, "Console", "Relaunching bot."); Relaunch(); } } // Completed, exit bot return(Task.CompletedTask); }
// Main loop public static Task Start() { // Begin bot process in its own thread new Thread(delegate() { new RainBorg().RunBotAsync().GetAwaiter().GetResult(); }).Start(); // Begin timeout loop in its own thread new Thread(delegate() { UserTimeout(); }).Start(); // Get console commands string command = ""; while (command.ToLower() != "exit") { // Get command command = Console.ReadLine(); if (command.ToLower().StartsWith("dotip")) { Waiting = waitTime; Console.WriteLine("Tip sent."); } else if (command.ToLower().StartsWith("reset")) { foreach (KeyValuePair <ulong, List <ulong> > Entry in UserPools) { Entry.Value.Clear(); } Greylist.Clear(); Console.WriteLine("Pools reset."); } else if (command.ToLower().StartsWith("loglevel")) { logLevel = int.Parse(command.Substring(command.IndexOf(' '))); Config.Save(); Console.WriteLine("Log level changed."); } else if (command.ToLower().StartsWith("say")) { foreach (ulong Channel in StatusChannel) { (_client.GetChannel(Channel) as SocketTextChannel).SendMessageAsync(command.Substring(command.IndexOf(' '))); } Console.WriteLine("Sent message."); } else if (command.ToLower().StartsWith("addoperator")) { if (!Operators.Contains(ulong.Parse(command.Substring(command.IndexOf(' '))))) { Operators.Add(ulong.Parse(command.Substring(command.IndexOf(' ')))); } Console.WriteLine("Added operator."); } else if (command.ToLower().StartsWith("removeoperator")) { if (Operators.Contains(ulong.Parse(command.Substring(command.IndexOf(' '))))) { Operators.Remove(ulong.Parse(command.Substring(command.IndexOf(' ')))); } Console.WriteLine("Removed operator."); } else if (command.ToLower().StartsWith("restart")) { Console.WriteLine("{0} {1} Relaunching bot...", DateTime.Now.ToString("HH:mm:ss"), "RainBorg"); Paused = true; JObject Resuming = new JObject { ["userPools"] = JToken.FromObject(UserPools), ["greylist"] = JToken.FromObject(Greylist), ["userMessages"] = JToken.FromObject(UserMessages) }; File.WriteAllText(Constants.ResumeFile, Resuming.ToString()); Process.Start("RelaunchUtility.exe", "RainBorg.exe"); ConsoleEventCallback(2); Environment.Exit(0); } } // Completed, exit bot return(Task.CompletedTask); }