added fixes for friend sessions

This commit is contained in:
mordentral
2016-06-22 14:13:23 -04:00
parent f1fdbee372
commit d969d6a670
4 changed files with 19 additions and 3 deletions

View File

@@ -55,6 +55,10 @@ public:
//********* Session Information Functions ***********// //********* Session Information Functions ***********//
// Check if a session result is valid or not
UFUNCTION(BlueprintPure, Category = "Online|AdvancedSessions|SessionInfo")
static bool IsValidSession(const FBlueprintSessionResult & SessionResult);
// Get the Unique Current Build ID // Get the Unique Current Build ID
UFUNCTION(BlueprintPure, Category = "Online|AdvancedSessions|SessionInfo") UFUNCTION(BlueprintPure, Category = "Online|AdvancedSessions|SessionInfo")
static void GetCurrentUniqueBuildID(int32 &UniqueBuildId); static void GetCurrentUniqueBuildID(int32 &UniqueBuildId);

View File

@@ -5,6 +5,11 @@
//General Log //General Log
DEFINE_LOG_CATEGORY(AdvancedSessionsLog); DEFINE_LOG_CATEGORY(AdvancedSessionsLog);
bool UAdvancedSessionsLibrary::IsValidSession(const FBlueprintSessionResult & SessionResult)
{
return SessionResult.OnlineResult.IsValid();
}
void UAdvancedSessionsLibrary::GetCurrentUniqueBuildID(int32 &UniqueBuildId) void UAdvancedSessionsLibrary::GetCurrentUniqueBuildID(int32 &UniqueBuildId)
{ {
UniqueBuildId = GetBuildUniqueId(); UniqueBuildId = GetBuildUniqueId();

View File

@@ -58,9 +58,11 @@ void UFindFriendSessionCallbackProxy::Activate()
FindFriendSessionCompleteDelegateHandle = Sessions->AddOnFindFriendSessionCompleteDelegate_Handle(Player->GetControllerId(), OnFindFriendSessionCompleteDelegate); FindFriendSessionCompleteDelegateHandle = Sessions->AddOnFindFriendSessionCompleteDelegate_Handle(Player->GetControllerId(), OnFindFriendSessionCompleteDelegate);
Sessions->FindFriendSession(Player->GetControllerId(),*cUniqueNetId.GetUniqueNetId()); Sessions->FindFriendSession(Player->GetControllerId(), *cUniqueNetId.GetUniqueNetId());
return; return;
} }
// Fail immediately // Fail immediately
FBlueprintSessionResult EmptyResult; FBlueprintSessionResult EmptyResult;
OnFailure.Broadcast(EmptyResult); OnFailure.Broadcast(EmptyResult);
@@ -77,7 +79,13 @@ void UFindFriendSessionCallbackProxy::OnFindFriendSessionCompleted(int32 LocalPl
{ {
FBlueprintSessionResult Result; FBlueprintSessionResult Result;
Result.OnlineResult = SessionInfo; Result.OnlineResult = SessionInfo;
if(Result.OnlineResult.IsValid())
OnSuccess.Broadcast(Result); OnSuccess.Broadcast(Result);
else
{
UE_LOG(AdvancedFindFriendSessionLog, Warning, TEXT("FindFriendSession Failed, returned an invalid session."));
OnFailure.Broadcast(Result);
}
} }
else else
{ {

View File

@@ -30,7 +30,6 @@ UUpdateSessionCallbackProxyAdvanced* UUpdateSessionCallbackProxyAdvanced::Update
void UUpdateSessionCallbackProxyAdvanced::Activate() void UUpdateSessionCallbackProxyAdvanced::Activate()
{ {
IOnlineSessionPtr Sessions = Online::GetSessionInterface(); IOnlineSessionPtr Sessions = Online::GetSessionInterface();
if (Sessions.IsValid()) if (Sessions.IsValid())