Пример #1
0
        public TwitchMessage ParseTwitchMessageFromIrc(IrcClientOnPrivateMessageEventArgs args)
        {
            TwitchMessage retval = new TwitchMessage();
            string key = string.Concat(args.Channel, args.Name);

            TwitchExtra extra = new TwitchExtra(args.Tags);

            retval.Channel = args.Channel;
            retval.Message = args.Message;
            retval.SenderName = args.Name;
            retval.UserType = extra.UserType;
            retval.IsSubscriber = extra.IsSubscriber;
            retval.SubscriberLevel = extra.SubscriberLevel;
            retval.IsTurbo = extra.IsTurbo;
            retval.UserId = extra.UserId;
            retval.IsBits = extra.IsBits;
            retval.BitsLevel = extra.BitsLevel;
            retval.BitsSent = extra.BitsSent;

            if (!args.Channel.StartsWith("#"))
            {
                retval.IsWhisper = true;
                retval.Channel = args.Name;
                retval.WhisperChannel = args.Channel;
            }

            if (!string.IsNullOrEmpty(extra.DisplayName))
                retval.SenderDisplayName = extra.DisplayName;
            else
                retval.SenderDisplayName = args.Name;

            if(opslist.Contains(key))
            {
                retval.UserType |= TwitchUserTypes.Mod;
            }
            if (extra.IsSubscriber)
            {
                retval.UserType |= TwitchUserTypes.Subscriber;
            }
            if (args.Name.Equals(args.Channel.Substring(1)))
            {
                retval.UserType |= TwitchUserTypes.Broadcaster;
            }
            if (botmasters.Contains(args.Name))
            {
                retval.UserType |= TwitchUserTypes.Developper;
            }
            if (args.Name.Equals("citillara"))
            {
                retval.UserType |= TwitchUserTypes.Citillara;
            }

            return retval;
        }
Пример #2
0
 void m_client_OnPrivateMessage(IrcClient sender, IrcClientOnPrivateMessageEventArgs args)
 {
     var message = m_twitch_chat_manager.ParseTwitchMessageFromIrc(args);
     if(OnMessage != null)
         OnMessage(this, message);
 }