mirror of
https://github.com/mordentral/AdvancedSessionsPlugin.git
synced 2025-10-23 00:14:24 +00:00
initial refactor of latent nodes
This commit is contained in:
@@ -51,5 +51,5 @@ private:
|
|||||||
FDelegateHandle DelegateHandle;
|
FDelegateHandle DelegateHandle;
|
||||||
|
|
||||||
// The world context object in which this call is taking place
|
// The world context object in which this call is taking place
|
||||||
UObject* WorldContextObject;
|
TWeakObjectPtr<UObject> WorldContextObject;
|
||||||
};
|
};
|
||||||
|
@@ -42,5 +42,5 @@ private:
|
|||||||
FDelegateHandle DelegateHandle;
|
FDelegateHandle DelegateHandle;
|
||||||
|
|
||||||
// The world context object in which this call is taking place
|
// The world context object in which this call is taking place
|
||||||
UObject* WorldContextObject;
|
TWeakObjectPtr<UObject> WorldContextObject;
|
||||||
};
|
};
|
||||||
|
@@ -102,6 +102,6 @@ private:
|
|||||||
TArray<FSessionPropertyKeyPair> ExtraSettings;
|
TArray<FSessionPropertyKeyPair> ExtraSettings;
|
||||||
|
|
||||||
// The world context object in which this call is taking place
|
// The world context object in which this call is taking place
|
||||||
UObject* WorldContextObject;
|
TWeakObjectPtr<UObject> WorldContextObject;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -45,5 +45,5 @@ private:
|
|||||||
FDelegateHandle DelegateHandle;
|
FDelegateHandle DelegateHandle;
|
||||||
|
|
||||||
// The world context object in which this call is taking place
|
// The world context object in which this call is taking place
|
||||||
UObject* WorldContextObject;
|
TWeakObjectPtr<UObject> WorldContextObject;
|
||||||
};
|
};
|
||||||
|
@@ -46,6 +46,6 @@ private:
|
|||||||
FDelegateHandle FindFriendSessionCompleteDelegateHandle;
|
FDelegateHandle FindFriendSessionCompleteDelegateHandle;
|
||||||
|
|
||||||
// The world context object in which this call is taking place
|
// The world context object in which this call is taking place
|
||||||
UObject* WorldContextObject;
|
TWeakObjectPtr<UObject> WorldContextObject;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -105,5 +105,5 @@ private:
|
|||||||
int MinSlotsAvailable;
|
int MinSlotsAvailable;
|
||||||
|
|
||||||
// The world context object in which this call is taking place
|
// The world context object in which this call is taking place
|
||||||
UObject* WorldContextObject;
|
TWeakObjectPtr<UObject> WorldContextObject;
|
||||||
};
|
};
|
||||||
|
@@ -44,6 +44,6 @@ private:
|
|||||||
//EBPFriendsLists FriendListToGet;
|
//EBPFriendsLists FriendListToGet;
|
||||||
|
|
||||||
// The world context object in which this call is taking place
|
// The world context object in which this call is taking place
|
||||||
UObject* WorldContextObject;
|
TWeakObjectPtr<UObject> WorldContextObject;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -44,6 +44,6 @@ private:
|
|||||||
FOnQueryRecentPlayersCompleteDelegate QueryRecentPlayersCompleteDelegate;
|
FOnQueryRecentPlayersCompleteDelegate QueryRecentPlayersCompleteDelegate;
|
||||||
|
|
||||||
// The world context object in which this call is taking place
|
// The world context object in which this call is taking place
|
||||||
UObject* WorldContextObject;
|
TWeakObjectPtr<UObject> WorldContextObject;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -41,5 +41,5 @@ private:
|
|||||||
EBPUserPrivileges UserPrivilege;
|
EBPUserPrivileges UserPrivilege;
|
||||||
|
|
||||||
// The world context object in which this call is taking place
|
// The world context object in which this call is taking place
|
||||||
UObject* WorldContextObject;
|
TWeakObjectPtr<UObject> WorldContextObject;
|
||||||
};
|
};
|
||||||
|
@@ -51,5 +51,5 @@ private:
|
|||||||
FDelegateHandle DelegateHandle;
|
FDelegateHandle DelegateHandle;
|
||||||
|
|
||||||
// The world context object in which this call is taking place
|
// The world context object in which this call is taking place
|
||||||
UObject* WorldContextObject;
|
TWeakObjectPtr<UObject> WorldContextObject;
|
||||||
};
|
};
|
||||||
|
@@ -43,5 +43,5 @@ private:
|
|||||||
FDelegateHandle DelegateHandle;
|
FDelegateHandle DelegateHandle;
|
||||||
|
|
||||||
// The world context object in which this call is taking place
|
// The world context object in which this call is taking place
|
||||||
UObject* WorldContextObject;
|
TWeakObjectPtr<UObject> WorldContextObject;
|
||||||
};
|
};
|
||||||
|
@@ -44,6 +44,6 @@ private:
|
|||||||
FOnSendInviteComplete OnSendInviteCompleteDelegate;
|
FOnSendInviteComplete OnSendInviteCompleteDelegate;
|
||||||
|
|
||||||
// The world context object in which this call is taking place
|
// The world context object in which this call is taking place
|
||||||
UObject* WorldContextObject;
|
TWeakObjectPtr<UObject> WorldContextObject;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -25,7 +25,7 @@ class UStartSessionCallbackProxyAdvanced : public UOnlineBlueprintCallProxyBase
|
|||||||
, meta=(BlueprintInternalUseOnly = "true", WorldContext="WorldContextObject")
|
, meta=(BlueprintInternalUseOnly = "true", WorldContext="WorldContextObject")
|
||||||
, Category = "Online|AdvancedSessions"
|
, Category = "Online|AdvancedSessions"
|
||||||
)
|
)
|
||||||
static UStartSessionCallbackProxyAdvanced* StartAdvancedSession(const UObject* WorldContextObject);
|
static UStartSessionCallbackProxyAdvanced* StartAdvancedSession(UObject* WorldContextObject);
|
||||||
|
|
||||||
// UOnlineBlueprintCallProxyBase interface
|
// UOnlineBlueprintCallProxyBase interface
|
||||||
virtual void Activate() override;
|
virtual void Activate() override;
|
||||||
@@ -42,5 +42,5 @@ private:
|
|||||||
FDelegateHandle StartCompleteDelegateHandle;
|
FDelegateHandle StartCompleteDelegateHandle;
|
||||||
|
|
||||||
// The world context object in which this call is taking place
|
// The world context object in which this call is taking place
|
||||||
const UObject* WorldContextObject;
|
TWeakObjectPtr<UObject> WorldContextObject;
|
||||||
};
|
};
|
@@ -64,6 +64,6 @@ private:
|
|||||||
bool bShouldAdvertise = true;
|
bool bShouldAdvertise = true;
|
||||||
|
|
||||||
// The world context object in which this call is taking place
|
// The world context object in which this call is taking place
|
||||||
UObject* WorldContextObject;
|
TWeakObjectPtr<UObject> WorldContextObject;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -24,7 +24,12 @@ UAutoLoginUserCallbackProxy* UAutoLoginUserCallbackProxy::AutoLoginUser(UObject*
|
|||||||
|
|
||||||
void UAutoLoginUserCallbackProxy::Activate()
|
void UAutoLoginUserCallbackProxy::Activate()
|
||||||
{
|
{
|
||||||
auto Identity = Online::GetIdentityInterface();
|
|
||||||
|
FOnlineSubsystemBPCallHelperAdvanced Helper(TEXT("AutoLoginUser"), GEngine->GetWorldFromContextObject(WorldContextObject.Get(), EGetWorldErrorMode::LogAndReturnNull));
|
||||||
|
|
||||||
|
if (Helper.OnlineSub != nullptr)
|
||||||
|
{
|
||||||
|
auto Identity = Helper.OnlineSub->GetIdentityInterface();
|
||||||
|
|
||||||
if (Identity.IsValid())
|
if (Identity.IsValid())
|
||||||
{
|
{
|
||||||
@@ -32,6 +37,7 @@ void UAutoLoginUserCallbackProxy::Activate()
|
|||||||
Identity->AutoLogin(LocalUserNumber);
|
Identity->AutoLogin(LocalUserNumber);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Fail immediately
|
// Fail immediately
|
||||||
OnFailure.Broadcast();
|
OnFailure.Broadcast();
|
||||||
@@ -39,14 +45,18 @@ void UAutoLoginUserCallbackProxy::Activate()
|
|||||||
|
|
||||||
void UAutoLoginUserCallbackProxy::OnCompleted(int32 LocalUserNum, bool bWasSuccessful, const FUniqueNetId& UserId, const FString& ErrorVal)
|
void UAutoLoginUserCallbackProxy::OnCompleted(int32 LocalUserNum, bool bWasSuccessful, const FUniqueNetId& UserId, const FString& ErrorVal)
|
||||||
{
|
{
|
||||||
auto Identity = Online::GetIdentityInterface();
|
FOnlineSubsystemBPCallHelperAdvanced Helper(TEXT("AutoLoginUser"), GEngine->GetWorldFromContextObject(WorldContextObject.Get(), EGetWorldErrorMode::LogAndReturnNull));
|
||||||
|
|
||||||
|
if (Helper.OnlineSub != nullptr)
|
||||||
|
{
|
||||||
|
auto Identity = Helper.OnlineSub->GetIdentityInterface();
|
||||||
|
|
||||||
if (Identity.IsValid())
|
if (Identity.IsValid())
|
||||||
{
|
{
|
||||||
Identity->ClearOnLoginCompleteDelegate_Handle(LocalUserNum, DelegateHandle);
|
Identity->ClearOnLoginCompleteDelegate_Handle(LocalUserNum, DelegateHandle);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(APlayerController* PController = UGameplayStatics::GetPlayerController(WorldContextObject->GetWorld(), LocalUserNum))
|
if (APlayerController* PController = UGameplayStatics::GetPlayerController(WorldContextObject->GetWorld(), LocalUserNum))
|
||||||
{
|
{
|
||||||
ULocalPlayer* Player = Cast<ULocalPlayer>(PController->Player);
|
ULocalPlayer* Player = Cast<ULocalPlayer>(PController->Player);
|
||||||
|
|
||||||
@@ -73,4 +83,7 @@ void UAutoLoginUserCallbackProxy::OnCompleted(int32 LocalUserNum, bool bWasSucce
|
|||||||
{
|
{
|
||||||
OnFailure.Broadcast();
|
OnFailure.Broadcast();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
OnFailure.Broadcast();
|
||||||
}
|
}
|
||||||
|
@@ -21,7 +21,7 @@ UCancelFindSessionsCallbackProxy* UCancelFindSessionsCallbackProxy::CancelFindSe
|
|||||||
|
|
||||||
void UCancelFindSessionsCallbackProxy::Activate()
|
void UCancelFindSessionsCallbackProxy::Activate()
|
||||||
{
|
{
|
||||||
FOnlineSubsystemBPCallHelperAdvanced Helper(TEXT("CancelFindSessions"), GEngine->GetWorldFromContextObject(WorldContextObject, EGetWorldErrorMode::LogAndReturnNull));
|
FOnlineSubsystemBPCallHelperAdvanced Helper(TEXT("CancelFindSessions"), GEngine->GetWorldFromContextObject(WorldContextObject.Get(), EGetWorldErrorMode::LogAndReturnNull));
|
||||||
Helper.QueryIDFromPlayerController(PlayerControllerWeakPtr.Get());
|
Helper.QueryIDFromPlayerController(PlayerControllerWeakPtr.Get());
|
||||||
|
|
||||||
if (Helper.IsValid())
|
if (Helper.IsValid())
|
||||||
@@ -47,7 +47,7 @@ void UCancelFindSessionsCallbackProxy::Activate()
|
|||||||
|
|
||||||
void UCancelFindSessionsCallbackProxy::OnCompleted(bool bWasSuccessful)
|
void UCancelFindSessionsCallbackProxy::OnCompleted(bool bWasSuccessful)
|
||||||
{
|
{
|
||||||
FOnlineSubsystemBPCallHelperAdvanced Helper(TEXT("CancelFindSessionsCallback"), GEngine->GetWorldFromContextObject(WorldContextObject, EGetWorldErrorMode::LogAndReturnNull));
|
FOnlineSubsystemBPCallHelperAdvanced Helper(TEXT("CancelFindSessionsCallback"), GEngine->GetWorldFromContextObject(WorldContextObject.Get(), EGetWorldErrorMode::LogAndReturnNull));
|
||||||
Helper.QueryIDFromPlayerController(PlayerControllerWeakPtr.Get());
|
Helper.QueryIDFromPlayerController(PlayerControllerWeakPtr.Get());
|
||||||
|
|
||||||
if (Helper.IsValid())
|
if (Helper.IsValid())
|
||||||
|
@@ -38,7 +38,7 @@ UCreateSessionCallbackProxyAdvanced* UCreateSessionCallbackProxyAdvanced::Create
|
|||||||
|
|
||||||
void UCreateSessionCallbackProxyAdvanced::Activate()
|
void UCreateSessionCallbackProxyAdvanced::Activate()
|
||||||
{
|
{
|
||||||
FOnlineSubsystemBPCallHelperAdvanced Helper(TEXT("CreateSession"), GEngine->GetWorldFromContextObject(WorldContextObject, EGetWorldErrorMode::LogAndReturnNull));
|
FOnlineSubsystemBPCallHelperAdvanced Helper(TEXT("CreateSession"), GEngine->GetWorldFromContextObject(WorldContextObject.Get(), EGetWorldErrorMode::LogAndReturnNull));
|
||||||
|
|
||||||
if (PlayerControllerWeakPtr.IsValid() )
|
if (PlayerControllerWeakPtr.IsValid() )
|
||||||
Helper.QueryIDFromPlayerController(PlayerControllerWeakPtr.Get());
|
Helper.QueryIDFromPlayerController(PlayerControllerWeakPtr.Get());
|
||||||
@@ -121,7 +121,7 @@ void UCreateSessionCallbackProxyAdvanced::Activate()
|
|||||||
|
|
||||||
void UCreateSessionCallbackProxyAdvanced::OnCreateCompleted(FName SessionName, bool bWasSuccessful)
|
void UCreateSessionCallbackProxyAdvanced::OnCreateCompleted(FName SessionName, bool bWasSuccessful)
|
||||||
{
|
{
|
||||||
FOnlineSubsystemBPCallHelperAdvanced Helper(TEXT("CreateSessionCallback"), GEngine->GetWorldFromContextObject(WorldContextObject, EGetWorldErrorMode::LogAndReturnNull));
|
FOnlineSubsystemBPCallHelperAdvanced Helper(TEXT("CreateSessionCallback"), GEngine->GetWorldFromContextObject(WorldContextObject.Get(), EGetWorldErrorMode::LogAndReturnNull));
|
||||||
//Helper.QueryIDFromPlayerController(PlayerControllerWeakPtr.Get());
|
//Helper.QueryIDFromPlayerController(PlayerControllerWeakPtr.Get());
|
||||||
|
|
||||||
if (Helper.OnlineSub != nullptr)
|
if (Helper.OnlineSub != nullptr)
|
||||||
@@ -159,7 +159,7 @@ void UCreateSessionCallbackProxyAdvanced::OnCreateCompleted(FName SessionName, b
|
|||||||
|
|
||||||
void UCreateSessionCallbackProxyAdvanced::OnStartCompleted(FName SessionName, bool bWasSuccessful)
|
void UCreateSessionCallbackProxyAdvanced::OnStartCompleted(FName SessionName, bool bWasSuccessful)
|
||||||
{
|
{
|
||||||
FOnlineSubsystemBPCallHelperAdvanced Helper(TEXT("StartSessionCallback"), GEngine->GetWorldFromContextObject(WorldContextObject, EGetWorldErrorMode::LogAndReturnNull));
|
FOnlineSubsystemBPCallHelperAdvanced Helper(TEXT("StartSessionCallback"), GEngine->GetWorldFromContextObject(WorldContextObject.Get(), EGetWorldErrorMode::LogAndReturnNull));
|
||||||
//Helper.QueryIDFromPlayerController(PlayerControllerWeakPtr.Get());
|
//Helper.QueryIDFromPlayerController(PlayerControllerWeakPtr.Get());
|
||||||
|
|
||||||
if (Helper.OnlineSub != nullptr)
|
if (Helper.OnlineSub != nullptr)
|
||||||
|
@@ -21,7 +21,7 @@ UEndSessionCallbackProxy* UEndSessionCallbackProxy::EndSession(UObject* WorldCon
|
|||||||
|
|
||||||
void UEndSessionCallbackProxy::Activate()
|
void UEndSessionCallbackProxy::Activate()
|
||||||
{
|
{
|
||||||
FOnlineSubsystemBPCallHelperAdvanced Helper(TEXT("EndSession"), GEngine->GetWorldFromContextObject(WorldContextObject, EGetWorldErrorMode::LogAndReturnNull));
|
FOnlineSubsystemBPCallHelperAdvanced Helper(TEXT("EndSession"), GEngine->GetWorldFromContextObject(WorldContextObject.Get(), EGetWorldErrorMode::LogAndReturnNull));
|
||||||
Helper.QueryIDFromPlayerController(PlayerControllerWeakPtr.Get());
|
Helper.QueryIDFromPlayerController(PlayerControllerWeakPtr.Get());
|
||||||
|
|
||||||
if (Helper.IsValid())
|
if (Helper.IsValid())
|
||||||
@@ -55,7 +55,7 @@ void UEndSessionCallbackProxy::Activate()
|
|||||||
|
|
||||||
void UEndSessionCallbackProxy::OnCompleted(FName SessionName, bool bWasSuccessful)
|
void UEndSessionCallbackProxy::OnCompleted(FName SessionName, bool bWasSuccessful)
|
||||||
{
|
{
|
||||||
FOnlineSubsystemBPCallHelperAdvanced Helper(TEXT("EndSessionCallback"), GEngine->GetWorldFromContextObject(WorldContextObject, EGetWorldErrorMode::LogAndReturnNull));
|
FOnlineSubsystemBPCallHelperAdvanced Helper(TEXT("EndSessionCallback"), GEngine->GetWorldFromContextObject(WorldContextObject.Get(), EGetWorldErrorMode::LogAndReturnNull));
|
||||||
Helper.QueryIDFromPlayerController(PlayerControllerWeakPtr.Get());
|
Helper.QueryIDFromPlayerController(PlayerControllerWeakPtr.Get());
|
||||||
|
|
||||||
if (Helper.IsValid())
|
if (Helper.IsValid())
|
||||||
|
@@ -41,7 +41,18 @@ void UFindFriendSessionCallbackProxy::Activate()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
IOnlineSessionPtr Sessions = Online::GetSessionInterface(GetWorld());
|
FOnlineSubsystemBPCallHelperAdvanced Helper(TEXT("EndSessionCallback"), GEngine->GetWorldFromContextObject(WorldContextObject.Get(), EGetWorldErrorMode::LogAndReturnNull));
|
||||||
|
Helper.QueryIDFromPlayerController(PlayerControllerWeakPtr.Get());
|
||||||
|
|
||||||
|
if (!Helper.IsValid())
|
||||||
|
{
|
||||||
|
// Fail immediately
|
||||||
|
TArray<FBlueprintSessionResult> EmptyResult;
|
||||||
|
OnFailure.Broadcast(EmptyResult);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
IOnlineSessionPtr Sessions = Helper.OnlineSub->GetSessionInterface();
|
||||||
|
|
||||||
if (Sessions.IsValid())
|
if (Sessions.IsValid())
|
||||||
{
|
{
|
||||||
@@ -71,12 +82,17 @@ void UFindFriendSessionCallbackProxy::Activate()
|
|||||||
|
|
||||||
void UFindFriendSessionCallbackProxy::OnFindFriendSessionCompleted(int32 LocalPlayer, bool bWasSuccessful, const TArray<FOnlineSessionSearchResult>& SessionInfo)
|
void UFindFriendSessionCallbackProxy::OnFindFriendSessionCompleted(int32 LocalPlayer, bool bWasSuccessful, const TArray<FOnlineSessionSearchResult>& SessionInfo)
|
||||||
{
|
{
|
||||||
IOnlineSessionPtr Sessions = Online::GetSessionInterface(GetWorld());
|
FOnlineSubsystemBPCallHelperAdvanced Helper(TEXT("EndSessionCallback"), GEngine->GetWorldFromContextObject(WorldContextObject.Get(), EGetWorldErrorMode::LogAndReturnNull));
|
||||||
|
Helper.QueryIDFromPlayerController(PlayerControllerWeakPtr.Get());
|
||||||
|
|
||||||
|
if (Helper.IsValid())
|
||||||
|
{
|
||||||
|
IOnlineSessionPtr Sessions = Helper.OnlineSub->GetSessionInterface();
|
||||||
|
|
||||||
if (Sessions.IsValid())
|
if (Sessions.IsValid())
|
||||||
Sessions->ClearOnFindFriendSessionCompleteDelegate_Handle(LocalPlayer, FindFriendSessionCompleteDelegateHandle);
|
Sessions->ClearOnFindFriendSessionCompleteDelegate_Handle(LocalPlayer, FindFriendSessionCompleteDelegateHandle);
|
||||||
|
|
||||||
if ( bWasSuccessful )
|
if (bWasSuccessful)
|
||||||
{
|
{
|
||||||
TArray<FBlueprintSessionResult> Result;
|
TArray<FBlueprintSessionResult> Result;
|
||||||
|
|
||||||
@@ -90,7 +106,7 @@ void UFindFriendSessionCallbackProxy::OnFindFriendSessionCompleted(int32 LocalPl
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(Result.Num() > 0)
|
if (Result.Num() > 0)
|
||||||
OnSuccess.Broadcast(Result);
|
OnSuccess.Broadcast(Result);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -104,4 +120,11 @@ void UFindFriendSessionCallbackProxy::OnFindFriendSessionCompleted(int32 LocalPl
|
|||||||
TArray<FBlueprintSessionResult> EmptyResult;
|
TArray<FBlueprintSessionResult> EmptyResult;
|
||||||
OnFailure.Broadcast(EmptyResult);
|
OnFailure.Broadcast(EmptyResult);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
UE_LOG(AdvancedFindFriendSessionLog, Warning, TEXT("FindFriendSession Failed"));
|
||||||
|
TArray<FBlueprintSessionResult> EmptyResult;
|
||||||
|
OnFailure.Broadcast(EmptyResult);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -35,7 +35,7 @@ UFindSessionsCallbackProxyAdvanced* UFindSessionsCallbackProxyAdvanced::FindSess
|
|||||||
|
|
||||||
void UFindSessionsCallbackProxyAdvanced::Activate()
|
void UFindSessionsCallbackProxyAdvanced::Activate()
|
||||||
{
|
{
|
||||||
FOnlineSubsystemBPCallHelperAdvanced Helper(TEXT("FindSessions"), GEngine->GetWorldFromContextObject(WorldContextObject, EGetWorldErrorMode::LogAndReturnNull));
|
FOnlineSubsystemBPCallHelperAdvanced Helper(TEXT("FindSessions"), GEngine->GetWorldFromContextObject(WorldContextObject.Get(), EGetWorldErrorMode::LogAndReturnNull));
|
||||||
Helper.QueryIDFromPlayerController(PlayerControllerWeakPtr.Get());
|
Helper.QueryIDFromPlayerController(PlayerControllerWeakPtr.Get());
|
||||||
|
|
||||||
if (Helper.IsValid())
|
if (Helper.IsValid())
|
||||||
@@ -172,9 +172,16 @@ void UFindSessionsCallbackProxyAdvanced::Activate()
|
|||||||
|
|
||||||
void UFindSessionsCallbackProxyAdvanced::OnCompleted(bool bSuccess)
|
void UFindSessionsCallbackProxyAdvanced::OnCompleted(bool bSuccess)
|
||||||
{
|
{
|
||||||
FOnlineSubsystemBPCallHelperAdvanced Helper(TEXT("FindSessionsCallback"), GEngine->GetWorldFromContextObject(WorldContextObject, EGetWorldErrorMode::LogAndReturnNull));
|
FOnlineSubsystemBPCallHelperAdvanced Helper(TEXT("FindSessionsCallback"), GEngine->GetWorldFromContextObject(WorldContextObject.Get(), EGetWorldErrorMode::LogAndReturnNull));
|
||||||
Helper.QueryIDFromPlayerController(PlayerControllerWeakPtr.Get());
|
Helper.QueryIDFromPlayerController(PlayerControllerWeakPtr.Get());
|
||||||
|
|
||||||
|
if (!Helper.IsValid())
|
||||||
|
{
|
||||||
|
// Fail immediately
|
||||||
|
OnFailure.Broadcast(SessionSearchResults);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (!bRunSecondSearch && Helper.IsValid())
|
if (!bRunSecondSearch && Helper.IsValid())
|
||||||
{
|
{
|
||||||
auto Sessions = Helper.OnlineSub->GetSessionInterface();
|
auto Sessions = Helper.OnlineSub->GetSessionInterface();
|
||||||
|
@@ -2,6 +2,7 @@
|
|||||||
#include "GetFriendsCallbackProxy.h"
|
#include "GetFriendsCallbackProxy.h"
|
||||||
|
|
||||||
#include "Online.h"
|
#include "Online.h"
|
||||||
|
#include "Interfaces/OnlineFriendsInterface.h"
|
||||||
#include "Interfaces/OnlinePresenceInterface.h"
|
#include "Interfaces/OnlinePresenceInterface.h"
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
@@ -33,7 +34,12 @@ void UGetFriendsCallbackProxy::Activate()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
IOnlineFriendsPtr Friends = Online::GetFriendsInterface();
|
FOnlineSubsystemBPCallHelperAdvanced Helper(TEXT("GetFriends"), GEngine->GetWorldFromContextObject(WorldContextObject.Get(), EGetWorldErrorMode::LogAndReturnNull));
|
||||||
|
Helper.QueryIDFromPlayerController(PlayerControllerWeakPtr.Get());
|
||||||
|
|
||||||
|
if (Helper.IsValid())
|
||||||
|
{
|
||||||
|
IOnlineFriendsPtr Friends = Helper.OnlineSub->GetFriendsInterface();
|
||||||
if (Friends.IsValid())
|
if (Friends.IsValid())
|
||||||
{
|
{
|
||||||
ULocalPlayer* Player = Cast<ULocalPlayer>(PlayerControllerWeakPtr->Player);
|
ULocalPlayer* Player = Cast<ULocalPlayer>(PlayerControllerWeakPtr->Player);
|
||||||
@@ -41,10 +47,10 @@ void UGetFriendsCallbackProxy::Activate()
|
|||||||
Friends->ReadFriendsList(Player->GetControllerId(), EFriendsLists::ToString((EFriendsLists::Default)), FriendListReadCompleteDelegate);
|
Friends->ReadFriendsList(Player->GetControllerId(), EFriendsLists::ToString((EFriendsLists::Default)), FriendListReadCompleteDelegate);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Fail immediately
|
// Fail immediately
|
||||||
TArray<FBPFriendInfo> EmptyArray;
|
TArray<FBPFriendInfo> EmptyArray;
|
||||||
|
|
||||||
OnFailure.Broadcast(EmptyArray);
|
OnFailure.Broadcast(EmptyArray);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -52,7 +58,17 @@ void UGetFriendsCallbackProxy::OnReadFriendsListCompleted(int32 LocalUserNum, bo
|
|||||||
{
|
{
|
||||||
if (bWasSuccessful)
|
if (bWasSuccessful)
|
||||||
{
|
{
|
||||||
IOnlineFriendsPtr Friends = Online::GetFriendsInterface();
|
FOnlineSubsystemBPCallHelperAdvanced Helper(TEXT("GetFriends"), GEngine->GetWorldFromContextObject(WorldContextObject.Get(), EGetWorldErrorMode::LogAndReturnNull));
|
||||||
|
Helper.QueryIDFromPlayerController(PlayerControllerWeakPtr.Get());
|
||||||
|
|
||||||
|
if (!Helper.IsValid())
|
||||||
|
{
|
||||||
|
TArray<FBPFriendInfo> EmptyArray;
|
||||||
|
OnFailure.Broadcast(EmptyArray);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
auto Friends = Helper.OnlineSub->GetFriendsInterface();
|
||||||
if (Friends.IsValid())
|
if (Friends.IsValid())
|
||||||
{
|
{
|
||||||
// Not actually needed anymore, plus was not being validated and causing a crash
|
// Not actually needed anymore, plus was not being validated and causing a crash
|
||||||
|
@@ -32,7 +32,16 @@ void UGetRecentPlayersCallbackProxy::Activate()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
IOnlineFriendsPtr Friends = Online::GetFriendsInterface();
|
FOnlineSubsystemBPCallHelperAdvanced Helper(TEXT("GetRecentPlayers"), GEngine->GetWorldFromContextObject(WorldContextObject.Get(), EGetWorldErrorMode::LogAndReturnNull));
|
||||||
|
|
||||||
|
if (!Helper.OnlineSub)
|
||||||
|
{
|
||||||
|
TArray<FBPOnlineRecentPlayer> EmptyArray;
|
||||||
|
OnFailure.Broadcast(EmptyArray);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
IOnlineFriendsPtr Friends = Helper.OnlineSub->GetFriendsInterface();
|
||||||
if (Friends.IsValid())
|
if (Friends.IsValid())
|
||||||
{
|
{
|
||||||
DelegateHandle = Friends->AddOnQueryRecentPlayersCompleteDelegate_Handle(QueryRecentPlayersCompleteDelegate);
|
DelegateHandle = Friends->AddOnQueryRecentPlayersCompleteDelegate_Handle(QueryRecentPlayersCompleteDelegate);
|
||||||
@@ -49,7 +58,16 @@ void UGetRecentPlayersCallbackProxy::Activate()
|
|||||||
void UGetRecentPlayersCallbackProxy::OnQueryRecentPlayersCompleted(const FUniqueNetId &UserID, const FString &Namespace, bool bWasSuccessful, const FString& ErrorString)
|
void UGetRecentPlayersCallbackProxy::OnQueryRecentPlayersCompleted(const FUniqueNetId &UserID, const FString &Namespace, bool bWasSuccessful, const FString& ErrorString)
|
||||||
{
|
{
|
||||||
|
|
||||||
IOnlineFriendsPtr Friends = Online::GetFriendsInterface();
|
FOnlineSubsystemBPCallHelperAdvanced Helper(TEXT("GetRecentPlayers"), GEngine->GetWorldFromContextObject(WorldContextObject.Get(), EGetWorldErrorMode::LogAndReturnNull));
|
||||||
|
|
||||||
|
if (!Helper.OnlineSub)
|
||||||
|
{
|
||||||
|
TArray<FBPOnlineRecentPlayer> EmptyArray;
|
||||||
|
OnFailure.Broadcast(EmptyArray);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
IOnlineFriendsPtr Friends = Helper.OnlineSub->GetFriendsInterface();
|
||||||
if (Friends.IsValid())
|
if (Friends.IsValid())
|
||||||
Friends->ClearOnQueryRecentPlayersCompleteDelegate_Handle(DelegateHandle);
|
Friends->ClearOnQueryRecentPlayersCompleteDelegate_Handle(DelegateHandle);
|
||||||
|
|
||||||
|
@@ -23,7 +23,14 @@ UGetUserPrivilegeCallbackProxy* UGetUserPrivilegeCallbackProxy::GetUserPrivilege
|
|||||||
|
|
||||||
void UGetUserPrivilegeCallbackProxy::Activate()
|
void UGetUserPrivilegeCallbackProxy::Activate()
|
||||||
{
|
{
|
||||||
auto Identity = Online::GetIdentityInterface();
|
FOnlineSubsystemBPCallHelperAdvanced Helper(TEXT("GetUserPrivilege"), GEngine->GetWorldFromContextObject(WorldContextObject.Get(), EGetWorldErrorMode::LogAndReturnNull));
|
||||||
|
|
||||||
|
if (!Helper.OnlineSub)
|
||||||
|
{
|
||||||
|
OnFailure.Broadcast();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
auto Identity = Helper.OnlineSub->GetIdentityInterface();
|
||||||
|
|
||||||
if (Identity.IsValid())
|
if (Identity.IsValid())
|
||||||
{
|
{
|
||||||
|
@@ -41,8 +41,15 @@ void ULoginUserCallbackProxy::Activate()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto Identity = Online::GetIdentityInterface();
|
FOnlineSubsystemBPCallHelperAdvanced Helper(TEXT("LoginUser"), GEngine->GetWorldFromContextObject(WorldContextObject.Get(), EGetWorldErrorMode::LogAndReturnNull));
|
||||||
|
|
||||||
|
if (!Helper.OnlineSub)
|
||||||
|
{
|
||||||
|
OnFailure.Broadcast();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
auto Identity = Helper.OnlineSub->GetIdentityInterface();
|
||||||
if (Identity.IsValid())
|
if (Identity.IsValid())
|
||||||
{
|
{
|
||||||
// Fallback to default AuthType if nothing is specified
|
// Fallback to default AuthType if nothing is specified
|
||||||
@@ -70,8 +77,15 @@ void ULoginUserCallbackProxy::OnCompleted(int32 LocalUserNum, bool bWasSuccessfu
|
|||||||
|
|
||||||
if (Player)
|
if (Player)
|
||||||
{
|
{
|
||||||
auto Identity = Online::GetIdentityInterface();
|
FOnlineSubsystemBPCallHelperAdvanced Helper(TEXT("GetUserPrivilege"), GEngine->GetWorldFromContextObject(WorldContextObject.Get(), EGetWorldErrorMode::LogAndReturnNull));
|
||||||
|
|
||||||
|
if (!Helper.OnlineSub)
|
||||||
|
{
|
||||||
|
OnFailure.Broadcast();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
auto Identity = Helper.OnlineSub->GetIdentityInterface();
|
||||||
if (Identity.IsValid())
|
if (Identity.IsValid())
|
||||||
{
|
{
|
||||||
Identity->ClearOnLoginCompleteDelegate_Handle(Player->GetControllerId(), DelegateHandle);
|
Identity->ClearOnLoginCompleteDelegate_Handle(Player->GetControllerId(), DelegateHandle);
|
||||||
|
@@ -30,7 +30,6 @@ void ULogoutUserCallbackProxy::Activate()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ULocalPlayer* Player = Cast<ULocalPlayer>(PlayerControllerWeakPtr->Player);
|
ULocalPlayer* Player = Cast<ULocalPlayer>(PlayerControllerWeakPtr->Player);
|
||||||
|
|
||||||
if (!Player)
|
if (!Player)
|
||||||
@@ -39,7 +38,14 @@ void ULogoutUserCallbackProxy::Activate()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto Identity = Online::GetIdentityInterface();
|
FOnlineSubsystemBPCallHelperAdvanced Helper(TEXT("LogoutUser"), GEngine->GetWorldFromContextObject(WorldContextObject.Get(), EGetWorldErrorMode::LogAndReturnNull));
|
||||||
|
|
||||||
|
if (!Helper.OnlineSub)
|
||||||
|
{
|
||||||
|
OnFailure.Broadcast();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
auto Identity = Helper.OnlineSub->GetIdentityInterface();
|
||||||
|
|
||||||
if (Identity.IsValid())
|
if (Identity.IsValid())
|
||||||
{
|
{
|
||||||
@@ -61,7 +67,14 @@ void ULogoutUserCallbackProxy::OnCompleted(int LocalUserNum, bool bWasSuccessful
|
|||||||
|
|
||||||
if (Player)
|
if (Player)
|
||||||
{
|
{
|
||||||
auto Identity = Online::GetIdentityInterface();
|
FOnlineSubsystemBPCallHelperAdvanced Helper(TEXT("LogoutUser"), GEngine->GetWorldFromContextObject(WorldContextObject.Get(), EGetWorldErrorMode::LogAndReturnNull));
|
||||||
|
|
||||||
|
if (!Helper.OnlineSub)
|
||||||
|
{
|
||||||
|
OnFailure.Broadcast();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
auto Identity = Helper.OnlineSub->GetIdentityInterface();
|
||||||
|
|
||||||
if (Identity.IsValid())
|
if (Identity.IsValid())
|
||||||
{
|
{
|
||||||
|
@@ -40,7 +40,15 @@ void USendFriendInviteCallbackProxy::Activate()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
IOnlineFriendsPtr Friends = Online::GetFriendsInterface();
|
FOnlineSubsystemBPCallHelperAdvanced Helper(TEXT("SendFriendInvite"), GEngine->GetWorldFromContextObject(WorldContextObject.Get(), EGetWorldErrorMode::LogAndReturnNull));
|
||||||
|
|
||||||
|
if (!Helper.OnlineSub)
|
||||||
|
{
|
||||||
|
OnFailure.Broadcast();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
auto Friends = Helper.OnlineSub->GetFriendsInterface();
|
||||||
if (Friends.IsValid())
|
if (Friends.IsValid())
|
||||||
{
|
{
|
||||||
ULocalPlayer* Player = Cast<ULocalPlayer>(PlayerControllerWeakPtr->Player);
|
ULocalPlayer* Player = Cast<ULocalPlayer>(PlayerControllerWeakPtr->Player);
|
||||||
|
@@ -7,7 +7,7 @@ UStartSessionCallbackProxyAdvanced::UStartSessionCallbackProxyAdvanced(const FOb
|
|||||||
}
|
}
|
||||||
|
|
||||||
UStartSessionCallbackProxyAdvanced* UStartSessionCallbackProxyAdvanced::StartAdvancedSession(
|
UStartSessionCallbackProxyAdvanced* UStartSessionCallbackProxyAdvanced::StartAdvancedSession(
|
||||||
const UObject* WorldContextObject)
|
UObject* WorldContextObject)
|
||||||
{
|
{
|
||||||
UStartSessionCallbackProxyAdvanced* Proxy = NewObject<UStartSessionCallbackProxyAdvanced>();
|
UStartSessionCallbackProxyAdvanced* Proxy = NewObject<UStartSessionCallbackProxyAdvanced>();
|
||||||
Proxy->WorldContextObject = WorldContextObject;
|
Proxy->WorldContextObject = WorldContextObject;
|
||||||
@@ -16,9 +16,7 @@ UStartSessionCallbackProxyAdvanced* UStartSessionCallbackProxyAdvanced::StartAdv
|
|||||||
|
|
||||||
void UStartSessionCallbackProxyAdvanced::Activate()
|
void UStartSessionCallbackProxyAdvanced::Activate()
|
||||||
{
|
{
|
||||||
const FOnlineSubsystemBPCallHelperAdvanced Helper(
|
const FOnlineSubsystemBPCallHelperAdvanced Helper(TEXT("StartSession"), GEngine->GetWorldFromContextObject(WorldContextObject.Get(), EGetWorldErrorMode::LogAndReturnNull));
|
||||||
TEXT("StartSession"),
|
|
||||||
GEngine->GetWorldFromContextObject(WorldContextObject, EGetWorldErrorMode::LogAndReturnNull));
|
|
||||||
|
|
||||||
if (Helper.OnlineSub != nullptr)
|
if (Helper.OnlineSub != nullptr)
|
||||||
{
|
{
|
||||||
@@ -38,13 +36,11 @@ void UStartSessionCallbackProxyAdvanced::Activate()
|
|||||||
|
|
||||||
void UStartSessionCallbackProxyAdvanced::OnStartCompleted(FName SessionName, bool bWasSuccessful)
|
void UStartSessionCallbackProxyAdvanced::OnStartCompleted(FName SessionName, bool bWasSuccessful)
|
||||||
{
|
{
|
||||||
const FOnlineSubsystemBPCallHelperAdvanced Helper(
|
FOnlineSubsystemBPCallHelperAdvanced Helper(TEXT("StartSessionCallback"), GEngine->GetWorldFromContextObject(WorldContextObject.Get(), EGetWorldErrorMode::LogAndReturnNull));
|
||||||
TEXT("StartSessionCallback"),
|
|
||||||
GEngine->GetWorldFromContextObject(WorldContextObject, EGetWorldErrorMode::LogAndReturnNull));
|
|
||||||
|
|
||||||
if (Helper.OnlineSub != nullptr)
|
if (Helper.OnlineSub != nullptr)
|
||||||
{
|
{
|
||||||
const auto Sessions = Helper.OnlineSub->GetSessionInterface();
|
auto Sessions = Helper.OnlineSub->GetSessionInterface();
|
||||||
if (Sessions.IsValid())
|
if (Sessions.IsValid())
|
||||||
{
|
{
|
||||||
Sessions->ClearOnStartSessionCompleteDelegate_Handle(StartCompleteDelegateHandle);
|
Sessions->ClearOnStartSessionCompleteDelegate_Handle(StartCompleteDelegateHandle);
|
||||||
|
@@ -30,7 +30,7 @@ UUpdateSessionCallbackProxyAdvanced* UUpdateSessionCallbackProxyAdvanced::Update
|
|||||||
|
|
||||||
void UUpdateSessionCallbackProxyAdvanced::Activate()
|
void UUpdateSessionCallbackProxyAdvanced::Activate()
|
||||||
{
|
{
|
||||||
const FOnlineSubsystemBPCallHelperAdvanced Helper(TEXT("UpdateSession"), GEngine->GetWorldFromContextObject(WorldContextObject, EGetWorldErrorMode::LogAndReturnNull));
|
const FOnlineSubsystemBPCallHelperAdvanced Helper(TEXT("UpdateSession"), GEngine->GetWorldFromContextObject(WorldContextObject.Get(), EGetWorldErrorMode::LogAndReturnNull));
|
||||||
|
|
||||||
if (Helper.OnlineSub != nullptr)
|
if (Helper.OnlineSub != nullptr)
|
||||||
{
|
{
|
||||||
@@ -105,7 +105,7 @@ void UUpdateSessionCallbackProxyAdvanced::Activate()
|
|||||||
|
|
||||||
void UUpdateSessionCallbackProxyAdvanced::OnUpdateCompleted(FName SessionName, bool bWasSuccessful)
|
void UUpdateSessionCallbackProxyAdvanced::OnUpdateCompleted(FName SessionName, bool bWasSuccessful)
|
||||||
{
|
{
|
||||||
const FOnlineSubsystemBPCallHelperAdvanced Helper(TEXT("UpdateSessionCallback"), GEngine->GetWorldFromContextObject(WorldContextObject, EGetWorldErrorMode::LogAndReturnNull));
|
const FOnlineSubsystemBPCallHelperAdvanced Helper(TEXT("UpdateSessionCallback"), GEngine->GetWorldFromContextObject(WorldContextObject.Get(), EGetWorldErrorMode::LogAndReturnNull));
|
||||||
|
|
||||||
if (Helper.OnlineSub != nullptr)
|
if (Helper.OnlineSub != nullptr)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user