Esempio n. 1
0
        public void Handle(IncomingMessage msg)
        {
            IRCServer server  = msg.Server;
            string    ourNick = server.Nick;

            if (msg.Command.Equals("NICK"))
            {
                string whoChanging = msg.Sender;
                string changingTo  = msg.Target;
                if (whoChanging.Equals(ourNick))
                {
                    server.Nick = changingTo;
                    server.SetAttemptNickChange(false);
                }
                else
                {
                    // update user nick list
                }
            }
            else if (msg.Command.Equals("ERROR"))
            {
                server.Dispose();
            }
            else
            {
                string raw = msg.Raw;
                switch (msg.Command)
                {
                // nick change
                case "433":
                    if (server.Connected)
                    {
                        // are we attempting a nick name change?
                        if (server.IsAttemptNickChange())
                        {
                            server.Nick = server.LastNick;
                            server.SetAttemptNickChange(false);
                        }
                    }
                    else
                    {
                        string nick;
                        if (server.Nick.Equals(server.AltNick))
                        {
                            nick = server.AltNick + 1;
                        }
                        else
                        {
                            nick = server.AltNick;
                        }
                        server.Nick = nick;
                    }
                    break;
                }
            }
        }