public ModeratorCommands(
     IChatModeChanger changer,
     ILinkedAccountRepo linkedAccountRepo,
     IResponseCommandRepo responseCommandRepo)
 {
     _changer             = changer;
     _linkedAccountRepo   = linkedAccountRepo;
     _responseCommandRepo = responseCommandRepo;
 }
Ejemplo n.º 2
0
        public static CommandProcessor SetUpCommandProcessor(
            ILoggerFactory loggerFactory,
            ArgsParser argsParser,
            Databases databases,
            StopToken stopToken,
            IMessageSender messageSender,
            IChatModeChanger chatModeChanger,
            IImmutableSet <Common.PkmnSpecies> knownSpecies)
        {
            var commandProcessor = new CommandProcessor(
                loggerFactory.CreateLogger <CommandProcessor>(),
                databases.CommandLogger, argsParser);

            IEnumerable <Command> commands = new[]
            {
                new EasterEggCommands().Commands,
                new StaticResponseCommands().Commands,
                new UserCommands(
                    databases.UserRepo, pokeyenBank: databases.PokeyenBank, tokenBank: databases.TokensBank,
                    messageSender
                    ).Commands,
                new PollCommands(databases.PollRepo).Commands,
                new ManagePollCommands(databases.PollRepo).Commands,
                new BadgeCommands(databases.BadgeRepo, databases.UserRepo, messageSender, knownSpecies).Commands,
                new OperatorCommands(
                    stopToken, databases.PokeyenBank, databases.TokensBank,
                    messageSender: messageSender, databases.BadgeRepo, databases.UserRepo
                    ).Commands,
                new ModeratorCommands(
                    chatModeChanger, databases.LinkedAccountRepo, databases.ResponseCommandRepo
                    ).Commands
            }.SelectMany(cmds => cmds).Concat(new[]
            {
                new HelpCommand(commandProcessor).Command
            });

            foreach (Command command in commands)
            {
                commandProcessor.InstallCommand(command);
            }
            SetUpDynamicCommands(loggerFactory.CreateLogger("setups"), commandProcessor, databases.ResponseCommandRepo);
            return(commandProcessor);
        }
Ejemplo n.º 3
0
 public ModeratorCommands(IEnumerable <string> moderatorNames, IEnumerable <string> operatorNames, IChatModeChanger changer)
 {
     _moderatorNamesLower = operatorNames.Concat(moderatorNames).Select(s => s.ToLowerInvariant())
                            .Distinct().ToImmutableHashSet(); //add both mods and ops to mod list
     _changer = changer;
 }