/// <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) ); }