public FrameworkConfiguration( IServiceProvider clientServiceProvider, string defaultCommandPrefix, IEnumerable <ulong> ownerIDs, IEnumerable <ModuleInfo> modules, ICommunicator communicator, Action <ILoggingBuilder> loggingConfiguration, IFrameworkGuildConfigProvider guildConfigProvider, BaseSocketClient discordClient) { ClientServiceProvider = clientServiceProvider ?? throw new ArgumentNullException(nameof(clientServiceProvider)); if (string.IsNullOrWhiteSpace(defaultCommandPrefix)) { throw new ArgumentException(defaultCommandPrefix); } DefaultCommandPrefix = defaultCommandPrefix; LoggingConfiguration = loggingConfiguration ?? throw new ArgumentNullException(nameof(loggingConfiguration)); GuildConfigProvider = guildConfigProvider ?? throw new ArgumentNullException(nameof(guildConfigProvider)); OwnerIDs = ownerIDs?.ToList() ?? throw new ArgumentNullException(nameof(ownerIDs)); if (!OwnerIDs.Any()) { throw new ArgumentException(nameof(ownerIDs)); } Modules = modules?.ToList() ?? throw new ArgumentNullException(nameof(modules)); if (!Modules.Any()) { throw new ArgumentException(nameof(modules)); } DiscordClient = discordClient ?? throw new ArgumentNullException(nameof(discordClient)); Communicator = communicator; }
public CommandRoutingService( FrameworkConfiguration config, BaseSocketClient client, ICommunicator communicator, IFrameworkGuildConfigProvider guildConfigProvider, ICommandParser commandParser, ILogger <CommandRoutingService> logger, ILoggerFactory loggerFactory) { _client = client; _clientServiceProvider = config.ClientServiceProvider; _communicator = communicator; _defaultCommandPrefix = config.DefaultCommandPrefix; _ownerIDs = config.OwnerIDs; _guildConfigProvider = guildConfigProvider; _commandParser = commandParser; _logger = logger; _loggerFactory = loggerFactory; foreach (var module in config.Modules) { AddModule(module); } }
public FrameworkConfigurationBuilder WithGuildConfigProvider(IFrameworkGuildConfigProvider guildConfigProvider) { _guildConfigProvider = guildConfigProvider; return(this); }