예제 #1
0
        public MatchManager(ILogger <MatchManager> logger,
                            ICharacterCollection charColl, IItemCollection itemColl,
                            IRealtimeEventBroadcastService events, IMatchEventBroadcastService matchEvents,
                            IRealtimeMonitor realtime, IChallengeEventBroadcastService challengeEvents,
                            IMatchMessageBroadcastService matchMessages, IAdminMessageBroadcastService adminMessages,
                            IChallengeManager challenges, ISecondTimer timer)
        {
            _Logger = logger ?? throw new ArgumentNullException(nameof(logger));

            _CharacterColleciton = charColl ?? throw new ArgumentNullException(nameof(charColl));
            _ItemCollection      = itemColl ?? throw new ArgumentNullException(nameof(itemColl));

            _Realtime        = realtime ?? throw new ArgumentNullException(nameof(realtime));
            _RealtimeEvents  = events ?? throw new ArgumentNullException(nameof(events));
            _MatchEvents     = matchEvents ?? throw new ArgumentNullException(nameof(matchEvents));
            _ChallengeEvents = challengeEvents ?? throw new ArgumentNullException(nameof(challengeEvents));

            _MatchMessages = matchMessages ?? throw new ArgumentNullException(nameof(matchMessages));
            _AdminMessages = adminMessages ?? throw new ArgumentNullException(nameof(adminMessages));
            _Challenges    = challenges ?? throw new ArgumentNullException(nameof(challenges));

            _Timer = timer ?? throw new ArgumentNullException(nameof(timer));

            SetSettings(new MatchSettings());

            AddListeners();
        }
예제 #2
0
        public ChallengeManager(ILogger <ChallengeManager> logger,
                                IChallengeEventBroadcastService challengeEvents, ITwitchChatBroadcastService twitchChat)
        {
            _Logger = logger ?? throw new ArgumentNullException(nameof(logger));

            _ChallengeEvents = challengeEvents ?? throw new ArgumentNullException(nameof(challengeEvents));
            _TwitchChat      = twitchChat ?? throw new ArgumentNullException(nameof(twitchChat));

            LoadChallenges();
            _Logger.LogInformation($"Loaded challenges:\n{String.Join("\n", _AllChallenges.Select(iter => $"\t{iter.ID}/{iter.Name}: {iter.Description}"))}");

            _TwitchChat.OnChatMessage += OnTwitchChat;

            _PollTimer.Interval  = 1000;
            _PollTimer.AutoReset = true;
            _PollTimer.Elapsed  += OnTimerTick;
        }