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(); }
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; }