public BotService( ILoggerFactory loggerFactory, IOptions <BotConfig> botConfig, IBotAccessProviderBuilder dataAccessProviderBuilder, IDateTimeZoneProvider timeZoneProvider, IServiceProvider services) { DiscordConfiguration ClientConfig = new DiscordConfiguration { Token = botConfig.Value.BotToken, TokenType = TokenType.Bot, MinimumLogLevel = LogLevel.Information, LoggerFactory = loggerFactory, Intents = DiscordIntents.All, }; this.commandsConfig = new CommandsNextConfiguration { PrefixResolver = PrefixResolver, Services = services, EnableDms = true, EnableMentionPrefix = true, }; this.interactivityConfig = new InteractivityConfiguration { PaginationBehaviour = PaginationBehaviour.Ignore, Timeout = TimeSpan.FromMinutes(2), }; this.Client = new DiscordShardedClient(ClientConfig); this._devUserId = botConfig.Value.DevId; this.logger = loggerFactory.CreateLogger("BotService"); this.providerBuilder = dataAccessProviderBuilder; this.timeZoneProvider = timeZoneProvider; using IBotAccessProvider provider = providerBuilder.Build(); provider.Migrate(); }