public static void CreateAccount(string[] args)
        {
            var alias = Helper.Read<string>(args, 0);
            var email = Helper.Read<string>(args, 1);
            var password = Helper.Read<string>(args, 2);

            if (alias != null && email != null && password != null)
            {
                var salt = Helper.GenerateRandomKey(8).ToHexString();
                var result = DB.Auth.Any<Account>(a => a.Email == email || a.Alias == alias);

                if (!result)
                {
                    var srp = new SRP6a(salt);

                    srp.CalculateX(email, password, false);

                    var account = new Account
                    {
                        Id               = DB.Auth.GetAutoIncrementValue<Account, uint>(),
                        Email            = email,
                        Alias            = alias,
                        PasswordVerifier = srp.V.ToHexString(),
                        Salt             = salt,
                        GatewayTicket    = ""
                    };

                    if (DB.Auth.Add(account))
                    {
                        Log.Normal($"Account 'Email: {email}, Alias: {alias}' successfully created.");

                        // Unlock 10 more character slots.
                        DB.Auth.Add(new AccountEntitlement
                        {
                            AccountId = account.Id,
                            Id        = (uint)Entitlement.BaseCharacterSlots,
                            Value     = 10
                        });
                    }
                }
                else
                    Log.Error($"Account 'Email: {email}' or 'Alias: {alias}' already in database.");
            }
        }
        public static void CreateAccount(string[] args)
        {
            var email = Helper.Read<string>(args, 0);
            var loginName = Helper.Read<string>(args, 1);
            var password = Helper.Read<string>(args, 2);

            if (email != null && password != null && loginName != null)
            {
                var salt = Helper.GenerateRandomKey(8).ToHexString();
                var result = DB.Auth.Any<Account>(a => a.Email == email || a.LoginName == loginName);

                if (!result)
                {
                    var srp = new SRP6a(salt);

                    srp.CalculateX(email, password, false);

                    var account = new Account
                    {
                        Email = email,
                        LoginName = loginName,
                        PasswordVerifier = srp.V.ToHexString(),
                        Salt = salt
                    };

                    var accountId = DB.Auth.GetAutoIncrementValue<Account, uint>();
                    var gameAccountId = DB.Auth.GetAutoIncrementValue<GameAccount, uint>();

                    var gameAccount = new GameAccount
                    {
                        AccountId = accountId,
                        Alias     = $"{accountId}#{gameAccountId}",
                    };

                    if (DB.Auth.Add(account) && DB.Auth.Add(gameAccount))
                        Console.WriteLine($"Account 'Email: {email}, LoginName: {loginName}' successfully created.");
                }
                else
                    Console.WriteLine($"Account 'Email: {email}' or 'LoginName: {loginName}' already in database.");
            }
        }