From 50c38e90ae8eb3caf6033bd275d9e45f02193d63 Mon Sep 17 00:00:00 2001 From: "Joshua (MordenTral) Statzer" Date: Mon, 17 Nov 2025 19:13:30 -0500 Subject: [PATCH] default the auto stuff to false already --- .../AdvancedSessions/Classes/AdvancedFriendsGameInstance.h | 7 ++++++- .../Private/AdvancedFriendsGameInstance.cpp | 6 ++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/AdvancedSessions/Source/AdvancedSessions/Classes/AdvancedFriendsGameInstance.h b/AdvancedSessions/Source/AdvancedSessions/Classes/AdvancedFriendsGameInstance.h index 5a98cb6..a0c0308 100644 --- a/AdvancedSessions/Source/AdvancedSessions/Classes/AdvancedFriendsGameInstance.h +++ b/AdvancedSessions/Source/AdvancedSessions/Classes/AdvancedFriendsGameInstance.h @@ -44,10 +44,15 @@ public: UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = AdvancedVoiceInterface) bool bEnableTalkingStatusDelegate; + // If true we will auto join a session we have accepted in the overlay. + // This can get in the way of Beacon Sessions, you may want to disable it. + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = AdvancedFriendsInterface) + bool bAutoJoinSessionOnAcceptedUserInviteReceived = false; + // If true we will auto travel to a game session when an invite is received. // This can get in the way of Beacon Sessions, you may want to disable it. UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = AdvancedFriendsInterface) - bool bAutoTravelOnAcceptedUserInviteReceived = true; + bool bAutoTravelOnAcceptedUserInviteReceived = false; //virtual void PostLoad() override; virtual void Shutdown() override; diff --git a/AdvancedSessions/Source/AdvancedSessions/Private/AdvancedFriendsGameInstance.cpp b/AdvancedSessions/Source/AdvancedSessions/Private/AdvancedFriendsGameInstance.cpp index 8a2e3b7..8ca29ee 100644 --- a/AdvancedSessions/Source/AdvancedSessions/Private/AdvancedFriendsGameInstance.cpp +++ b/AdvancedSessions/Source/AdvancedSessions/Private/AdvancedFriendsGameInstance.cpp @@ -22,9 +22,15 @@ UAdvancedFriendsGameInstance::UAdvancedFriendsGameInstance(const FObjectInitiali void UAdvancedFriendsGameInstance::OnSessionUserInviteAccepted(const bool bWasSuccessful, const int32 ControllerId, FUniqueNetIdPtr UserId, const FOnlineSessionSearchResult& InviteResult) { + if (!bAutoJoinSessionOnAcceptedUserInviteReceived) + return; + IOnlineSessionPtr SessionInterface = Online::GetSessionInterface(GetWorld()); if (SessionInterface.IsValid()) { + // Eventually call this?, would need another call back to run through + //SessionInterface->DestroySession(NAME_GameSession); + SessionInterface->ClearOnJoinSessionCompleteDelegate_Handle(OnJoinSessionCompleteDelegateHandle); OnJoinSessionCompleteDelegateHandle = SessionInterface->AddOnJoinSessionCompleteDelegate_Handle( FOnJoinSessionCompleteDelegate::CreateUObject(this, &UAdvancedFriendsGameInstance::OnJoinSessionComplete));