コード例 #1
0
ファイル: Server.cs プロジェクト: ortzinator/mutinyirc
        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();
            }
        }
コード例 #2
0
        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");
        }