diff --git a/AdvancedSessions/Source/AdvancedSessions/Classes/FindSessionsCallbackProxyAdvanced.h b/AdvancedSessions/Source/AdvancedSessions/Classes/FindSessionsCallbackProxyAdvanced.h index 713b7c6..9e93f18 100644 --- a/AdvancedSessions/Source/AdvancedSessions/Classes/FindSessionsCallbackProxyAdvanced.h +++ b/AdvancedSessions/Source/AdvancedSessions/Classes/FindSessionsCallbackProxyAdvanced.h @@ -7,6 +7,11 @@ #include "BlueprintDataDefinitions.h" #include "FindSessionsCallbackProxyAdvanced.generated.h" +FORCEINLINE bool operator==(const FBlueprintSessionResult& A, const FBlueprintSessionResult& B) +{ + return (A.OnlineResult.IsValid() == B.OnlineResult.IsValid() && (A.OnlineResult.GetSessionIdStr() == B.OnlineResult.GetSessionIdStr())); +} + UCLASS(MinimalAPI) class UFindSessionsCallbackProxyAdvanced : public UOnlineBlueprintCallProxyBase { diff --git a/AdvancedSessions/Source/AdvancedSessions/Private/FindSessionsCallbackProxyAdvanced.cpp b/AdvancedSessions/Source/AdvancedSessions/Private/FindSessionsCallbackProxyAdvanced.cpp index 644b700..1be845b 100644 --- a/AdvancedSessions/Source/AdvancedSessions/Private/FindSessionsCallbackProxyAdvanced.cpp +++ b/AdvancedSessions/Source/AdvancedSessions/Private/FindSessionsCallbackProxyAdvanced.cpp @@ -199,7 +199,7 @@ void UFindSessionsCallbackProxyAdvanced::OnCompleted(bool bSuccess) FBlueprintSessionResult BPResult; BPResult.OnlineResult = Result; - SessionSearchResults.Add(BPResult); + SessionSearchResults.AddUnique(BPResult); } OnSuccess.Broadcast(SessionSearchResults); return; @@ -218,7 +218,7 @@ void UFindSessionsCallbackProxyAdvanced::OnCompleted(bool bSuccess) FBlueprintSessionResult BPResult; BPResult.OnlineResult = Result; - SessionSearchResults.Add(BPResult); + SessionSearchResults.AddUnique(BPResult); } if (!bRunSecondSearch) {