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);
                }
            });
        }
예제 #2
0
        private void OnOpenConnectionFailed(IConnectionError obj)
        {
            UpdateStatus(Status.Disconnected);
            SpinConnectionError spinConnectionError = obj as SpinConnectionError;

            if (spinConnectionError != null)
            {
                string formattedText = TextCollectionUtility.AuthenticationErrorKeys.GetFormattedText(spinConnectionError.error);
                switch (spinConnectionError.error)
                {
                case SpinProtocol.ConnectionErrors.NickNameRequired:
                    RequestNickname();
                    break;

                case SpinProtocol.ConnectionErrors.BadCredentials:
                case SpinProtocol.ConnectionErrors.InvalidAuthenticationInfo:
                case SpinProtocol.ConnectionErrors.SubscriptionRequired:
                case SpinProtocol.ConnectionErrors.AdminRightsRequired:
                case SpinProtocol.ConnectionErrors.AccountKnonwButBanned:
                case SpinProtocol.ConnectionErrors.AccountKnonwButBlocked:
                case SpinProtocol.ConnectionErrors.BetaAccessRequired:
                    CreateDisconnectedPopup(formattedText, DisconnectionStrategy.ReturnToLoginAndChangeAccount);
                    break;

                case SpinProtocol.ConnectionErrors.ServerTimeout:
                case SpinProtocol.ConnectionErrors.ServerError:
                case SpinProtocol.ConnectionErrors.AccountsBackendError:
                    CreateDisconnectedPopup(formattedText, DisconnectionStrategy.ReturnToLogin);
                    break;

                case SpinProtocol.ConnectionErrors.IpAddressRefused:
                    CreateDisconnectedPopup(formattedText, DisconnectionStrategy.QuitApplication);
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
                return;
            }
            ConnectionInterruptedError connectionInterruptedError = obj as ConnectionInterruptedError;

            if (connectionInterruptedError != null)
            {
                ServerDisconnectionInfo serverDisconnectionInfo = connectionInterruptedError.disconnectionInfo as ServerDisconnectionInfo;
                if (serverDisconnectionInfo != null)
                {
                    Log.Info($"Disconnection occured during authentication {connectionInterruptedError.disconnectionInfo}", 209, "C:\\BuildAgents\\AgentB\\work\\cub_client_win64_develop\\client\\DofusCube.Unity\\Assets\\Core\\Code\\Network\\ConnectionHandler.cs");
                    string formattedText2 = TextCollectionUtility.DisconnectionReasonKeys.GetFormattedText(serverDisconnectionInfo.reason);
                    CreateDisconnectedPopup(formattedText2, DisconnectionStrategy.ReturnToLogin);
                }
                else if (connectionInterruptedError.disconnectionInfo is NetworkDisconnectionInfo)
                {
                    if (m_autoReconnect)
                    {
                        Reconnect();
                        return;
                    }
                    Log.Info($"Disconnection occured during authentication {connectionInterruptedError.disconnectionInfo}", 224, "C:\\BuildAgents\\AgentB\\work\\cub_client_win64_develop\\client\\DofusCube.Unity\\Assets\\Core\\Code\\Network\\ConnectionHandler.cs");
                    string cause = RuntimeData.FormattedText(94930);
                    CreateDisconnectedPopup(cause, DisconnectionStrategy.ReturnToLogin);
                }
                return;
            }
            NetworkConnectionError networkConnectionError = obj as NetworkConnectionError;

            if (networkConnectionError != null)
            {
                if (m_autoReconnect)
                {
                    Reconnect();
                    return;
                }
                Log.Info($"Error occured during authentication {networkConnectionError.exception}", 244, "C:\\BuildAgents\\AgentB\\work\\cub_client_win64_develop\\client\\DofusCube.Unity\\Assets\\Core\\Code\\Network\\ConnectionHandler.cs");
                string cause2 = RuntimeData.FormattedText(34942);
                CreateDisconnectedPopup(cause2, DisconnectionStrategy.ReturnToLogin);
            }
            else
            {
                Log.Info($"Error while connecting: {obj}", 251, "C:\\BuildAgents\\AgentB\\work\\cub_client_win64_develop\\client\\DofusCube.Unity\\Assets\\Core\\Code\\Network\\ConnectionHandler.cs");
                string cause3 = RuntimeData.FormattedText(36698, obj.ToString());
                CreateDisconnectedPopup(cause3, DisconnectionStrategy.ReturnToLogin);
            }
        }