Beispiel #1
0
        private void OnIrcStatement(object sender, IrcUnknownStatementEventArgs e)
        {
            var       @params = e.Data.Parameters;
            IrcString nickname;

            switch (e.Data.Command)
            {
            case "311":
                if (@params.Count >= 4)
                {
                    nickname = @params[1];

                    if (Pending.ContainsKey(nickname))
                    {
                        Pending[nickname].Identity.Nickname = nickname;
                        Pending[nickname].Identity.Username = @params[2];
                        Pending[nickname].Identity.Hostname = @params[3];
                    }
                }

                break;

            case "330":
                if (@params.Count >= 3 && Pending.ContainsKey(@params[1]))
                {
                    Pending[@params[1]].Account = @params[2];
                }

                break;

            case "318":

                nickname = @params[1];

                if (!Pending.TryGetValue(nickname, out var data))
                {
                    break;
                }

                Pending.Remove(nickname);

                foreach (var callback in data.Callbacks)
                {
                    callback.Invoke(data);
                }

                break;
            }
        }
 protected void RaiseGotUnknownIrcStatement(IrcUnknownStatementEventArgs e)
 {
     Dispatch(GotUnknownIrcStatement, e);
 }
 protected virtual void OnGotUnknownIrcStatement(IrcUnknownStatementEventArgs e)
 {
     RaiseGotUnknownIrcStatement(e);
 }