예제 #1
0
        /// <summary>
        /// Configures the base services that are required for the bot to function.
        /// </summary>
        /// <returns>The service collection to reference for this bot service provider.</returns>
        private IServiceCollection ConfigureServices()
        {
            IConfigurationRoot   config            = discordBot.Config;
            DiscordSocketConfig  discordConfig     = discordBot.GetDiscordSocketConfig();
            CommandServiceConfig commandConfig     = discordBot.GetCommandServiceConfig();
            ReliabilityConfig    reliabilityConfig = discordBot.GetReliabilityConfig();

            // Are we running on <= Windows 7?
            // Standard websocket only works for Windows 8+.
            if (RequiresWS4Net)
            {
                discordConfig.WebSocketProvider = WS4NetProvider.Instance;
            }

            ServiceCollection services = new ServiceCollection();

            discordBot.ConfigureServices(services);
            discordBot.ConfigureDatabase(services);
            return(services
                   .AddSingleton <DiscordSocketClient>()
                   .AddSingleton <CommandServiceEx>()
                   .AddSingleton <StartupService>()
                   .AddSingleton <ReliabilityService>()
                   .AddSingleton(config)
                   .AddSingleton(discordConfig)
                   .AddSingleton(commandConfig)
                   .AddSingleton(reliabilityConfig)
                   .AddSingleton(discordBot)
                   .AddSingleton(args)              // (Make startup args accessible)
                   );
        }