private void Listener_OnNames(object sender, NamesEventArgs e) { OnNames?.Invoke(this, new NamesEventArgs(e.Channel, e.Nicks, e.Last)); Channel chan = _channels[e.Channel]; if (!_recievingNames) { _recievingNames = true; } foreach (string nick in e.Nicks) { _tempNames.Add(User.FromNames(nick)); } Trace.WriteLine("Added chunk of " + e.Nicks.Length + " names", "Names"); if (e.Last) { chan.LoadNewNames(_tempNames); _recievingNames = false; _tempNames.Clear(); } }
public void ProcessNamesReply(IrcMessage ircMessage) { var tokens = ircMessage.Tokens; if (tokens[2].EndsWith("=")) //hack: Gamesurge sometimes does this { var newtokens = new List <string>(tokens); newtokens.RemoveAt(2); newtokens.Insert(2, tokens[2].Remove(tokens[2].Length - 1)); newtokens.Insert(3, "="); tokens = newtokens.ToArray(); } tokens[5] = RemoveLeadingColon(tokens[5]); int numberOfUsers = tokens.Length - 5; string[] users = new string[numberOfUsers]; Array.Copy(tokens, 5, users, 0, numberOfUsers); OnNames?.Invoke(this, new NamesEventArgs(tokens[4], users, false)); //Trace.WriteLine("Names", "IRC"); }