示例#1
0
        void InitializeCommandProcessors()
        {
            var joinProcessor = new JoinCommandProcessor();

            joinProcessor.Joined += (channel, username) =>
                                    Dispatcher.Invoke(() => JoinedRoom?.Invoke(channel, username));
            joinProcessor.Joined += (channel, username) => {
                // Bot successfully connected to the channel.
                string lowerName = Connection.Username.ToLowerInvariant();
                if (channel == Connection.Channel && username == lowerName)
                {
                    Dispatcher.Invoke(() => Connected?.Invoke());
                }
            };

            var messageProcessor = new MessageCommandProcessor();

            messageProcessor.MessageReceived += message =>
                                                Dispatcher.Invoke(() => MessageReceived?.Invoke(message));

            var userStateProcessor = new UserStateCommandProcessor();

            userStateProcessor.AcquireUserState += user =>
                                                   Dispatcher.Invoke(() => AcquireUserState?.Invoke(user));

            // Attach processors.
            commandProcessors = new Dictionary <string, ITwitchCommandProcessor>();
            commandProcessors.Add("JOIN", joinProcessor);
            commandProcessors.Add("PRIVMSG", messageProcessor);
            commandProcessors.Add("USERSTATE", userStateProcessor);
            commandProcessors.Add("PING", new PingCommandProcessor());
        }
示例#2
0
 public void InitializeTest()
 {
     eventUser                   = null;
     eventTriggerCount           = 0;
     connection                  = new TwitchConnectionMock("test", "#test");
     processor                   = new UserStateCommandProcessor();
     processor.AcquireUserState += user => {
         eventUser = user;
         eventTriggerCount++;
     };
 }