diff --git a/AdvancedSessions/Source/AdvancedSessions/Classes/AdvancedSessionsLibrary.h b/AdvancedSessions/Source/AdvancedSessions/Classes/AdvancedSessionsLibrary.h index ad76661..174255d 100644 --- a/AdvancedSessions/Source/AdvancedSessions/Classes/AdvancedSessionsLibrary.h +++ b/AdvancedSessions/Source/AdvancedSessions/Classes/AdvancedSessionsLibrary.h @@ -60,6 +60,10 @@ public: UFUNCTION(BlueprintPure, Category = "Online|AdvancedSessions|SessionInfo") static bool IsValidSession(const FBlueprintSessionResult & SessionResult); + // Get a string copy of a session ID + UFUNCTION(BlueprintPure, Category = "Online|AdvancedSessions|SessionInfo") + static void GetSessionID_AsString(const FBlueprintSessionResult & SessionResult, FString& SessionID); + // Get the Unique Current Build ID UFUNCTION(BlueprintPure, Category = "Online|AdvancedSessions|SessionInfo") static void GetCurrentUniqueBuildID(int32 &UniqueBuildId); diff --git a/AdvancedSessions/Source/AdvancedSessions/Private/AdvancedSessionsLibrary.cpp b/AdvancedSessions/Source/AdvancedSessions/Private/AdvancedSessionsLibrary.cpp index 3b3dbcc..7094f91 100644 --- a/AdvancedSessions/Source/AdvancedSessions/Private/AdvancedSessionsLibrary.cpp +++ b/AdvancedSessions/Source/AdvancedSessions/Private/AdvancedSessionsLibrary.cpp @@ -12,6 +12,19 @@ bool UAdvancedSessionsLibrary::IsValidSession(const FBlueprintSessionResult & Se return SessionResult.OnlineResult.IsValid(); } +void UAdvancedSessionsLibrary::GetSessionID_AsString(const FBlueprintSessionResult & SessionResult, FString& SessionID) +{ + const TSharedPtr SessionInfo = SessionResult.OnlineResult.Session.SessionInfo; + if (SessionInfo.IsValid() && SessionInfo->IsValid() && SessionInfo->GetSessionId().IsValid()) + { + SessionID = SessionInfo->GetSessionId().ToString(); + return; + } + + // Zero the string out if we didn't have a valid one, in case this is called in c++ + SessionID.Empty(); +} + void UAdvancedSessionsLibrary::GetCurrentUniqueBuildID(int32 &UniqueBuildId) { UniqueBuildId = GetBuildUniqueId();