Example #1
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;
        }
Example #2
0
        public HostedTwitchEventService(ILogger <HostedTwitchEventService> logger,
                                        ITwitchChatBroadcastService chatBroadcast,
                                        ILogger <TwitchPubSub> twitchLogger, IOptions <TwitchOptions> twitchOptions)
        {
            _ChatBroadcast = chatBroadcast ?? throw new ArgumentNullException(nameof(chatBroadcast));

            _Logger = logger;

            _TwitchEvents = new TwitchPubSub(twitchLogger);

            try {
                ClientOptions options = new ClientOptions()
                {
                };

                WebSocketClient socket = new WebSocketClient(options);
                _TwitchClient = new TwitchClient(socket);
            } catch (Exception ex) {
                _Logger.LogError($"Error in HostedTwitchEventService: {ex}");
                throw;
            }

            _Options = twitchOptions;
        }