Beispiel #1
0
        /// <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();
        }
Beispiel #2
0
        /// <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();
        }