コード例 #1
0
ファイル: P_20D.cs プロジェクト: theskytalos/Open-WYD-Server
        // Controlador
        public static void Controller(Client client, P_20D rcv)
        {
            if (!Regex.IsMatch(rcv.UserName, @"^[A-Za-z0-9]{4,12}$"))
            {
                client.Close("Somente letras e números no login. 4 a 12 caracteres.");
            }
            else if (!Regex.IsMatch(rcv.Password, @"^[A-Za-z0-9]{4,10}$"))
            {
                client.Close("Somente letras e números na senha. 4 a 10 caracteres.");
            }
            else
            {
                // Pequeno LOG da conta
                Log.Information($"UserName: {rcv.UserName}, {rcv.UserName.Length}");
                Log.Information($"Password: {rcv.Password}, {rcv.Password.Length}");

                // Define os dados da conta na Account do cliente
                client.Account.SetLogin(rcv.UserName, rcv.Password, $"{Config.Random.Next ( 1000 , 9999 )}", new Character [4]);

                // Prepara o pacote de login
                P_10A p010A = P_10A.New(client);

                p010A.UserName = rcv.UserName;

                // Envia os pacotes pro login
                client.Send(p010A);
                client.Send(P_101.New($"Entre com sua senha numérica! [{client.Account.Numeric}]"));

                // Atualiza o status do cliente
                client.Status = ClientStatus.Numeric;
            }
        }
コード例 #2
0
        // Controlador
        public static void Controller(Client client, P_20D rcv)
        {
            if (!Regex.IsMatch(rcv.UserName, @"^[A-Za-z0-9]{4,12}$"))
            {
                client.Close("Somente letras e números no login. 4 a 12 caracteres.");
            }
            else if (!Regex.IsMatch(rcv.Password, @"^[A-Za-z0-9]{4,10}$"))
            {
                client.Close("Somente letras e números na senha. 4 a 10 caracteres.");
            }
            else
            {
                Account account = UserAccountDAO.loadAccount(rcv.UserName, rcv.Password);

                //TODO: remover apos finalizar o emulador
                if (account == null)
                {
                    UserAccountDAO.CreateOrUpdateAccount(new Account(rcv.UserName, rcv.Password));
                    account = UserAccountDAO.loadAccount(rcv.UserName, rcv.Password);
                }

                if (account != null)
                {
                    client.Account = account;
                    // Prepara o pacote de login
                    P_10A p010A = P_10A.New(client);

                    p010A.UserName = rcv.UserName;

                    // Envia os pacotes pro login
                    client.Send(p010A);
                    client.Send(P_101.New($"Entre com sua senha numérica!"));

                    // Atualiza o status do cliente
                    client.Status = ClientStatus.Numeric;
                }
                else
                {
                    client.Send(P_101.New($"Usuario ou Senha invalida!"));
                }
            }
        }