LocalPlayer
Summary
| Members | Descriptions |
|---|---|
enum ERHAPI_LoginResult | Login Results. |
enum ERHAPI_LocalPlayerLoginOSS | Login Online Subsystem Type. |
class URH_LocalPlayerLoginSubsystem | Login Subsystem for the local player. |
class URH_LocalPlayerPresenceSubsystem | Subsystem to manage the local players presence. |
class URH_LocalPlayerSessionSubsystem | Subsystem to manage sessions for the local player. |
class URH_LocalPlayerSubsystem | Subsystem to manage the local player. |
struct FRH_LoginResult | Struct for the login results. |
Members
enum ERHAPI_LoginResult
| Values | Descriptions |
|---|---|
| Success | Login was a success. |
| Fail_PartialInstall | Login denied because a partial install is underway. |
| Fail_LoginAlreadyPending | There is already a pending login for this LocalPlayer. |
| Fail_OSSMissing | There is no OnlineSubsystem to login with. Check that the LoginOSS is valid, and the OSS was started correctly |
| Fail_OSSNotSupported | OSS Is not supported by Rally Here |
| Fail_OSSLoginUINotShown | OSS Login UI could not be opened |
| Fail_OSSLoginUINoUserSelected | OSS Login UI could not be opened |
| Fail_OSSLogin | OnlineSubsystem login failed due to an OSS-specific reason. See the OSSErrorMessage for more details |
| Fail_OSSLogout | OSS User was logged out during our login operation. Login can be retried. |
| Fail_OSSNeedsProfile | OnlineSubsystem needs a valid selected profile. Call ShowProfileSelectionUI before logging in again |
| Fail_OSSAccountTypeNotSufficient | OSS User’s account type is not sufficient (e.g. they do not have Xbox Live Gold or PS+) |
| Fail_OSSUserNotFound | OSS User was not found, even after OSS Login completed. This usually means that there is no connection to Xbox Live/PSN/etc |
| Fail_OSSAgeRestriction | OSS User does not meet age requirements for online play |
| Fail_OSSPrivilegeCheck | OSS User does not meet requirements for online play. See FRH_LoginResult::PrivilegeResults and IOnlineIdentity::EPrivilegeResults |
| Fail_OSSAuthToken | OSS AuthToken could not be retrieved for a user that was logged into the OSS. This can be caused by a few reasons, such as the OSS account not being able to talk to the OSS network but being able to log into the account locally to the client machine |
| Fail_MustAcceptAgreements | User must accept all required agreements. See FRH_LoginResult::bMustAcceptEULA, FRH_LoginResult::bMustAcceptTOS, FRH_LoginResult::bMustAcceptPP |
| Fail_RHDenied | RH web login was denied. There are many reasons that can cause this, including misconfiguration of OSS IDs with the Rally Here APIs |
| Fail_RHUnknown | RH web login failed for an unknown reason. This usually means there was a server error of some kind. |
Login Results.
enum ERHAPI_LocalPlayerLoginOSS
| Values | Descriptions |
|---|---|
| None | No type, means RallyHere. |
| Login | Uses the Login OSS. |
| Nickname | Uses the Nickname OSS. |
Login Online Subsystem Type.
class URH_LocalPlayerLoginSubsystem
class URH_LocalPlayerLoginSubsystem
: public URH_LocalPlayerSubsystemPlugin
Login Subsystem for the local player.
Summary
| Members | Descriptions |
|---|---|
public FRH_OnLoginCompleteMulticast OnLoginComplete | Multicast delegate that gets broadcasted on login complete. |
public FRH_OnLoginCompleteDynamicMulticast BLUEPRINT_OnLoginComplete | Multicast delegate that gets broadcasted on login complete. |
public FName LoginOSSName | Online Subsystem to use for login. If not provided, will use the default OSS. |
public FName NicknameOSSName | Online Subsystem to use for getting the user’s display name for Rally Here. If not provided, will use the Login OSS. |
public bool bLoginAllowStoredRefreshToken | Is the login process allowed to load/store a refresh token for future login attempts? |
public bool bLoginDuringPartialInstall | Does the game allow logins before full installation has completed? (Only supported with HIREZ ENGINE changes) |
public bool bLoginOSSRequireLoginUIFirst | Should the OSS require show the login UI before the login attempt? |
public bool bNicknameOSSRequireLoginUIFirst | Should the OSS require show the login UI before the login attempt? |
public bool bLoginOSSRequireOnlinePlayToLogin | Does the game require access to play online (meeting the OSS age and purchase requirements, like Xbox Live and PSN) before completing login. |
public bool bNicknameOSSRequireOnlinePlayToLogin | Does the game require access to play online (meeting the OSS age and purchase requirements, like Xbox Live and PSN) before completing login. |
public bool bLoginOSSPromptAccountUpgradeIfInsufficient | Should the OSS prompt to upgrade the user’s account during login, if they failed due to invalid account type (e.g. not PS+ or Xbox Live Gold) |
public bool bNicknameOSSPromptAccountUpgradeIfInsufficient | Should the OSS prompt to upgrade the user’s account during login, if they failed due to invalid account type (e.g. not PS+ or Xbox Live Gold) |
public bool bLoginOSSRequireValidUserIdForFailedLogin | Should the OSS require a valid user id, even for failed logins. |
public bool bNicknameOSSRequireValidUserIdForFailedLogin | Should the OSS require a valid user id, even for failed logins. |
public bool bLogoutAndRetryLoginIfRefreshLoginFailed | Should we logout of the OSS and retry the login (that included a refresh token) failed? |
public bool bLoginOSSUseIDTokenAsPortalParentAccessToken | Should we use the ID Token for populating the PARENT Portal Access Token. |
public bool bLoginOSSUseIDTokenAsPortalAccessToken | Should we use the ID Token for populating the Portal Access Token. |
public bool bResolveRallyHereBaseURLAfterOSSLogin | Should an OSS Login trigger a Base URL Resolve on the URH_Integration? This is necessary for some OSSes (e.g. Switch/PS4) that don’t have sandbox information until after a login is attempted. |
public FString SavedCredentialPrefix | Prefix applied to the saved credentials on platforms that support storing the refresh token. |
public virtual void Initialize() | Initialize the subsystem. |
public virtual void Deinitialize() | Safely tears down the subsystem. |
public void SubmitAutoLogin(bool bAcceptEULA,bool bAcceptTOS,bool bAcceptPP,FRH_OnLoginComplete OnLoginCompleteDelegate) | Begins a complete multi-phased login to the OnlineSubsystem with the credentials provided on the command line, checking if the user has appropriate permissions, and logging into RallyHere. |
public void SubmitLogin(const FOnlineAccountCredentials & Credentials,FString CredentialRefreshToken,bool bAcceptEULA,bool bAcceptTOS,bool bAcceptPP,FRH_OnLoginComplete OnLoginCompleteDelegate) | Begins a complete multi-phased login to the OnlineSubsystem with the provided credentials, checking if the user has appropriate permissions, and logging into RallyHere. |
public void Logout() | Requests a logout on the server clearing the players auth credentials. |
public bool ShowLoginProfileSelectionUI(bool bShowOnlineOnly,FRH_OnProfileSelectionUIClosed OnClosed,ERHAPI_LocalPlayerLoginOSS OSSType) | Show an OSS-specific profile selection UI to the user. This is for Xbox and other platforms that support profile swapping. A valid profile is required to login on those platforms. |
public bool ShouldUseSavedCredentials() const | Are saved credentials allowed for auto-login? |
public IOnlineSubsystem * GetOSS(ERHAPI_LocalPlayerLoginOSS OSSType) const | Get the fully resolved OSS by type. |
public IOnlineSubsystem * GetLoginOSS() const | Get the fully resolved OSS to use for Login. |
public IOnlineSubsystem * GetNicknameOSS() const | Get the fully resolved OSS to use for getting a player’s display name for login. This triggers a second OSS login. |
public inline virtual bool IsCrossplayEnabled() const | Gets if crossplay is enabled. |
public inline virtual bool IsCommunicationEnabled() const | Gets if cvommunication is enabled. |
protected TArray< FString > IgnoreSavedCredentialsCommandLineKeys | Configurations to skip saved credentials. |
protected FDelegateHandle OnOSSLoginCompleteDelegateHandle | Delegate to listen for OSS login completion. |
protected bool bCrossplayEnabled | Stores if crossplay is enabled. |
protected bool bCommunicationEnabled | Stores if communication is enabled. |
protected virtual void PostResults(FRH_PendingLoginRequest& Req,constFRH_LoginResult & Res) | Posts the results from a login request. |
protected virtual void DoShowLoginOSSLoginUI(FRH_PendingLoginRequest & Req) | Prompts the online subsystem to show login UI. |
protected virtual void DoShowNicknameOSSLoginUI(FRH_PendingLoginRequest & Req) | Prompts the online subsystem to show the choose nickname login UI. |
protected virtual void NicknameOSSLoginUIClosed(TSharedPtr< const FUniqueNetId > UniqueId,const FOnlineError & Error,FRH_PendingLoginRequest Req) | Callback from the user closing the nickname selection on the online subsystem. |
protected virtual void LoginOSSLoginUIClosed(TSharedPtr< const FUniqueNetId > UniqueId,const FOnlineError & Error,FRH_PendingLoginRequest Req) | Callback from the user closing the login UI of the online subsystem. |
protected virtual void DoLoginOSSLogin(FRH_PendingLoginRequest & Req) | Starts the online subsystem login. |
protected virtual void DoNicknameOSSLogin(FRH_PendingLoginRequest & Req) | Starts the online subsystem nickname login. |
protected virtual void DoOSSLogin(FRH_PendingLoginRequest & Req,IOnlineSubsystem * OSS,OSSLoginCompleteFn OnComplete) | Starts the online subsystem login. |
protected virtual void OSSLoginComplete(int32 ControllerId,bool bSuccessful,const FUniqueNetId & UniqueId,const FString & ErrorMessage,FRH_PendingLoginRequest Req) | Handler for OSS Login Completion. |
protected virtual void OSSNicknameLoginComplete(int32 ControllerId,bool bSuccessful,const FUniqueNetId & UniqueId,const FString & ErrorMessage,FRH_PendingLoginRequest Req) | Handler for OSS Nickname Login Completion. |
protected virtual bool OnOSSLoginComplete(int32 ControllerId,bool bSuccessful,const FUniqueNetId & UniqueId,const FString & ErrorMessage,FRH_PendingLoginRequest & Req,IOnlineSubsystem * OSS,PendingLoginUniqueIdRef UniqueIdPtr,bool bOSSRequireValidUserIdForFailedLogin) | Handler for OSS Login Completion. |
protected virtual void ExternalUI_ShowLoginUIClosed(TSharedPtr< const FUniqueNetId > UniqueId,const int ControllerIndex,const FOnlineError & Error,FRH_OnProfileSelectionUIClosed OnClosed) | Callback for when the OSS login UI is closed. |
protected virtual void DoLoginOSSPrivilegeCheck(FRH_PendingLoginRequest & Req) | Checks users Privileges for OSS Login. |
protected virtual void DoNicknameOSSPrivilegeCheck(FRH_PendingLoginRequest & Req) | Checks users Privileges for OSS Nickname Login. |
protected virtual void DoOSSPrivilegeCheck(FRH_PendingLoginRequest & Req,IOnlineSubsystem * OSS,PendingLoginUniqueIdRef UniqueIdPtr,OSSPrivilegeResultsFn OnPrivilegeResults) | Checks users Privileges for OSS Login. |
protected virtual void OnLoginOSSPrivilegeResults(const FUniqueNetId & UniqueId,EUserPrivileges::Type Privilege,uint32 PrivilegeResults,FRH_PendingLoginRequest Req) | Handler for online subsystem callback for OSS Privilege check. |
protected virtual void OnNicknameOSSPrivilegeResults(const FUniqueNetId & UniqueId,EUserPrivileges::Type Privilege,uint32 PrivilegeResults,FRH_PendingLoginRequest Req) | Handler for online subsystem callback for OSS Nickname Privilege check. |
protected virtual bool OnOSSPrivilegeResults(const FUniqueNetId & UniqueId,EUserPrivileges::Type Privilege,uint32 PrivilegeResults,FRH_PendingLoginRequest Req,IOnlineSubsystem * OSS,bool bPromptForAccountUpgradeIfInsufficient) | Handler for online subsystem callback for OSS Privilege check. |
protected virtual void DoRallyHereLogin(FRH_PendingLoginRequest & Req) | Start the login to Rally Here. |
protected virtual void RallyHereLoginComplete(const RallyHereAPI::FResponse_Login & Resp,FRH_PendingLoginRequest Req) | Handle the response from the login to Rally Here. |
protected virtual FString GetSavedCredentialEnvironment(FName OSSName) const | Gets the cached credentials for the given online subsystem. |
protected virtual void CheckCrossplayPrivilege(const FUniqueNetId & UniqueId) | Checks the users OSS privileges for crossplay. |
protected virtual void HandleCheckCrossPlayPrivilegeComplete(const FUniqueNetId & UserId,EUserPrivileges::Type Privilege,uint32 PrivilegeResults) | Handles the response of the OSS crossplay privilege check. |
protected virtual void CheckCommunicationPrivilege(const FUniqueNetId & UniqueId) | Checks the users OSS privileges for communicataion. |
protected virtual void HandleCheckCommunicationPrivilegeComplete(const FUniqueNetId & UserId,EUserPrivileges::Type Privilege,uint32 PrivilegeResults) | Handles the response of the OSS communicaation privilege check. |
protected virtual void HandleAppReactivated() | Handles the app being restored from being suspended. |
protected virtual void HandleAppReactivatedGameThread() | Handles the app game thread being restored from being suspended. |
typedef TLogout | Type Define for logout calls. |
Members
public FRH_OnLoginCompleteMulticast OnLoginComplete
Multicast delegate that gets broadcasted on login complete.
public FRH_OnLoginCompleteDynamicMulticast BLUEPRINT_OnLoginComplete
Multicast delegate that gets broadcasted on login complete.
public FName LoginOSSName
Online Subsystem to use for login. If not provided, will use the default OSS.
public FName NicknameOSSName
Online Subsystem to use for getting the user’s display name for Rally Here. If not provided, will use the Login OSS.
public bool bLoginAllowStoredRefreshToken
Is the login process allowed to load/store a refresh token for future login attempts?
public bool bLoginDuringPartialInstall
Does the game allow logins before full installation has completed? (Only supported with HIREZ ENGINE changes)
public bool bLoginOSSRequireLoginUIFirst
Should the OSS require show the login UI before the login attempt?
public bool bNicknameOSSRequireLoginUIFirst
Should the OSS require show the login UI before the login attempt?
public bool bLoginOSSRequireOnlinePlayToLogin
Does the game require access to play online (meeting the OSS age and purchase requirements, like Xbox Live and PSN) before completing login.
public bool bNicknameOSSRequireOnlinePlayToLogin
Does the game require access to play online (meeting the OSS age and purchase requirements, like Xbox Live and PSN) before completing login.
public bool bLoginOSSPromptAccountUpgradeIfInsufficient
Should the OSS prompt to upgrade the user’s account during login, if they failed due to invalid account type (e.g. not PS+ or Xbox Live Gold)
public bool bNicknameOSSPromptAccountUpgradeIfInsufficient
Should the OSS prompt to upgrade the user’s account during login, if they failed due to invalid account type (e.g. not PS+ or Xbox Live Gold)
public bool bLoginOSSRequireValidUserIdForFailedLogin
Should the OSS require a valid user id, even for failed logins.
public bool bNicknameOSSRequireValidUserIdForFailedLogin
Should the OSS require a valid user id, even for failed logins.
public bool bLogoutAndRetryLoginIfRefreshLoginFailed
Should we logout of the OSS and retry the login (that included a refresh token) failed?
public bool bLoginOSSUseIDTokenAsPortalParentAccessToken
Should we use the ID Token for populating the PARENT Portal Access Token.
public bool bLoginOSSUseIDTokenAsPortalAccessToken
Should we use the ID Token for populating the Portal Access Token.
public bool bResolveRallyHereBaseURLAfterOSSLogin
Should an OSS Login trigger a Base URL Resolve on the URH_Integration? This is necessary for some OSSes (e.g. Switch/PS4) that don’t have sandbox information until after a login is attempted.
public FString SavedCredentialPrefix
Prefix applied to the saved credentials on platforms that support storing the refresh token.
public virtual void Initialize()
Initialize the subsystem.
public virtual void Deinitialize()
Safely tears down the subsystem.
public void SubmitAutoLogin(bool bAcceptEULA,bool bAcceptTOS,bool bAcceptPP,FRH_OnLoginComplete OnLoginCompleteDelegate)
Begins a complete multi-phased login to the OnlineSubsystem with the credentials provided on the command line, checking if the user has appropriate permissions, and logging into RallyHere.
public void SubmitLogin(const FOnlineAccountCredentials & Credentials,FString CredentialRefreshToken,bool bAcceptEULA,bool bAcceptTOS,bool bAcceptPP,FRH_OnLoginComplete OnLoginCompleteDelegate)
Begins a complete multi-phased login to the OnlineSubsystem with the provided credentials, checking if the user has appropriate permissions, and logging into RallyHere.
Parameters
-
Credentials- Credentials to use to login with the LoginOSS -
CredentialRefreshToken- RefreshToken to associate with the credentials. If included will be used for the RallyHere login -
OnLoginComplete- Delegate called after login completes
public void Logout()
Requests a logout on the server clearing the players auth credentials.
public bool ShowLoginProfileSelectionUI(bool bShowOnlineOnly,FRH_OnProfileSelectionUIClosed OnClosed,ERHAPI_LocalPlayerLoginOSS OSSType)
Show an OSS-specific profile selection UI to the user. This is for Xbox and other platforms that support profile swapping. A valid profile is required to login on those platforms.
public bool ShouldUseSavedCredentials() const
Are saved credentials allowed for auto-login?
public IOnlineSubsystem * GetOSS(ERHAPI_LocalPlayerLoginOSS OSSType) const
Get the fully resolved OSS by type.
public IOnlineSubsystem * GetLoginOSS() const
Get the fully resolved OSS to use for Login.
public IOnlineSubsystem * GetNicknameOSS() const
Get the fully resolved OSS to use for getting a player’s display name for login. This triggers a second OSS login.
public inline virtual bool IsCrossplayEnabled() const
Gets if crossplay is enabled.
public inline virtual bool IsCommunicationEnabled() const
Gets if cvommunication is enabled.
protected TArray< FString > IgnoreSavedCredentialsCommandLineKeys
Configurations to skip saved credentials.
protected FDelegateHandle OnOSSLoginCompleteDelegateHandle
Delegate to listen for OSS login completion.
protected bool bCrossplayEnabled
Stores if crossplay is enabled.
protected bool bCommunicationEnabled
Stores if communication is enabled.
protected virtual void PostResults(FRH_PendingLoginRequest& Req,constFRH_LoginResult & Res)
Posts the results from a login request.
Parameters
-
ReqThe login request. -
ResThe login results.
protected virtual void DoShowLoginOSSLoginUI(FRH_PendingLoginRequest & Req)
Prompts the online subsystem to show login UI.
Parameters
ReqThe pending login request.
protected virtual void DoShowNicknameOSSLoginUI(FRH_PendingLoginRequest & Req)
Prompts the online subsystem to show the choose nickname login UI.
Parameters
ReqThe pending login request.
protected virtual void NicknameOSSLoginUIClosed(TSharedPtr< const FUniqueNetId > UniqueId,const FOnlineError & Error,FRH_PendingLoginRequest Req)
Callback from the user closing the nickname selection on the online subsystem.
Parameters
-
UniqueIdUnique Net Id player selected. -
ErrorError message if any. -
ReqThe pending login request.
protected virtual void LoginOSSLoginUIClosed(TSharedPtr< const FUniqueNetId > UniqueId,const FOnlineError & Error,FRH_PendingLoginRequest Req)
Callback from the user closing the login UI of the online subsystem.
Parameters
-
UniqueIdUnique Net Id player selected. -
ErrorError message if any. -
ReqThe pending login request.
protected virtual void DoLoginOSSLogin(FRH_PendingLoginRequest & Req)
Starts the online subsystem login.
Parameters
ReqThe pending login request.
protected virtual void DoNicknameOSSLogin(FRH_PendingLoginRequest & Req)
Starts the online subsystem nickname login.
Parameters
ReqThe pending login request.
protected virtual void DoOSSLogin(FRH_PendingLoginRequest & Req,IOnlineSubsystem * OSS,OSSLoginCompleteFn OnComplete)
Starts the online subsystem login.
Parameters
-
ReqThe pending login request. -
OSSThe online subsystem being logged into. -
OnCompleteCallback delegate for when login finishes.
protected virtual void OSSLoginComplete(int32 ControllerId,bool bSuccessful,const FUniqueNetId & UniqueId,const FString & ErrorMessage,FRH_PendingLoginRequest Req)
Handler for OSS Login Completion.
Parameters
-
ControllerIdController Id of the local player logging in. -
bSuccessfulWas the login successful. -
UniqueIdUnique Net Id of the player logging in. -
ErrorMessageError message if any. -
ReqThe pending login request.
protected virtual void OSSNicknameLoginComplete(int32 ControllerId,bool bSuccessful,const FUniqueNetId & UniqueId,const FString & ErrorMessage,FRH_PendingLoginRequest Req)
Handler for OSS Nickname Login Completion.
Parameters
-
ControllerIdController Id of the local player logging in. -
bSuccessfulWas the login successful. -
UniqueIdUnique Net Id of the player logging in. -
ErrorMessageError message if any. -
ReqThe pending login request.
protected virtual bool OnOSSLoginComplete(int32 ControllerId,bool bSuccessful,const FUniqueNetId & UniqueId,const FString & ErrorMessage,FRH_PendingLoginRequest & Req,IOnlineSubsystem * OSS,PendingLoginUniqueIdRef UniqueIdPtr,bool bOSSRequireValidUserIdForFailedLogin)
Handler for OSS Login Completion.
Parameters
-
ControllerIdController Id of the local player logging in. -
bSuccessfulWas the login successful. -
UniqueIdUnique Net Id of the player logging in. -
ErrorMessageError message if any. -
ReqThe pending login request. -
OSSThe online subsystem being logged into. -
UniqueIdPtrPending Login pointer reference. -
bOSSRequireValidUserIdForFailedLoginIf the login failed due to no valid user id.
protected virtual void ExternalUI_ShowLoginUIClosed(TSharedPtr< const FUniqueNetId > UniqueId,const int ControllerIndex,const FOnlineError & Error,FRH_OnProfileSelectionUIClosed OnClosed)
Callback for when the OSS login UI is closed.
Parameters
-
UniqueIdUnique Net Id of the player logging in. -
ControllerIndexController Id of the local player logging in. -
ErrorError message if any. -
OnClosedCallback delegate for when the login UI is closed.
protected virtual void DoLoginOSSPrivilegeCheck(FRH_PendingLoginRequest & Req)
Checks users Privileges for OSS Login.
Parameters
ReqThe pending login request.
protected virtual void DoNicknameOSSPrivilegeCheck(FRH_PendingLoginRequest & Req)
Checks users Privileges for OSS Nickname Login.
Parameters
ReqThe pending login request.
protected virtual void DoOSSPrivilegeCheck(FRH_PendingLoginRequest & Req,IOnlineSubsystem * OSS,PendingLoginUniqueIdRef UniqueIdPtr,OSSPrivilegeResultsFn OnPrivilegeResults)
Checks users Privileges for OSS Login.
Parameters
-
ReqThe pending login request. -
OSSThe online subsystem being logged into. -
UniqueIdPtrPending Login pointer reference. -
OnPrivilegeResultsCallback delegate for when the privilege check is complete.
protected virtual void OnLoginOSSPrivilegeResults(const FUniqueNetId & UniqueId,EUserPrivileges::Type Privilege,uint32 PrivilegeResults,FRH_PendingLoginRequest Req)
Handler for online subsystem callback for OSS Privilege check.
Parameters
-
UniqueIdUnique Net Id of the player being checked in. -
PrivilegePrivilege being checked. -
PrivilegeResultsPrivilege check results. -
ReqThe pending login request.
protected virtual void OnNicknameOSSPrivilegeResults(const FUniqueNetId & UniqueId,EUserPrivileges::Type Privilege,uint32 PrivilegeResults,FRH_PendingLoginRequest Req)
Handler for online subsystem callback for OSS Nickname Privilege check.
Parameters
-
UniqueIdUnique Net Id of the player being checked in. -
PrivilegePrivilege being checked. -
PrivilegeResultsPrivilege check results. -
ReqThe pending login request.
protected virtual bool OnOSSPrivilegeResults(const FUniqueNetId & UniqueId,EUserPrivileges::Type Privilege,uint32 PrivilegeResults,FRH_PendingLoginRequest Req,IOnlineSubsystem * OSS,bool bPromptForAccountUpgradeIfInsufficient)
Handler for online subsystem callback for OSS Privilege check.
Parameters
-
UniqueIdUnique Net Id of the player being checked in. -
PrivilegePrivilege being checked. -
PrivilegeResultsPrivilege check results. -
ReqThe pending login request. -
OSSThe online subsystem being logged into. -
bPromptForAccountUpgradeIfInsufficientIf true, prompt user to upgrade their platform account.
protected virtual void DoRallyHereLogin(FRH_PendingLoginRequest & Req)
Start the login to Rally Here.
Parameters
ReqThe pending login request.
protected virtual void RallyHereLoginComplete(const RallyHereAPI::FResponse_Login & Resp,FRH_PendingLoginRequest Req)
Handle the response from the login to Rally Here.
Parameters
-
RespResponse from the login to Rally Here. -
ReqThe pending login request.
protected virtual FString GetSavedCredentialEnvironment(FName OSSName) const
Gets the cached credentials for the given online subsystem.
Parameters
OSSNameName of the online subsystem.
Returns
Credentials token for the subsystem.
protected virtual void CheckCrossplayPrivilege(const FUniqueNetId & UniqueId)
Checks the users OSS privileges for crossplay.
Parameters
UniqueIdUnique Net Id of the player being checked in.
protected virtual void HandleCheckCrossPlayPrivilegeComplete(const FUniqueNetId & UserId,EUserPrivileges::Type Privilege,uint32 PrivilegeResults)
Handles the response of the OSS crossplay privilege check.
Parameters
-
UserIdUnique Net Id of the player being checked in. -
PrivilegePrivilege being checked. -
PrivilegeResultsPrivilege check results.
protected virtual void CheckCommunicationPrivilege(const FUniqueNetId & UniqueId)
Checks the users OSS privileges for communicataion.
Parameters
UniqueIdUnique Net Id of the player being checked in.
protected virtual void HandleCheckCommunicationPrivilegeComplete(const FUniqueNetId & UserId,EUserPrivileges::Type Privilege,uint32 PrivilegeResults)
Handles the response of the OSS communicaation privilege check.
Parameters
-
UserIdUnique Net Id of the player being checked in. -
PrivilegePrivilege being checked. -
PrivilegeResultsPrivilege check results.
protected virtual void HandleAppReactivated()
Handles the app being restored from being suspended.
protected virtual void HandleAppReactivatedGameThread()
Handles the app game thread being restored from being suspended.
typedef TLogout
Type Define for logout calls.
class URH_LocalPlayerPresenceSubsystem
class URH_LocalPlayerPresenceSubsystem
: public URH_LocalPlayerSubsystemPlugin
Subsystem to manage the local players presence.
Summary
| Members | Descriptions |
|---|---|
public virtual void Initialize() | Initialize the subsystem. |
public virtual void Deinitialize() | Safely tears down the subsystem. |
public void UpdatePlayerPresenceSelf(RallyHereAPI::FRequest_UpdatePlayerPresenceSelf & Request,const RallyHereAPI::FDelegate_UpdatePlayerPresenceSelf & Delegate) | Calls the Presence API to update a players personal presence information. |
public void GetPlayerPresenceSelf(RallyHereAPI::FRequest_GetPlayerPresenceSelf & Request,const RallyHereAPI::FDelegate_GetPlayerPresenceSelf & Delegate) | Calls the Presence API to get your own player presence information. |
public void GetSettings(RallyHereAPI::FRequest_GetPresenceSettings & Request,const RallyHereAPI::FDelegate_GetPresenceSettings & Delegate) | Calls the Presence API to get the presence settings data. |
public inline void SetDesiredStatus(ERHAPI_OnlineStatus NewStatus) | Requests an update of your presence status to be set to the desired status. |
public inline ERHAPI_OnlineStatus GetDesiredStatus() const | Gets the desired status that the player wants to be set to. |
public void StartRefreshTimer() | Starts polling to refresh the player’s presence status. |
public void StopRefreshTimer() | Stops polling to refresh the player’s presence status. |
public void RefreshStatus() | Forces an update of the players presence with a status change. |
public bool IsRefreshTimerActive(float & TimeRemaining) const | Returns whether the refresh timer is active. param [in]. |
protected FRH_AutoPollerPtr Poller | Poller for the local presence. |
protected ERHAPI_OnlineStatus DesiredStatus | The Status that the local player is being changed to. |
protected virtual void OnUserChanged() | Callback that occurs whenever the local player this subsystem is associated with changes. |
protected virtual void InitPropertiesWithDefaultValues() | Initializes the subsystem with defaults for its cached data. |
protected void PollRefreshStatus(const FRH_PollCompleteFunc & Delegate) | Polls the status of the players presence. |
Members
public virtual void Initialize()
Initialize the subsystem.
public virtual void Deinitialize()
Safely tears down the subsystem.
public void UpdatePlayerPresenceSelf(RallyHereAPI::FRequest_UpdatePlayerPresenceSelf & Request,const RallyHereAPI::FDelegate_UpdatePlayerPresenceSelf & Delegate)
Calls the Presence API to update a players personal presence information.
Parameters
-
RequestRequest object containing the information to update. -
DelegateCallback delegate for if the request was successful or not.
public void GetPlayerPresenceSelf(RallyHereAPI::FRequest_GetPlayerPresenceSelf & Request,const RallyHereAPI::FDelegate_GetPlayerPresenceSelf & Delegate)
Calls the Presence API to get your own player presence information.
Parameters
-
RequestRequest object containing needed data for the call. -
DelegateCallback delegate with the player presence information.
public void GetSettings(RallyHereAPI::FRequest_GetPresenceSettings & Request,const RallyHereAPI::FDelegate_GetPresenceSettings & Delegate)
Calls the Presence API to get the presence settings data.
Parameters
-
RequestRequest object containing needed data for the call. -
DelegateCallback delegate with the presence settings data.
public inline void SetDesiredStatus(ERHAPI_OnlineStatus NewStatus)
Requests an update of your presence status to be set to the desired status.
Parameters
NewStatusThe new status to set.
public inline ERHAPI_OnlineStatus GetDesiredStatus() const
Gets the desired status that the player wants to be set to.
public void StartRefreshTimer()
Starts polling to refresh the player’s presence status.
public void StopRefreshTimer()
Stops polling to refresh the player’s presence status.
public void RefreshStatus()
Forces an update of the players presence with a status change.
public bool IsRefreshTimerActive(float & TimeRemaining) const
Returns whether the refresh timer is active. param [in].
protected FRH_AutoPollerPtr Poller
Poller for the local presence.
protected ERHAPI_OnlineStatus DesiredStatus
The Status that the local player is being changed to.
protected virtual void OnUserChanged()
Callback that occurs whenever the local player this subsystem is associated with changes.
protected virtual void InitPropertiesWithDefaultValues()
Initializes the subsystem with defaults for its cached data.
protected void PollRefreshStatus(const FRH_PollCompleteFunc & Delegate)
Polls the status of the players presence.
Parameters
DelegateCallback delegate when the poll completes.
class URH_LocalPlayerSessionSubsystem
class URH_LocalPlayerSessionSubsystem
: public URH_LocalPlayerSubsystemPlugin
: public IRH_SessionOwnerInterface
Subsystem to manage sessions for the local player.
Summary
| Members | Descriptions |
|---|---|
public FRH_OnSessionUpdatedMulticastDynamicDelegate BLUEPRINT_OnSessionUpdatedDelegate | Multicast delegate triggered when a session managed by this subsystem is updated. |
public FRH_OnSessionUpdatedMulticastDynamicDelegate BLUEPRINT_OnSessionAddedDelegate | Multicast delegate triggered when a session managed by this subsystem is added. |
public FRH_OnSessionUpdatedMulticastDynamicDelegate BLUEPRINT_OnSessionRemovedDelegate | Multicast delegate triggered when a session managed by this subsystem is removed. |
public FRH_OnSessionUpdatedMulticastDynamicDelegate BLUEPRINT_OnSessionExpirationCompleteDelegate | Multicast delegate triggered when a session managed by this subsystem is fully expired (happens after removal) |
public FRH_OnLoginPollSessionsCompleteMulticastDynamicDelegate BLUEPRINT_OnLoginPollSessionsCompleteDelegate | Multicast delegate triggered when the initial poll after login is complete, to do first-time setup. |
public FRH_OnSessionUpdatedMulticastDelegate OnSessionUpdatedDelegate | Multicast delegate triggered when a session managed by this subsystem is updated. |
public FRH_OnSessionUpdatedMulticastDelegate OnSessionAddedDelegate | Multicast delegate triggered when a session managed by this subsystem is added. |
public FRH_OnSessionUpdatedMulticastDelegate OnSessionRemovedDelegate | Multicast delegate triggered when a session managed by this subsystem is removed. |
public FRH_OnSessionUpdatedMulticastDelegate OnSessionExpirationCompleteDelegate | Multicast delegate triggered when a session managed by this subsystem is fully expired (happens after removal) |
public FRH_OnLoginPollSessionsCompleteMulticastDelegate OnLoginPollSessionsCompleteDelegate | Multicast delegate triggered when the initial poll after login is complete, to do first-time setup. |
public URH_LocalPlayerSessionSubsystem() | |
public virtual void Initialize() | Initialize the subsystem. |
public virtual void Deinitialize() | Deinitialize the subsystem. |
public inline virtual FAuthContextPtr GetSessionAuthContext() const | Get auth context for session (IRH_SessionOwnerInterface requirement) |
public inline virtual URH_SessionView*GetSessionById(const FString & SessionId) const | Get session by its Session Id. |
public TArray< URH_SessionView* >GetSessionsByType(const FString & Type) const | Get all joined and invited sessions by SessionType. |
public TArray< URH_InvitedSession* >GetInvitedSessionsByType(const FString & Type) const | Get all invited sessions by SessionType. |
public TArray< URH_JoinedSession* >GetJoinedSessionsByType(const FString & Type) const | Get all joined sessions by SessionType. |
public inline FORCEINLINE URH_SessionView*GetFirstSessionByType(const FString & Type) const | Get first joined or invited sessions by SessionType (useful for titles that ensure only one of a given session type will exist) |
public inline FORCEINLINE URH_InvitedSession*GetFirstInvitedSessionByType(const FString & Type) const | Get first invited sessions by SessionType (useful for titles that ensure only one of a given session type will exist) |
public inline FORCEINLINE URH_JoinedSession*GetFirstJoinedSessionByType(const FString & Type) const | Get first joined sessions by SessionType (useful for titles that ensure only one of a given session type will exist) |
public URH_JoinedSession*GetFirstActiveSession() const | Get first “active” session (session which is IsActive()) |
public inline FORCEINLINE TArray< URH_SessionView* >GetSessions() const | Get an array of all sessions controlled by this system. |
public inline FORCEINLINE bool IsInSession(const FString & SessionId) | Utility function to determine if local player is a member of that session. |
public virtual class URH_PlayerInfoSubsystem*GetPlayerInfoSubsystem() const | Utility function to look up the player info subsystem (IRH_SessionOwnerInterface requirement) |
public virtual IOnlineSubsystem * GetOSS() const | Utility function to look up the OnlineSubsystem to use for session calls (IRH_SessionOwnerInterface requirement) |
public virtual FUniqueNetIdWrapper GetOSSUniqueId() const | Utility function to look up the UniqueNetId to use for OnlineSubsystem calls (IRH_SessionOwnerInterface requirement) |
public virtual FGuid GetPlayerUuid() const | Gets the Player UUID to use for player related calls (can be invalid) |
public inline virtual URH_PlatformSessionSyncer*GetPlatformSyncerByRHSessionId(const FString & SessionId) const | Gets the platform session synchronization object for a given session id (IRH_SessionOwnerInterface requirement) |
public virtual URH_PlatformSessionSyncer*GetPlatformSyncerByPlatformSessionId(const FUniqueNetIdRepl & PlatformSessionId) const | Gets the platform session synchronization object for a given platform session id. |
public inline void CreateOrJoinSessionByType(const FRHAPI_CreateOrJoinRequest & CreateParams,FRH_OnSessionUpdatedDelegateBlock Delegate) | Utility function to Create or Join a session by a given SessionType (most times will create a session, but Hub join rules may do a Join instead) |
public inline void BLUEPRINT_CreateOrJoinSessionByType(const FRHAPI_CreateOrJoinRequest & CreateParams,const FRH_OnSessionUpdatedDynamicDelegate & Delegate) | Blueprint compatible version of CreateOrJoinSessionByType. |
public inline void JoinSessionById(const FString & SessionId,FRH_OnSessionUpdatedDelegateBlock Delegate) | Utility function to Join a session by SessionId. |
public inline void BLUEPRINT_JoinSessionById(const FString & SessionId,const FRH_OnSessionUpdatedDynamicDelegate & Delegate) | Blueprint compatible version of JoinSessionById. |
public virtual void ImportAPISession(const FRH_APISessionWithETag & Session) | Imports a new or updated session from the API into this subsystem (IRH_SessionOwnerInterface requirement) |
public virtual void ImportAPITemplate(const FRHAPI_SessionTemplate & Template) | Imports a new session template from the API into this subsystem (IRH_SessionOwnerInterface requirement) |
public virtual void ReconcileAPISessions(const TArray< FString > & SessionIds,const TOptional< FString > ETag) | Reconciles the list of session ids with this subsystem, removing any sessions that are no longer in the list, then updates the stored ETag for the local player’s session list (IRH_SessionOwnerInterface requirement) |
public virtual void ReconcileAPITemplates(const TArray< FString > & InTemplates,const TOptional< FString > ETag) | Reconciles the list of template SessionTypes with this subsystem, removing any templates that are no longer in the list, then updates the stored ETag for the local player’s templatelist (IRH_SessionOwnerInterface requirement) |
public virtual bool GetTemplate(const FString & Type,FRHAPI_SessionTemplate & Template) const | Looks up a template from within this subsystem (IRH_SessionOwnerInterface requirement) |
public inline FORCEINLINE TArray< FRHAPI_SessionTemplate>GetTemplates() const | Gets a list of all templates in this subsystem. |
public inline virtual TOptional< FString > GetETagForAllSessionsPoll() const | Looks up a ETag to use when querying for session membership (IRH_SessionOwnerInterface requirement) |
public inline virtual TOptional< FString > GetETagForAllTemplatesPoll() const | Looks up a ETag to use when querying for template information (IRH_SessionOwnerInterface requirement) |
public inline virtual TArray< URH_SessionView* >GetAllSessionsForPolling() const | Looks up all sessions to process when polling if ETags match (IRH_SessionOwnerInterface requirement) |
public void SearchForSessions(const FRH_SessionBrowserSearchParams & Params,FRH_OnSessionSearchCompleteDelegateBlock Delegate) | Utility function that searches the session browser cache for information on browser sessions. |
public inline void BLUEPRINT_SearchForSessions(const FRH_SessionBrowserSearchParams & Params,const FRH_OnSessionSearchCompleteDynamicDelegate & Delegate) | Blueprint compatible version of SearchForSessions. |
public void StartPolling() | Start polling for session template and membership updates. |
public void StopPolling() | Stop polling for session template and membership updates. |
public void PollForUpdate(const FRH_PollCompleteFunc & Delegate) | Poll function for use with FRH_AutoPoller. |
public void ForcePollForUpdate(bool bClearETag) | Force an immediate poll. |
public float GetPollTimeRemaining() const | Get the current time remaining on poll cycle, or -1.f if not polling. |
protected FRH_AutoPollerPtr Poller | Poller for sessions. |
protected TMap< FString, FRHAPI_SessionTemplate>Templates | Map of Template Ids to Session Templates. |
protected TOptional< FString > AllSessionsETag | ETag of last QueryAllSessions call response. |
protected TOptional< FString > AllTemplatesETag | ETag of last QueryAllSessionTemplates call response. |
protected TMap< FString, URH_SessionView* >Sessions | Map of Session Ids to Sessions we are in. |
protected TMap< FString, URH_SessionView* >ExpiringSessions | Map of Session Ids to Sessions objects that may be in the process of cleaning themselves up. |
protected TMap< FString, FRH_APISessionWithETag>DeferredSessionUpdates | Map of Session Ids to Sessions updates we could not process for some reason, such as race conditions. |
protected TMap< FString, URH_PlatformSessionSyncer* >PlatformSyncers | Map of Session Ids to their Platform Session Syncers. |
protected virtual URH_SessionView*CreateOrUpdateRHSession(const FRH_APISessionWithETag & Session,const ERHAPI_SessionPlayerStatus & LocalPlayerStatus) | Creates or updates a specific session for the local player. |
protected virtual bool LocalPlayerStatusFromSession(const FRHAPI_Session & Session,ERHAPI_SessionPlayerStatus & Status) const | Gets the local player status in a specific session. |
protected virtual void RemoveSessionById(const FString & SessionId) | Removes a cached session for the local player, this does NOT try to leave it. |
protected inline virtual void RemoveSession(const URH_SessionView * Session) | Removes a cached session for the local player, this does NOT try to leave it. |
protected virtual void OnExpirationComplete(URH_SessionView * Session) | Called when a session the local player is part of expires. |
protected virtual bool PreprocessAPISessionImport(const FRHAPI_Session & Session,ERHAPI_SessionPlayerStatus & Status) | Attepts to preprocess an API session. |
protected virtual void OnUserChanged(const FGuid & OldPlayerUuid,class URH_PlayerInfo * OldLocalPlayerInfo) | Base handling when the local user changes, override to provide functionality. |
protected virtual void InitPropertiesWithDefaultValues() | Initializes the subsystem with defaults for its cached data. |
protected virtual void HandleNotification(const FRHAPI_Notification & Notification,const FString & APIName,const TArray< FString > & APIParams) | Handle a notification from the notification API. |
protected URH_PlatformSessionSyncer*CreatePlatformSyncer(URH_JoinedSession * Session) | Creates a Platform Session Syncer for the local player. |
protected virtual bool FilterOSSCallbackUser(const int32 ControllerId) | Checks if the online subsystem call is for the local user. |
protected virtual bool FilterOSSCallbackUser(const FUniqueNetId & UniqueNetId) | Checks if the online subsystem call is for the local user. |
protected virtual void OnPlatformActivityActivation(const FUniqueNetId & LocalUserId,const FString & ActivityId,const FOnlineSessionSearchResult * SessionInfo) | Handles the response of an online subsystem activity activation. |
protected virtual void OnPlatformSessionInviteAccepted(const bool bSuccesful,const int32 ControllerId,FUniqueNetIdPtr UserId,const FOnlineSessionSearchResult & Session) | Handles the response of an online subsystem session invite. |
protected virtual void OnPlatformSessionCreated(FName SessionName,bool bSuccess) | Handles the response of an online subsystem session creation. |
protected virtual void OnPlatformSessionJoined(FName SessionName,EOnJoinSessionCompleteResult::Type Result) | Handles the response of an online subsystem session join. |
protected virtual void OnPlatformSessionStarted(FName SessionName,bool bSuccess) | Handles the response of an online subsystem session started. |
protected virtual void OnPlatformSessionEnded(FName SessionName,bool bSuccess) | Handles the response of an online subsystem session ended. |
protected virtual void OnPlatformSessionDestroyed(FName SessionName,bool bSuccess) | Handles the response of an online subsystem session destroy. |
protected virtual void OnPlatformSessionParticipantChange(FName SessionName,const FUniqueNetId & UniqueNetId,bool bJoined) | Handles the response of an online subsystem session participant change. |
protected virtual void OnPlatformSessionParticipantRemoved(FName SessionName,const FUniqueNetId & UniqueNetId) | Handles the response of an online subsystem session participant remove. |
protected virtual void HandlePollAllSessionsComplete(bool bSuccess,const TArray< FString > & SessionIds) | Handles the response of polling all sessions. |
Members
public FRH_OnSessionUpdatedMulticastDynamicDelegate BLUEPRINT_OnSessionUpdatedDelegate
Multicast delegate triggered when a session managed by this subsystem is updated.
public FRH_OnSessionUpdatedMulticastDynamicDelegate BLUEPRINT_OnSessionAddedDelegate
Multicast delegate triggered when a session managed by this subsystem is added.
public FRH_OnSessionUpdatedMulticastDynamicDelegate BLUEPRINT_OnSessionRemovedDelegate
Multicast delegate triggered when a session managed by this subsystem is removed.
public FRH_OnSessionUpdatedMulticastDynamicDelegate BLUEPRINT_OnSessionExpirationCompleteDelegate
Multicast delegate triggered when a session managed by this subsystem is fully expired (happens after removal)
public FRH_OnLoginPollSessionsCompleteMulticastDynamicDelegate BLUEPRINT_OnLoginPollSessionsCompleteDelegate
Multicast delegate triggered when the initial poll after login is complete, to do first-time setup.
public FRH_OnSessionUpdatedMulticastDelegate OnSessionUpdatedDelegate
Multicast delegate triggered when a session managed by this subsystem is updated.
public FRH_OnSessionUpdatedMulticastDelegate OnSessionAddedDelegate
Multicast delegate triggered when a session managed by this subsystem is added.
public FRH_OnSessionUpdatedMulticastDelegate OnSessionRemovedDelegate
Multicast delegate triggered when a session managed by this subsystem is removed.
public FRH_OnSessionUpdatedMulticastDelegate OnSessionExpirationCompleteDelegate
Multicast delegate triggered when a session managed by this subsystem is fully expired (happens after removal)
public FRH_OnLoginPollSessionsCompleteMulticastDelegate OnLoginPollSessionsCompleteDelegate
Multicast delegate triggered when the initial poll after login is complete, to do first-time setup.
public URH_LocalPlayerSessionSubsystem()
public virtual void Initialize()
Initialize the subsystem.
public virtual void Deinitialize()
Deinitialize the subsystem.
public inline virtual FAuthContextPtr GetSessionAuthContext() const
Get auth context for session (IRH_SessionOwnerInterface requirement)
public inline virtual URH_SessionView*GetSessionById(const FString & SessionId) const
Get session by its Session Id.
Parameters
SessionIdSession Id to look up
Returns
Session object, if it exists
public TArray< URH_SessionView* >GetSessionsByType(const FString & Type) const
Get all joined and invited sessions by SessionType.
Parameters
SessionTypeSessionType to filter for
Returns
Array of session objects of the specified SessionType
public TArray< URH_InvitedSession* >GetInvitedSessionsByType(const FString & Type) const
Get all invited sessions by SessionType.
Parameters
SessionTypeSessionType to filter for
Returns
Array of session objects of the specified SessionType
public TArray< URH_JoinedSession* >GetJoinedSessionsByType(const FString & Type) const
Get all joined sessions by SessionType.
Parameters
SessionTypeSessionType to filter for
Returns
Array of session objects of the specified SessionType
public inline FORCEINLINE URH_SessionView*GetFirstSessionByType(const FString & Type) const
Get first joined or invited sessions by SessionType (useful for titles that ensure only one of a given session type will exist)
Parameters
SessionTypeSessionType to filter for
Returns
Session object of the specified SessionType, if it exists
public inline FORCEINLINE URH_InvitedSession*GetFirstInvitedSessionByType(const FString & Type) const
Get first invited sessions by SessionType (useful for titles that ensure only one of a given session type will exist)
Parameters
SessionTypeSessionType to filter for
Returns
Session object of the specified SessionType, if it exists
public inline FORCEINLINE URH_JoinedSession*GetFirstJoinedSessionByType(const FString & Type) const
Get first joined sessions by SessionType (useful for titles that ensure only one of a given session type will exist)
Parameters
SessionTypeSessionType to filter for
Returns
Session object of the specified SessionType, if it exists
public URH_JoinedSession*GetFirstActiveSession() const
Get first “active” session (session which is IsActive())
Parameters
SessionTypeSessionType to filter for
Returns
Session object of the specified SessionType, if it exists
public inline FORCEINLINE TArray< URH_SessionView* >GetSessions() const
Get an array of all sessions controlled by this system.
Returns
Array of session objects
public inline FORCEINLINE bool IsInSession(const FString & SessionId)
Utility function to determine if local player is a member of that session.
Parameters
SessionIdSession Id to check
Returns
whether or not the player is in the session
public virtual class URH_PlayerInfoSubsystem*GetPlayerInfoSubsystem() const
Utility function to look up the player info subsystem (IRH_SessionOwnerInterface requirement)
public virtual IOnlineSubsystem * GetOSS() const
Utility function to look up the OnlineSubsystem to use for session calls (IRH_SessionOwnerInterface requirement)
public virtual FUniqueNetIdWrapper GetOSSUniqueId() const
Utility function to look up the UniqueNetId to use for OnlineSubsystem calls (IRH_SessionOwnerInterface requirement)
public virtual FGuid GetPlayerUuid() const
Gets the Player UUID to use for player related calls (can be invalid)
public inline virtual URH_PlatformSessionSyncer*GetPlatformSyncerByRHSessionId(const FString & SessionId) const
Gets the platform session synchronization object for a given session id (IRH_SessionOwnerInterface requirement)
Parameters
SessionIdRallyHere Session Id to look up the synchornization object wiht
Returns
Platform Session synchronization object
public virtual URH_PlatformSessionSyncer*GetPlatformSyncerByPlatformSessionId(const FUniqueNetIdRepl & PlatformSessionId) const
Gets the platform session synchronization object for a given platform session id.
Parameters
PlatformSessionIdPlatform Session Id (as string) to look up the synchornization object wiht
Returns
Platform Session synchronization object
public inline void CreateOrJoinSessionByType(const FRHAPI_CreateOrJoinRequest & CreateParams,FRH_OnSessionUpdatedDelegateBlock Delegate)
Utility function to Create or Join a session by a given SessionType (most times will create a session, but Hub join rules may do a Join instead)
Parameters
-
CreateParamsCreation paramters for the session -
Delegatedelegate to trigger when complete
public inline void BLUEPRINT_CreateOrJoinSessionByType(const FRHAPI_CreateOrJoinRequest & CreateParams,const FRH_OnSessionUpdatedDynamicDelegate & Delegate)
Blueprint compatible version of CreateOrJoinSessionByType.
Parameters
-
CreateParamsCreation paramters for the session -
Delegatedelegate to trigger when complete
public inline void JoinSessionById(const FString & SessionId,FRH_OnSessionUpdatedDelegateBlock Delegate)
Utility function to Join a session by SessionId.
Parameters
-
SessionIdThe session id to join -
Delegatedelegate to trigger when complete
public inline void BLUEPRINT_JoinSessionById(const FString & SessionId,const FRH_OnSessionUpdatedDynamicDelegate & Delegate)
Blueprint compatible version of JoinSessionById.
Parameters
-
SessionIdThe session id to join -
Delegatedelegate to trigger when complete
public virtual void ImportAPISession(const FRH_APISessionWithETag & Session)
Imports a new or updated session from the API into this subsystem (IRH_SessionOwnerInterface requirement)
Parameters
SessionThe session data to import
public virtual void ImportAPITemplate(const FRHAPI_SessionTemplate & Template)
Imports a new session template from the API into this subsystem (IRH_SessionOwnerInterface requirement)
Parameters
Templatethe template data to import
public virtual void ReconcileAPISessions(const TArray< FString > & SessionIds,const TOptional< FString > ETag)
Reconciles the list of session ids with this subsystem, removing any sessions that are no longer in the list, then updates the stored ETag for the local player’s session list (IRH_SessionOwnerInterface requirement)
Parameters
-
SessionIdsThe list of session ids to reconcile against -
ETagoptional ETag to use when querying all sessions for optimization
public virtual void ReconcileAPITemplates(const TArray< FString > & InTemplates,const TOptional< FString > ETag)
Reconciles the list of template SessionTypes with this subsystem, removing any templates that are no longer in the list, then updates the stored ETag for the local player’s templatelist (IRH_SessionOwnerInterface requirement)
Parameters
-
InTemplatesThe list of template names (SessionType) ids to reconcile against -
ETagoptional ETag to use when querying all templates for optimization
public virtual bool GetTemplate(const FString & Type,FRHAPI_SessionTemplate & Template) const
Looks up a template from within this subsystem (IRH_SessionOwnerInterface requirement)
Parameters
-
TypeThe SessionType to look up -
TemplateThe template information, if found
Returns
Whether or not the template was found
public inline FORCEINLINE TArray< FRHAPI_SessionTemplate>GetTemplates() const
Gets a list of all templates in this subsystem.
Returns
Array of all templates
public inline virtual TOptional< FString > GetETagForAllSessionsPoll() const
Looks up a ETag to use when querying for session membership (IRH_SessionOwnerInterface requirement)
public inline virtual TOptional< FString > GetETagForAllTemplatesPoll() const
Looks up a ETag to use when querying for template information (IRH_SessionOwnerInterface requirement)
public inline virtual TArray< URH_SessionView* >GetAllSessionsForPolling() const
Looks up all sessions to process when polling if ETags match (IRH_SessionOwnerInterface requirement)
public void SearchForSessions(const FRH_SessionBrowserSearchParams & Params,FRH_OnSessionSearchCompleteDelegateBlock Delegate)
Utility function that searches the session browser cache for information on browser sessions.
Parameters
-
ParamsSearch parameters for the browser search -
DelegateDelegate to trigger once complete
public inline void BLUEPRINT_SearchForSessions(const FRH_SessionBrowserSearchParams & Params,const FRH_OnSessionSearchCompleteDynamicDelegate & Delegate)
Blueprint compatible version of SearchForSessions.
Parameters
-
ParamsSearch parameters for the browser search -
DelegateDelegate to trigger once complete
public void StartPolling()
Start polling for session template and membership updates.
public void StopPolling()
Stop polling for session template and membership updates.
public void PollForUpdate(const FRH_PollCompleteFunc & Delegate)
Poll function for use with FRH_AutoPoller.
Parameters
PollCompletedelegate to restart the poll
public void ForcePollForUpdate(bool bClearETag)
Force an immediate poll.
public float GetPollTimeRemaining() const
Get the current time remaining on poll cycle, or -1.f if not polling.
protected FRH_AutoPollerPtr Poller
Poller for sessions.
protected TMap< FString, FRHAPI_SessionTemplate>Templates
Map of Template Ids to Session Templates.
protected TOptional< FString > AllSessionsETag
ETag of last QueryAllSessions call response.
protected TOptional< FString > AllTemplatesETag
ETag of last QueryAllSessionTemplates call response.
protected TMap< FString, URH_SessionView* >Sessions
Map of Session Ids to Sessions we are in.
protected TMap< FString, URH_SessionView* >ExpiringSessions
Map of Session Ids to Sessions objects that may be in the process of cleaning themselves up.
protected TMap< FString, FRH_APISessionWithETag>DeferredSessionUpdates
Map of Session Ids to Sessions updates we could not process for some reason, such as race conditions.
protected TMap< FString, URH_PlatformSessionSyncer* >PlatformSyncers
Map of Session Ids to their Platform Session Syncers.
protected virtual URH_SessionView*CreateOrUpdateRHSession(const FRH_APISessionWithETag & Session,const ERHAPI_SessionPlayerStatus & LocalPlayerStatus)
Creates or updates a specific session for the local player.
Parameters
-
SessionSession information to create or update. -
LocalPlayerStatusThe status of the local player in the session.
Returns
The session that is created or updated.
protected virtual bool LocalPlayerStatusFromSession(const FRHAPI_Session & Session,ERHAPI_SessionPlayerStatus & Status) const
Gets the local player status in a specific session.
Parameters
-
SessionThe Session to get the local player status from. -
StatusThe status of the local player in the session.
Returns
True if the player is part of that session.
protected virtual void RemoveSessionById(const FString & SessionId)
Removes a cached session for the local player, this does NOT try to leave it.
Parameters
SessionIdThe Session Id to remove.
protected inline virtual void RemoveSession(const URH_SessionView * Session)
Removes a cached session for the local player, this does NOT try to leave it.
Parameters
SessionThe Session to remove.
protected virtual void OnExpirationComplete(URH_SessionView * Session)
Called when a session the local player is part of expires.
Parameters
SessionThe session that expired.
protected virtual bool PreprocessAPISessionImport(const FRHAPI_Session & Session,ERHAPI_SessionPlayerStatus & Status)
Attepts to preprocess an API session.
Parameters
-
SessionThe session to preprocess. -
StatusThe status of the local player to that session.
Returns
False if deferred or dropped, true if it can be processed.
protected virtual void OnUserChanged(const FGuid & OldPlayerUuid,class URH_PlayerInfo * OldLocalPlayerInfo)
Base handling when the local user changes, override to provide functionality.
Parameters
-
OldPlayerUuidThe old player Uuid. -
OldLocalPlayerInfoThe old local player info.
protected virtual void InitPropertiesWithDefaultValues()
Initializes the subsystem with defaults for its cached data.
protected virtual void HandleNotification(const FRHAPI_Notification & Notification,const FString & APIName,const TArray< FString > & APIParams)
Handle a notification from the notification API.
Parameters
-
NotificationThe notification to handle. -
APINameThe name of the API that sent the notification. -
APIParamsThe parameters for the API that sent the notification.
protected URH_PlatformSessionSyncer*CreatePlatformSyncer(URH_JoinedSession * Session)
Creates a Platform Session Syncer for the local player.
Parameters
SessionThe Session assocaited with the syncer.
Returns
The Platform Session Syncer.
protected virtual bool FilterOSSCallbackUser(const int32 ControllerId)
Checks if the online subsystem call is for the local user.
Parameters
ControllerIdThe controller Id to check against.
Returns
True if the callback is allowed.
protected virtual bool FilterOSSCallbackUser(const FUniqueNetId & UniqueNetId)
Checks if the online subsystem call is for the local user.
Parameters
UniqueNetIdThe Unique Net Id to check against.
Returns
True if the callback is allowed.
protected virtual void OnPlatformActivityActivation(const FUniqueNetId & LocalUserId,const FString & ActivityId,const FOnlineSessionSearchResult * SessionInfo)
Handles the response of an online subsystem activity activation.
Parameters
-
LocalUserIdThe Unique Net Id associated with the activity. -
ActivityIdThe Id of the activity. -
SessionInfoThe session info associated with the activity.
protected virtual void OnPlatformSessionInviteAccepted(const bool bSuccesful,const int32 ControllerId,FUniqueNetIdPtr UserId,const FOnlineSessionSearchResult & Session)
Handles the response of an online subsystem session invite.
Parameters
-
bSuccesfulTrue if the invite was successful. -
ControllerIdThe controller Id of the invited player. -
UserIdUnique Net Id of the invited player. -
SessionThe Session the invite was for.
protected virtual void OnPlatformSessionCreated(FName SessionName,bool bSuccess)
Handles the response of an online subsystem session creation.
Parameters
-
SessionNameThe name of the created session. -
bSuccessTrue if the creation was successful.
protected virtual void OnPlatformSessionJoined(FName SessionName,EOnJoinSessionCompleteResult::Type Result)
Handles the response of an online subsystem session join.
Parameters
-
SessionNameThe name of the associated session. -
ResultThe resule of the join attempt.
protected virtual void OnPlatformSessionStarted(FName SessionName,bool bSuccess)
Handles the response of an online subsystem session started.
Parameters
-
SessionNameThe name of the associated session. -
bSuccessTrue if the creation was successful.
protected virtual void OnPlatformSessionEnded(FName SessionName,bool bSuccess)
Handles the response of an online subsystem session ended.
Parameters
-
SessionNameThe name of the associated session. -
bSuccessTrue if the creation was successful.
protected virtual void OnPlatformSessionDestroyed(FName SessionName,bool bSuccess)
Handles the response of an online subsystem session destroy.
Parameters
-
SessionNameThe name of the associated session. -
bSuccessTrue if the creation was successful.
protected virtual void OnPlatformSessionParticipantChange(FName SessionName,const FUniqueNetId & UniqueNetId,bool bJoined)
Handles the response of an online subsystem session participant change.
Parameters
-
SessionNameThe name of the associated session. -
UniqueNetIdUnique Net Id of the participant that changed. -
bJoinedIf that participant joined the session.
protected virtual void OnPlatformSessionParticipantRemoved(FName SessionName,const FUniqueNetId & UniqueNetId)
Handles the response of an online subsystem session participant remove.
Parameters
-
SessionNameThe name of the associated session. -
UniqueNetIdUnique Net Id of the participant that was removed.
protected virtual void HandlePollAllSessionsComplete(bool bSuccess,const TArray< FString > & SessionIds)
Handles the response of polling all sessions.
Parameters
-
bSuccessTrue if the poll was successful. -
SessionIdsSession Ids updated from the polling.
class URH_LocalPlayerSubsystem
class URH_LocalPlayerSubsystem
: public ULocalPlayerSubsystem
Subsystem to manage the local player.
Summary
| Members | Descriptions |
|---|---|
public void Initialize(FSubsystemCollectionBase & Collection) | Initialize the subsystem. |
public void Deinitialize() | Safely tears down the subsystem. |
public bool IsLoggedIn() const | Gets if the player is currently logged in. |
public FGuid GetPlayerUuid() const | Gets the player’s unique player id. |
public ERHAPI_PlatformTypes_DEPRECATED GetLoggedInPlatformType() const | Gets the platform type for the player if logged in. |
public ERHAPI_Platform GetLoggedInPlatform() const | Gets the platform type for the player if logged in. |
public FUniqueNetIdWrapper GetOSSUniqueId() const | Gets the player’s OSS unique id. |
public int32 GetPlatformUserId() const | Gets the player’s platform id. |
public URH_PlayerInfo*GetLocalPlayerInfo() const | Gets the player’s player info. |
public FRH_PlayerPlatformId GetPlayerPlatformId() const | Gets the player’s platform id wrapped with platform type. |
public inline FAuthContextPtr GetAuthContext() const | Gets the player’s auth context. |
public IOnlineSubsystem * GetOSS(const FName & SubsystemName) const | Get a specific OSS by name for this local player’s world. In editor, this allows each world/game instance to have a different OSS. |
public inline FORCEINLINE URH_LocalPlayerLoginSubsystem*GetLoginSubsystem() const | Gets the player’s login subsystem. |
public inline FORCEINLINE URH_AdSubsystem*GetAdSubsystem() const | Gets the player’s ad subsystem. |
public inline FORCEINLINE URH_FriendSubsystem*GetFriendSubsystem() const | Gets the player’s friend subsystem. |
public inline FORCEINLINE URH_LocalPlayerSessionSubsystem*GetSessionSubsystem() const | Gets the player’s session subsystem. |
public inline FORCEINLINE URH_LocalPlayerPresenceSubsystem*GetPresenceSubsystem() const | Gets the player’s presence subsystem. |
public inline FORCEINLINE URH_PurgeSubsystem*GetPurgeSubsystem() const | Gets the player’s purge subsystem. |
public inline FORCEINLINE URH_EntitlementSubsystem*GetEntitlementSubsystem() const | Gets the player’s entitlement subsystem. |
public URH_PlayerNotifications*GetPlayerNotifications() const | Gets the player’s notification subsystem. |
public URH_PlayerInfoSubsystem*GetPlayerInfoSubsystem() const | Gets the player’s player info. |
public void CustomEndpoint(const FRH_CustomEndpointRequestWrapper & Request,const RallyHereAPI::FDelegate_CustomEndpointSend & Delegate) | Custom Endpoint wrapper (for custom endpoints that require authentication) |
public void CustomEndpoint(const FRH_CustomEndpointRequestWrapper & Request,const FRH_CustomEndpointDelegateBlock Delegate) | Custom Endpoint wrapper (for custom endpoints that require authentication) |
public inline void BLUEPRINT_CustomEndpoint(const FRH_CustomEndpointRequestWrapper & Request,const FRH_CustomEndpointDynamicDelegate & Delegate) | Custom Endpoint wrapper (for custom endpoints that require authentication) |
protected TArray< URH_LocalPlayerSubsystemPlugin* >SubsystemPlugins | Array of plugins for the Local Player Subsystem. |
protected TArray< URH_SandboxedSubsystemPlugin* >SandboxedSubsystemPlugins | Array of plugins for the Local Player Subsystem. |
protected URH_LocalPlayerLoginSubsystem*LoginSubsystem | The Login Subsystem for the player. |
protected URH_AdSubsystem*AdSubsystem | The Ad Subsystem for the player. |
protected URH_FriendSubsystem*FriendSubsystem | The Friend Subsystem for the player. |
protected URH_LocalPlayerSessionSubsystem*SessionSubsystem | The Session Subsystem for the player. |
protected URH_LocalPlayerPresenceSubsystem*PresenceSubsystem | The Presence Subsystem for the player. |
protected URH_PurgeSubsystem*PurgeSubsystem | The Purge Subsystem for the player. |
protected URH_EntitlementSubsystem*EntitlementSubsystem | The Entitlement Subsystem for the player. |
protected URH_PlayerInfoSubsystem*SandboxedPlayerInfoSubsystem | The Sandboxed PlayerInfo Subsystem for the player. |
protected TWeakObjectPtr< URH_PlayerInfo>PlayerInfoCache | The Player Info associated with the local player. |
protected FAuthContextPtr AuthContext | The Local Players auth context. |
protected template<> inline UClassToUse * AddSubsystemPlugin(FSoftClassPath SubsystemClassPath) | Adds a plugin to the Game Instance Subsystem. |
protected template<> inline UClassToUse * AddSandboxedSubsystemPlugin(FSoftClassPath SubsystemClassPath) | Adds a plugin to the Game Instance Subsystem. |
protected virtual void OnUserLoggedIn(bool bSuccess) | Called whenever the user logs in. |
protected virtual void OnUserChanged() | Callback that occurs whenever the local player this subsystem is associated with changes. |
Members
public void Initialize(FSubsystemCollectionBase & Collection)
Initialize the subsystem.
public void Deinitialize()
Safely tears down the subsystem.
public bool IsLoggedIn() const
Gets if the player is currently logged in.
public FGuid GetPlayerUuid() const
Gets the player’s unique player id.
public ERHAPI_PlatformTypes_DEPRECATED GetLoggedInPlatformType() const
Gets the platform type for the player if logged in.
public ERHAPI_Platform GetLoggedInPlatform() const
Gets the platform type for the player if logged in.
public FUniqueNetIdWrapper GetOSSUniqueId() const
Gets the player’s OSS unique id.
public int32 GetPlatformUserId() const
Gets the player’s platform id.
public URH_PlayerInfo*GetLocalPlayerInfo() const
Gets the player’s player info.
public FRH_PlayerPlatformId GetPlayerPlatformId() const
Gets the player’s platform id wrapped with platform type.
public inline FAuthContextPtr GetAuthContext() const
Gets the player’s auth context.
public IOnlineSubsystem * GetOSS(const FName & SubsystemName) const
Get a specific OSS by name for this local player’s world. In editor, this allows each world/game instance to have a different OSS.
public inline FORCEINLINE URH_LocalPlayerLoginSubsystem*GetLoginSubsystem() const
Gets the player’s login subsystem.
public inline FORCEINLINE URH_AdSubsystem*GetAdSubsystem() const
Gets the player’s ad subsystem.
public inline FORCEINLINE URH_FriendSubsystem*GetFriendSubsystem() const
Gets the player’s friend subsystem.
public inline FORCEINLINE URH_LocalPlayerSessionSubsystem*GetSessionSubsystem() const
Gets the player’s session subsystem.
public inline FORCEINLINE URH_LocalPlayerPresenceSubsystem*GetPresenceSubsystem() const
Gets the player’s presence subsystem.
public inline FORCEINLINE URH_PurgeSubsystem*GetPurgeSubsystem() const
Gets the player’s purge subsystem.
public inline FORCEINLINE URH_EntitlementSubsystem*GetEntitlementSubsystem() const
Gets the player’s entitlement subsystem.
public URH_PlayerNotifications*GetPlayerNotifications() const
Gets the player’s notification subsystem.
public URH_PlayerInfoSubsystem*GetPlayerInfoSubsystem() const
Gets the player’s player info.
public void CustomEndpoint(const FRH_CustomEndpointRequestWrapper & Request,const RallyHereAPI::FDelegate_CustomEndpointSend & Delegate)
Custom Endpoint wrapper (for custom endpoints that require authentication)
Parameters
-
[FRH_CustomEndpointRequestWrapper](Common.md#structFRH__CustomEndpointRequestWrapper)Wrapper struct containing call information -
DelegateThe delegate to call when the call is complete (contains raw response)
public void CustomEndpoint(const FRH_CustomEndpointRequestWrapper & Request,const FRH_CustomEndpointDelegateBlock Delegate)
Custom Endpoint wrapper (for custom endpoints that require authentication)
Parameters
-
[FRH_CustomEndpointRequestWrapper](Common.md#structFRH__CustomEndpointRequestWrapper)Wrapper struct containing call information -
DelegateThe delegate to call when the call is complete
public inline void BLUEPRINT_CustomEndpoint(const FRH_CustomEndpointRequestWrapper & Request,const FRH_CustomEndpointDynamicDelegate & Delegate)
Custom Endpoint wrapper (for custom endpoints that require authentication)
Parameters
-
[FRH_CustomEndpointRequestWrapper](Common.md#structFRH__CustomEndpointRequestWrapper)Wrapper struct containing call information -
DelegateThe delegate to call when the call is complete
protected TArray< URH_LocalPlayerSubsystemPlugin* >SubsystemPlugins
Array of plugins for the Local Player Subsystem.
protected TArray< URH_SandboxedSubsystemPlugin* >SandboxedSubsystemPlugins
Array of plugins for the Local Player Subsystem.
protected URH_LocalPlayerLoginSubsystem*LoginSubsystem
The Login Subsystem for the player.
protected URH_AdSubsystem*AdSubsystem
The Ad Subsystem for the player.
protected URH_FriendSubsystem*FriendSubsystem
The Friend Subsystem for the player.
protected URH_LocalPlayerSessionSubsystem*SessionSubsystem
The Session Subsystem for the player.
protected URH_LocalPlayerPresenceSubsystem*PresenceSubsystem
The Presence Subsystem for the player.
protected URH_PurgeSubsystem*PurgeSubsystem
The Purge Subsystem for the player.
protected URH_EntitlementSubsystem*EntitlementSubsystem
The Entitlement Subsystem for the player.
protected URH_PlayerInfoSubsystem*SandboxedPlayerInfoSubsystem
The Sandboxed PlayerInfo Subsystem for the player.
protected TWeakObjectPtr< URH_PlayerInfo>PlayerInfoCache
The Player Info associated with the local player.
protected FAuthContextPtr AuthContext
The Local Players auth context.
protected template<>
inline UClassToUse * AddSubsystemPlugin(FSoftClassPath SubsystemClassPath)
Adds a plugin to the Game Instance Subsystem.
Parameters
SubsystemClassPathThe class path of the plugin to add.
Returns
The plugin that was added.
protected template<>
inline UClassToUse * AddSandboxedSubsystemPlugin(FSoftClassPath SubsystemClassPath)
Adds a plugin to the Game Instance Subsystem.
Parameters
SubsystemClassPathThe class path of the plugin to add.
Returns
The plugin that was added.
protected virtual void OnUserLoggedIn(bool bSuccess)
Called whenever the user logs in.
Parameters
bSuccessTrue if the login was successful, false otherwise.
protected virtual void OnUserChanged()
Callback that occurs whenever the local player this subsystem is associated with changes.
struct FRH_LoginResult
Struct for the login results.
Summary
| Members | Descriptions |
|---|---|
public ERHAPI_LoginResult Result | Login Result. |
public ERHAPI_LocalPlayerLoginOSS OSSType | Login OSS Type. |
public FString OSSErrorMessage | Login Error Message. |
public TSharedPtr< const FUniqueNetId > OSSUniqueId | Unique Net Id for the player. |
public TSharedPtr< const FUniqueNetId > NicknameOSSUniqueId | Unique Net ID for the player when using Nickname Login. |
public uint32 PrivilegeResults | Privilege Result for the login. |
public bool bMustAcceptEULA | If true, the user needs to accept the EULA. |
public bool bMustAcceptTOS | If true, the user needs to accept the TOS. |
public bool bMustAcceptPP | If true, the user needs to accept the PP. |
public inline FRH_LoginResult() | Default constructor. |
Members
public ERHAPI_LoginResult Result
Login Result.
public ERHAPI_LocalPlayerLoginOSS OSSType
Login OSS Type.
public FString OSSErrorMessage
Login Error Message.
public TSharedPtr< const FUniqueNetId > OSSUniqueId
Unique Net Id for the player.
public TSharedPtr< const FUniqueNetId > NicknameOSSUniqueId
Unique Net ID for the player when using Nickname Login.
public uint32 PrivilegeResults
Privilege Result for the login.
public bool bMustAcceptEULA
If true, the user needs to accept the EULA.
public bool bMustAcceptTOS
If true, the user needs to accept the TOS.
public bool bMustAcceptPP
If true, the user needs to accept the PP.
public inline FRH_LoginResult()
Default constructor.