void SpeedRunsLive_MessageReceived(object sender, IrcMessageEventArgs e) { if (e.Targets.Count > 0 && e.Targets[0] == RaceChannel) { var realName = RaceChannel.Users.FirstOrDefault(x => x.User.NickName == e.Source.Name).User.RealName; ProcessRaceChannelMessage(e.Source.Name, e.Text); } else if (e.Targets.Count > 0 && e.Targets[0] == LiveSplitChannel) { ProcessLiveSplitChannelMessage(e.Source.Name, e.Text); } else if (e.Targets.Count > 0 && e.Targets[0] == MainChannel) { ProcessMainChannelMessage(e.Source.Name, e.Text); } if (MessageReceived != null) { var rights = SRLIRCRights.Normal; if (e.Targets[0] is IrcChannel) { var target = e.Targets[0] as IrcChannel; var source = target.Users.FirstOrDefault(x => x.User.NickName == e.Source.Name); if (source != null) { rights = SRLIRCRightsHelper.FromIrcChannelUser(source); } } MessageReceived(this, new Tuple <string, SRLIRCUser, string>(e.Targets[0].Name, new SRLIRCUser(e.Source.Name, rights), e.Text)); } }
public IEnumerable <SRLIRCUser> GetRaceChannelUsers() { if (RaceChannel == null) { return(new SRLIRCUser[0]); } return(RaceChannel.Users .Select(x => new SRLIRCUser( x.User.NickName, SRLIRCRightsHelper.FromIrcChannelUser(x) ) ) .OrderBy(x => ((x.Rights == SRLIRCRights.Operator) ? "0" : (x.Rights == SRLIRCRights.Voice) ? "1" : "2") + x.Name )); }