/// <summary> /// Starts the bot /// </summary> /// <returns></returns> public async Task StartBot() { IsStreaming = false; IsRunning = true; Global.BotStatusText = Config.bot.DefaultGameMessage; //Make sure the token isn't null or empty, if so open the bot config menu. if (string.IsNullOrEmpty(Global.BotToken)) { new ConfigMainMenu().OpenConfigMenu(); } Logger.Debug("Creating new Discord client..."); Client = new DiscordSocketClient(new DiscordSocketConfig { LogLevel = LogSeverity.Verbose }); Logger.Debug("Setting up events"); //Setup client events Client.Log += Log; Client.Ready += BotReady; //Setup the remaining events EventsSetup unused = new EventsSetup(Client); Logger.Debug("Signing in using token..."); try { await Client.LoginAsync(TokenType.Bot, Global.BotToken); //Logging into the bot using the token in the config. } catch (Discord.Net.HttpException) { Logger.Error("The supplied token was invalid!"); await EndBot(); Environment.Exit(0); return; } catch (HttpRequestException) { Logger.Error("There was an error connecting to Discord! This may be because Discord API is down, or there is no internet connection."); await EndBot(); Environment.Exit(0); return; } await Client.StartAsync(); //Start the client Logger.Debug("Sign in successful!"); CommandHandler handler = new CommandHandler(Client); Logger.Debug("Installing commands..."); //Install all the Modules await handler.SetupCommandHandlingAsync(); //Check all help modules HelpModulesManager.CheckHelpModules(); //Bot owner Global.BotOwner = (await Client.GetApplicationInfoAsync()).Owner; Logger.Debug($"The owner of this bot is {Global.BotOwner}"); //Enable the Steam services if an api key is provided if (!string.IsNullOrWhiteSpace(Config.bot.Apis.ApiSteamKey)) { SteamService.SetupSteam(); } //Set the bot status to the default game status await Client.SetGameAsync(Config.bot.DefaultGameMessage); //Starts the check connection status task, which will run indefinitely until the bot is stopped. await CheckConnectionStatusTask(); }
/// <summary> /// Starts the bot /// </summary> /// <returns></returns> public async Task StartBot() { IsStreaming = false; IsRunning = true; Global.BotStatusText = Config.bot.DefaultGameMessage; //Make sure the token isn't null or empty, if so open the bot config menu. if (string.IsNullOrEmpty(Global.BotToken)) { new ConfigMenu().OpenConfig(true); } Logger.Log("Creating new client...", LogVerbosity.Debug); _client = new DiscordSocketClient(new DiscordSocketConfig { LogLevel = LogSeverity.Verbose }); Logger.Log("Setting up events", LogVerbosity.Debug); //Setup client events _client.Log += Log; _client.Ready += BotReady; //Setup the remaining events EventsSetup unused = new EventsSetup(_client); Logger.Log("Signing in using token...", LogVerbosity.Debug); await _client.LoginAsync(TokenType.Bot, Global.BotToken); //Logging into the bot using the token in the config. await _client.StartAsync(); //Start the client Logger.Log("Sign in successful!", LogVerbosity.Debug); CommandHandler handler = new CommandHandler(_client); Logger.Log("Installing commands...", LogVerbosity.Debug); //Install all the Modules await handler.SetupCommandHandlingAsync(); //Check all help modules HelpModulesManager.CheckHelpModules(); //Bot owner Global.BotOwner = (await _client.GetApplicationInfoAsync()).Owner; Logger.Log($"The owner of this bot is {Global.BotOwner}", LogVerbosity.Debug); //Enable the Steam services if an api key is provided if (!string.IsNullOrWhiteSpace(Config.bot.Apis.ApiSteamKey)) { SteamService.SetupSteam(); } //Set the bot status to the default game status await _client.SetGameAsync(Config.bot.DefaultGameMessage); await CheckConnectionStatus(); }