public async Task MainAsync(string[] args) { if (false) { Testing(); return; } string executablePath = System.Reflection.Assembly.GetExecutingAssembly().Location; string executableDir = Path.GetDirectoryName(executablePath); BotSettings.Init(Path.Combine(executableDir, "BotSettings.json"), Path.Combine(executableDir, "BotSettingsBase.json")); var settings = BotSettings.Instance; if (args != null && args.Length == 1 && !String.IsNullOrWhiteSpace(args[0])) { settings.Token = args[0]; } else if (settings.Token == null || settings.Token == string.Empty) { while (true) { Console.WriteLine("Please enter your bot's token:"); settings.Token = Console.ReadLine(); if (settings.Token != string.Empty) { break; } } } settings.Save(); var socketConfig = new DiscordSocketConfig(); socketConfig.MessageCacheSize = 100; _client = new DiscordSocketClient(socketConfig); //_client.MessageReceived += LogMessage; _client.Log += Log; _client.MessageUpdated += Logic.MessageHistory.Instance.AddAsync; _client.MessageDeleted += Logic.MessageHistory.Instance.AddDeletedAsync; _commands = new CommandService(); _handler = new CommandHandler(_client, _commands); await _handler.InstallCommandsAsync(); await _client.LoginAsync(TokenType.Bot, settings.Token); await _client.StartAsync(); await Task.Delay(-1); }