private void DoRequest(TaskCompletionSource <ISpinCredentials> task)
        {
            string login    = PlayerPreferences.useGuest ? PlayerPreferences.guestLogin : PlayerPreferences.lastLogin;
            string password = PlayerPreferences.useGuest ? PlayerPreferences.guestPassword : PlayerPreferences.lastPassword;

            HaapiManager.ExecuteRequest(() => HaapiManager.accountApi.CreateTokenWithPassword(login, password, (long?)ApplicationConfig.GameAppId), delegate(RAccountApi <Token> res)
            {
                Log.Info("CreateTokenWithPassword success ! Login="******"C:\\BuildAgents\\AgentB\\work\\cub_client_win64_develop\\client\\DofusCube.Unity\\Assets\\Core\\Code\\TEMPFastEnterMatch\\Auth\\ConnectionMethod\\ICredentialProvider.cs");
                task.SetResult(new AnkamaTokenCredentials(res.Data.get__Token()));
            }, delegate(Exception exception)
            {
                ApiException val = exception as ApiException;
                if (val != null && val.get_ErrorCode() == 601)
                {
                    Log.Error($"CreateTokenWithPassword error: {exception}", 284, "C:\\BuildAgents\\AgentB\\work\\cub_client_win64_develop\\client\\DofusCube.Unity\\Assets\\Core\\Code\\TEMPFastEnterMatch\\Auth\\ConnectionMethod\\ICredentialProvider.cs");
                    ErrorAccountLogin val2 = JsonConvert.DeserializeObject <ErrorAccountLogin>((string)val.get_ErrorContent());
                    SpinConnectionError spinConnectionError = (val2 == null) ? null : HaapiHelper.From(val2);
                    task.SetException(spinConnectionError ?? exception);
                }
                else
                {
                    Log.Error($"CreateTokenWithPassword error: {exception}", 291, "C:\\BuildAgents\\AgentB\\work\\cub_client_win64_develop\\client\\DofusCube.Unity\\Assets\\Core\\Code\\TEMPFastEnterMatch\\Auth\\ConnectionMethod\\ICredentialProvider.cs");
                    task.SetException(exception);
                }
            });
        }
Beispiel #2
0
        public static SpinConnectionError From(ErrorAccountLogin error)
        {
            if (Enum.TryParse(error.get_Reason(), out ErrorAccountLoginCode result))
            {
                switch (result)
                {
                case ErrorAccountLoginCode.FAILED:
                    return(new SpinConnectionError(SpinProtocol.ConnectionErrors.BadCredentials));

                case ErrorAccountLoginCode.BAN:
                    return(new SpinConnectionError(SpinProtocol.ConnectionErrors.AccountKnonwButBanned));

                case ErrorAccountLoginCode.LOCKED:
                    return(new SpinConnectionError(SpinProtocol.ConnectionErrors.AccountKnonwButBlocked));

                case ErrorAccountLoginCode.DELETED:
                case ErrorAccountLoginCode.NOACCOUNT:
                    return(new SpinConnectionError(SpinProtocol.ConnectionErrors.NoneOrOtherOrUnknown));

                case ErrorAccountLoginCode.BLACKLIST:
                case ErrorAccountLoginCode.BRUTEFORCE:
                    return(new SpinConnectionError(SpinProtocol.ConnectionErrors.IpAddressRefused));

                case ErrorAccountLoginCode.BETACLOSED:
                    return(new SpinConnectionError(SpinProtocol.ConnectionErrors.BetaAccessRequired));

                case ErrorAccountLoginCode.OTPTIMEFAILED:
                case ErrorAccountLoginCode.SECURITYCARD:
                    return(new SpinConnectionError(SpinProtocol.ConnectionErrors.InvalidAuthenticationInfo));

                case ErrorAccountLoginCode.ACCOUNT_LINKED:
                case ErrorAccountLoginCode.ACCOUNT_INVALID:
                case ErrorAccountLoginCode.ACCOUNT_SHIELDED:
                case ErrorAccountLoginCode.ACCOUNT_NO_CERTIFY:
                    return(new SpinConnectionError(SpinProtocol.ConnectionErrors.NoneOrOtherOrUnknown));

                case ErrorAccountLoginCode.RESETANKAMA:
                case ErrorAccountLoginCode.PARTNER:
                case ErrorAccountLoginCode.MAILNOVALID:
                    return(new SpinConnectionError(SpinProtocol.ConnectionErrors.NoneOrOtherOrUnknown));

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }
            return(null);
        }