diff --git a/AdvancedSessions/Source/AdvancedSessions/Private/CreateSessionCallbackProxyAdvanced.cpp b/AdvancedSessions/Source/AdvancedSessions/Private/CreateSessionCallbackProxyAdvanced.cpp index 18cad0f..df4e955 100644 --- a/AdvancedSessions/Source/AdvancedSessions/Private/CreateSessionCallbackProxyAdvanced.cpp +++ b/AdvancedSessions/Source/AdvancedSessions/Private/CreateSessionCallbackProxyAdvanced.cpp @@ -79,8 +79,21 @@ void UCreateSessionCallbackProxyAdvanced::Activate() } - if (!bDedicatedServer && PlayerControllerWeakPtr.IsValid() && Helper.UserID.IsValid()) - Sessions->CreateSession(*Helper.UserID, GameSessionName, Settings); + if (!bDedicatedServer ) + { + if (PlayerControllerWeakPtr.IsValid() && Helper.UserID.IsValid()) + { + Sessions->CreateSession(*Helper.UserID, GameSessionName, Settings); + } + else + { + FFrame::KismetExecutionMessage(TEXT("Invalid Player controller when attempting to start a session"), ELogVerbosity::Warning); + Sessions->ClearOnCreateSessionCompleteDelegate_Handle(CreateCompleteDelegateHandle); + + // Fail immediately + OnFailure.Broadcast(); + } + } else Sessions->CreateSession(0, GameSessionName, Settings); @@ -129,7 +142,7 @@ void UCreateSessionCallbackProxyAdvanced::OnCreateCompleted(FName SessionName, b void UCreateSessionCallbackProxyAdvanced::OnStartCompleted(FName SessionName, bool bWasSuccessful) { FOnlineSubsystemBPCallHelperAdvanced Helper(TEXT("StartSessionCallback"), GEngine->GetWorldFromContextObject(WorldContextObject, EGetWorldErrorMode::LogAndReturnNull)); - Helper.QueryIDFromPlayerController(PlayerControllerWeakPtr.Get()); + //Helper.QueryIDFromPlayerController(PlayerControllerWeakPtr.Get()); if (Helper.OnlineSub != nullptr) {