MineFrog.Player.HandleLogin C# (CSharp) Method

HandleLogin() private method

private HandleLogin ( object incoming ) : void
incoming object
return void
        private void HandleLogin(object incoming)
        {
            Stopwatch sw = Stopwatch.StartNew();
            var data = (byte[]) incoming;

            if (data[0] != ProtocolVersion)
            {
                SendKick("Invalid Protocol version!");
                return;
            }

            Username = Asen.GetString(data, 1, 64).Trim();
            string hash = Asen.GetString(data, 65, 32).Trim();
            byte type = data[129];

            Average1.Add(sw.ElapsedTicks);
            sw = Stopwatch.StartNew();
            if (Configuration.VERIFY && _ip != "127.0.0.1")
            {
                if (PlayerHandler.Players.Count >= Configuration.MAXPLAYERS)
                {
                    SendKick("Server is full!");
                }
                if (hash != BitConverter.ToString(md5.ComputeHash(Asen.GetBytes(Configuration.ServerSalt + Username))).Replace("-", "").ToLower().TrimStart('0'))
                {
                    SendKick("Account could not be verified, try again.");
                    Server.Log(Server.HeartBeat._hash + "", LogTypesEnum.Debug);
                    Server.Log("'" + hash + "' != '" + BitConverter.ToString(md5.ComputeHash(Asen.GetBytes(Configuration.ServerSalt + Username))).Replace("-", "").ToLower().TrimStart('0') + "'", LogTypesEnum.Debug);
                    return;
                }
            }

            Average2.Add(sw.ElapsedTicks);
            sw = Stopwatch.StartNew();

            pdb = PDB.Find(Username.Trim().ToLower());
            if(pdb == null)
            {
                var dbData = new object[] {Username, "", _ip, (byte) 0, 0, false, false};
                try
                {
                    UID = Server.users.NewRow(dbData);
                }
                catch (Exception e)
                {
                    throw new Exception("FUCK");
                }

                //UID = Server.users.NewRow(dbData);
                pdb = new PDB(UID, dbData);
            }
            else
            {
                UID = pdb.UID;
            }

            Average3.Add(sw.ElapsedTicks);
            sw = Stopwatch.StartNew();

            SendGlobalMessage(Username + " Logged In.");
            PlayerHandler.Connections.Remove(this);
            UserId = FreeId();
            PlayerHandler.Players.Add(UserId, this);
            Average4.Add(sw.ElapsedTicks);

            SendMap();

            _isLoggedIn = true;
        }