Schumix.Irc.Network.HandleIrcCommand C# (CSharp) Method

HandleIrcCommand() private method

private HandleIrcCommand ( string message ) : void
message string
return void
        private void HandleIrcCommand(string message)
        {
            var IMessage = new IRCMessage();
            IMessage.ServerId = _serverid;
            IMessage.ServerName = _servername;
            string[] IrcCommand = message.Split(SchumixBase.Space);
            IrcCommand[0] = IrcCommand[0].Remove(0, 1, SchumixBase.Colon);
            IMessage.Hostmask = IrcCommand[0];

            if(IrcCommand.Length > 2)
                IMessage.Channel = sUtilities.SqlEscape(IrcCommand[2]);

            string[] userdata = IMessage.Hostmask.Split('!');
            IMessage.Nick = userdata[0];
            IMessage.SqlEscapeNick = sUtilities.SqlEscape(userdata[0]);

            if(userdata.Length > 1)
            {
                string[] hostdata = userdata[1].Split('@');
                IMessage.User = hostdata[0];
                IMessage.Host = hostdata[1];
            }

            string opcode = IrcCommand[1];
            IMessage.Info = IrcCommand;
            IMessage.Args = IrcCommand.SplitToString(3, SchumixBase.Space);
            IMessage.Args = IMessage.Args.Remove(0, 1, SchumixBase.Colon);
            IMessage.SetMessageType();

            if(IrcMethodMap.ContainsKey(opcode))
            {
                IrcMethodMap[opcode].Method.Invoke(IMessage);
                return;
            }
            else
            {
                if(IrcCommand[0] == "PING")
                {
                    sSender.Pong(IrcCommand[1].Remove(0, 1, SchumixBase.Colon));
                    return;
                }
                else if(IrcCommand[0] == "ERROR")
                {
                    NetworkQuit = true;
                    return;
                }
                else
                {
                    if(ConsoleLog.CLog)
                        Log.Notice("HandleIrcCommand", sLConsole.GetString("Received unhandled opcode: {0}"), opcode);
                }
            }
        }