コード例 #1
0
        public ModerationModule(ILogger <ModerationModule> logger,
                                IServerService servers,
                                IConfiguration configuration,
                                IServerRepository serverRepository,
                                IProfanityRepository profanityRepository,
                                DiscordSocketClient client)
        {
            _logger              = logger;
            _servers             = servers;
            _configuration       = configuration;
            _serverRepository    = serverRepository;
            _profanityRepository = profanityRepository;
            _client              = client;
            var prefixConfigValue = _configuration.GetSection("PrefixMaxLength").Value;

            if (int.TryParse(prefixConfigValue, out int maxLength))
            {
                _prefixMaxLength = maxLength;
            }
            else
            {
                _prefixMaxLength = 8;
                _logger.LogError("Unable to set max prefix length, using default: {defaultValue}", _prefixMaxLength);
            }
        }
コード例 #2
0
        public CommandHandler(DiscordSocketClient client,
                              CommandService commands,
                              ISettings settings,
                              IServiceProvider serviceProvider,
                              ILogger <CommandHandler> logger,
                              IServerService servers,
                              BannerImageService bannerImageService,
                              IAutoRoleService autoRoleService,
                              IProfanityRepository profanityRepository,
                              IApiService apiService,
                              IWelcomeMessageRepository welcomeMessageRepository,
                              IPartMessageRepository partMessageRepository,
                              IUserRepository userRepository,
                              IInviteRepository inviteRepository,
                              IServerInviteRepository serverInviteRepository,
                              IServerRepository serverRepository)
        {
            _client                   = client;
            _commands                 = commands;
            _settings                 = settings;
            _serviceProvider          = serviceProvider;
            _logger                   = logger;
            _servers                  = servers;
            _bannerImageService       = bannerImageService;
            _autoRoleService          = autoRoleService;
            _profanityRepository      = profanityRepository;
            _apiService               = apiService;
            _welcomeMessageRepository = welcomeMessageRepository;
            _partMessageRepository    = partMessageRepository;
            _userRepository           = userRepository;
            _inviteRepository         = inviteRepository;
            _serverInviteRepository   = serverInviteRepository;
            _serverRepository         = serverRepository;

            _client.MessageReceived += OnMessageReceived;
            _client.UserJoined      += OnUserJoined;
            _client.ReactionAdded   += OnReactionAdded;
            _client.MessageUpdated  += OnMessageUpated;
            _client.UserLeft        += OnUserLeft;
            _client.JoinedGuild     += OnJoinedGuild;
            _client.Ready           += OnReady;
            _client.InviteCreated   += OnInviteCreated;

            _commands.CommandExecuted += OnCommandExecuted;

            ProfanityHelper.ProfanityRepository = profanityRepository;

            Task.Run(async() => await MuteHandler.MuteWorker(client));
            Task.Run(async() => await PomodoroHandler.PomodoroWorker(client));
        }