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; }
void m_client_OnPrivateMessage(IrcClient sender, IrcClientOnPrivateMessageEventArgs args) { var message = m_twitch_chat_manager.ParseTwitchMessageFromIrc(args); if(OnMessage != null) OnMessage(this, message); }