mirror of
https://github.com/mordentral/AdvancedSessionsPlugin.git
synced 2025-10-22 07:54:25 +00:00
initial refactor of latent nodes
This commit is contained in:
@@ -51,5 +51,5 @@ private:
|
||||
FDelegateHandle DelegateHandle;
|
||||
|
||||
// The world context object in which this call is taking place
|
||||
UObject* WorldContextObject;
|
||||
TWeakObjectPtr<UObject> WorldContextObject;
|
||||
};
|
||||
|
@@ -42,5 +42,5 @@ private:
|
||||
FDelegateHandle DelegateHandle;
|
||||
|
||||
// The world context object in which this call is taking place
|
||||
UObject* WorldContextObject;
|
||||
TWeakObjectPtr<UObject> WorldContextObject;
|
||||
};
|
||||
|
@@ -102,6 +102,6 @@ private:
|
||||
TArray<FSessionPropertyKeyPair> ExtraSettings;
|
||||
|
||||
// The world context object in which this call is taking place
|
||||
UObject* WorldContextObject;
|
||||
TWeakObjectPtr<UObject> WorldContextObject;
|
||||
};
|
||||
|
||||
|
@@ -45,5 +45,5 @@ private:
|
||||
FDelegateHandle DelegateHandle;
|
||||
|
||||
// The world context object in which this call is taking place
|
||||
UObject* WorldContextObject;
|
||||
TWeakObjectPtr<UObject> WorldContextObject;
|
||||
};
|
||||
|
@@ -46,6 +46,6 @@ private:
|
||||
FDelegateHandle FindFriendSessionCompleteDelegateHandle;
|
||||
|
||||
// The world context object in which this call is taking place
|
||||
UObject* WorldContextObject;
|
||||
TWeakObjectPtr<UObject> WorldContextObject;
|
||||
};
|
||||
|
||||
|
@@ -105,5 +105,5 @@ private:
|
||||
int MinSlotsAvailable;
|
||||
|
||||
// The world context object in which this call is taking place
|
||||
UObject* WorldContextObject;
|
||||
TWeakObjectPtr<UObject> WorldContextObject;
|
||||
};
|
||||
|
@@ -44,6 +44,6 @@ private:
|
||||
//EBPFriendsLists FriendListToGet;
|
||||
|
||||
// The world context object in which this call is taking place
|
||||
UObject* WorldContextObject;
|
||||
TWeakObjectPtr<UObject> WorldContextObject;
|
||||
};
|
||||
|
||||
|
@@ -44,6 +44,6 @@ private:
|
||||
FOnQueryRecentPlayersCompleteDelegate QueryRecentPlayersCompleteDelegate;
|
||||
|
||||
// The world context object in which this call is taking place
|
||||
UObject* WorldContextObject;
|
||||
TWeakObjectPtr<UObject> WorldContextObject;
|
||||
};
|
||||
|
||||
|
@@ -41,5 +41,5 @@ private:
|
||||
EBPUserPrivileges UserPrivilege;
|
||||
|
||||
// The world context object in which this call is taking place
|
||||
UObject* WorldContextObject;
|
||||
TWeakObjectPtr<UObject> WorldContextObject;
|
||||
};
|
||||
|
@@ -51,5 +51,5 @@ private:
|
||||
FDelegateHandle DelegateHandle;
|
||||
|
||||
// The world context object in which this call is taking place
|
||||
UObject* WorldContextObject;
|
||||
TWeakObjectPtr<UObject> WorldContextObject;
|
||||
};
|
||||
|
@@ -43,5 +43,5 @@ private:
|
||||
FDelegateHandle DelegateHandle;
|
||||
|
||||
// The world context object in which this call is taking place
|
||||
UObject* WorldContextObject;
|
||||
TWeakObjectPtr<UObject> WorldContextObject;
|
||||
};
|
||||
|
@@ -44,6 +44,6 @@ private:
|
||||
FOnSendInviteComplete OnSendInviteCompleteDelegate;
|
||||
|
||||
// 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")
|
||||
, Category = "Online|AdvancedSessions"
|
||||
)
|
||||
static UStartSessionCallbackProxyAdvanced* StartAdvancedSession(const UObject* WorldContextObject);
|
||||
static UStartSessionCallbackProxyAdvanced* StartAdvancedSession(UObject* WorldContextObject);
|
||||
|
||||
// UOnlineBlueprintCallProxyBase interface
|
||||
virtual void Activate() override;
|
||||
@@ -42,5 +42,5 @@ private:
|
||||
FDelegateHandle StartCompleteDelegateHandle;
|
||||
|
||||
// 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;
|
||||
|
||||
// The world context object in which this call is taking place
|
||||
UObject* WorldContextObject;
|
||||
TWeakObjectPtr<UObject> WorldContextObject;
|
||||
};
|
||||
|
||||
|
@@ -24,13 +24,19 @@ UAutoLoginUserCallbackProxy* UAutoLoginUserCallbackProxy::AutoLoginUser(UObject*
|
||||
|
||||
void UAutoLoginUserCallbackProxy::Activate()
|
||||
{
|
||||
auto Identity = Online::GetIdentityInterface();
|
||||
|
||||
if (Identity.IsValid())
|
||||
FOnlineSubsystemBPCallHelperAdvanced Helper(TEXT("AutoLoginUser"), GEngine->GetWorldFromContextObject(WorldContextObject.Get(), EGetWorldErrorMode::LogAndReturnNull));
|
||||
|
||||
if (Helper.OnlineSub != nullptr)
|
||||
{
|
||||
DelegateHandle = Identity->AddOnLoginCompleteDelegate_Handle(LocalUserNumber, Delegate);
|
||||
Identity->AutoLogin(LocalUserNumber);
|
||||
return;
|
||||
auto Identity = Helper.OnlineSub->GetIdentityInterface();
|
||||
|
||||
if (Identity.IsValid())
|
||||
{
|
||||
DelegateHandle = Identity->AddOnLoginCompleteDelegate_Handle(LocalUserNumber, Delegate);
|
||||
Identity->AutoLogin(LocalUserNumber);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// Fail immediately
|
||||
@@ -39,38 +45,45 @@ void UAutoLoginUserCallbackProxy::Activate()
|
||||
|
||||
void UAutoLoginUserCallbackProxy::OnCompleted(int32 LocalUserNum, bool bWasSuccessful, const FUniqueNetId& UserId, const FString& ErrorVal)
|
||||
{
|
||||
auto Identity = Online::GetIdentityInterface();
|
||||
|
||||
if (Identity.IsValid())
|
||||
FOnlineSubsystemBPCallHelperAdvanced Helper(TEXT("AutoLoginUser"), GEngine->GetWorldFromContextObject(WorldContextObject.Get(), EGetWorldErrorMode::LogAndReturnNull));
|
||||
|
||||
if (Helper.OnlineSub != nullptr)
|
||||
{
|
||||
Identity->ClearOnLoginCompleteDelegate_Handle(LocalUserNum, DelegateHandle);
|
||||
}
|
||||
auto Identity = Helper.OnlineSub->GetIdentityInterface();
|
||||
|
||||
if(APlayerController* PController = UGameplayStatics::GetPlayerController(WorldContextObject->GetWorld(), LocalUserNum))
|
||||
{
|
||||
ULocalPlayer* Player = Cast<ULocalPlayer>(PController->Player);
|
||||
|
||||
FUniqueNetIdRepl uniqueId(UserId.AsShared());
|
||||
|
||||
if (Player)
|
||||
if (Identity.IsValid())
|
||||
{
|
||||
Player->SetCachedUniqueNetId(uniqueId);
|
||||
Identity->ClearOnLoginCompleteDelegate_Handle(LocalUserNum, DelegateHandle);
|
||||
}
|
||||
|
||||
if (APlayerState* State = PController->PlayerState)
|
||||
if (APlayerController* PController = UGameplayStatics::GetPlayerController(WorldContextObject->GetWorld(), LocalUserNum))
|
||||
{
|
||||
// Update UniqueId. See also ShowLoginUICallbackProxy.cpp
|
||||
State->SetUniqueId(uniqueId);
|
||||
ULocalPlayer* Player = Cast<ULocalPlayer>(PController->Player);
|
||||
|
||||
FUniqueNetIdRepl uniqueId(UserId.AsShared());
|
||||
|
||||
if (Player)
|
||||
{
|
||||
Player->SetCachedUniqueNetId(uniqueId);
|
||||
}
|
||||
|
||||
if (APlayerState* State = PController->PlayerState)
|
||||
{
|
||||
// Update UniqueId. See also ShowLoginUICallbackProxy.cpp
|
||||
State->SetUniqueId(uniqueId);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (bWasSuccessful)
|
||||
{
|
||||
OnSuccess.Broadcast();
|
||||
}
|
||||
else
|
||||
{
|
||||
OnFailure.Broadcast();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (bWasSuccessful)
|
||||
{
|
||||
OnSuccess.Broadcast();
|
||||
}
|
||||
else
|
||||
{
|
||||
OnFailure.Broadcast();
|
||||
}
|
||||
OnFailure.Broadcast();
|
||||
}
|
||||
|
@@ -21,7 +21,7 @@ UCancelFindSessionsCallbackProxy* UCancelFindSessionsCallbackProxy::CancelFindSe
|
||||
|
||||
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());
|
||||
|
||||
if (Helper.IsValid())
|
||||
@@ -47,7 +47,7 @@ void UCancelFindSessionsCallbackProxy::Activate()
|
||||
|
||||
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());
|
||||
|
||||
if (Helper.IsValid())
|
||||
|
@@ -38,7 +38,7 @@ UCreateSessionCallbackProxyAdvanced* UCreateSessionCallbackProxyAdvanced::Create
|
||||
|
||||
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() )
|
||||
Helper.QueryIDFromPlayerController(PlayerControllerWeakPtr.Get());
|
||||
@@ -121,7 +121,7 @@ void UCreateSessionCallbackProxyAdvanced::Activate()
|
||||
|
||||
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());
|
||||
|
||||
if (Helper.OnlineSub != nullptr)
|
||||
@@ -159,7 +159,7 @@ void UCreateSessionCallbackProxyAdvanced::OnCreateCompleted(FName SessionName, b
|
||||
|
||||
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());
|
||||
|
||||
if (Helper.OnlineSub != nullptr)
|
||||
|
@@ -21,7 +21,7 @@ UEndSessionCallbackProxy* UEndSessionCallbackProxy::EndSession(UObject* WorldCon
|
||||
|
||||
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());
|
||||
|
||||
if (Helper.IsValid())
|
||||
@@ -55,7 +55,7 @@ void UEndSessionCallbackProxy::Activate()
|
||||
|
||||
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());
|
||||
|
||||
if (Helper.IsValid())
|
||||
|
@@ -41,7 +41,18 @@ void UFindFriendSessionCallbackProxy::Activate()
|
||||
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())
|
||||
{
|
||||
@@ -71,31 +82,43 @@ void UFindFriendSessionCallbackProxy::Activate()
|
||||
|
||||
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 (Sessions.IsValid())
|
||||
Sessions->ClearOnFindFriendSessionCompleteDelegate_Handle(LocalPlayer, FindFriendSessionCompleteDelegateHandle);
|
||||
if (Helper.IsValid())
|
||||
{
|
||||
IOnlineSessionPtr Sessions = Helper.OnlineSub->GetSessionInterface();
|
||||
|
||||
if ( bWasSuccessful )
|
||||
{
|
||||
TArray<FBlueprintSessionResult> Result;
|
||||
if (Sessions.IsValid())
|
||||
Sessions->ClearOnFindFriendSessionCompleteDelegate_Handle(LocalPlayer, FindFriendSessionCompleteDelegateHandle);
|
||||
|
||||
for (auto& Sesh : SessionInfo)
|
||||
if (bWasSuccessful)
|
||||
{
|
||||
if (Sesh.IsValid())
|
||||
TArray<FBlueprintSessionResult> Result;
|
||||
|
||||
for (auto& Sesh : SessionInfo)
|
||||
{
|
||||
FBlueprintSessionResult BSesh;
|
||||
BSesh.OnlineResult = Sesh;
|
||||
Result.Add(BSesh);
|
||||
if (Sesh.IsValid())
|
||||
{
|
||||
FBlueprintSessionResult BSesh;
|
||||
BSesh.OnlineResult = Sesh;
|
||||
Result.Add(BSesh);
|
||||
}
|
||||
}
|
||||
|
||||
if (Result.Num() > 0)
|
||||
OnSuccess.Broadcast(Result);
|
||||
else
|
||||
{
|
||||
UE_LOG(AdvancedFindFriendSessionLog, Warning, TEXT("FindFriendSession Failed, returned an invalid session."));
|
||||
OnFailure.Broadcast(Result);
|
||||
}
|
||||
}
|
||||
|
||||
if(Result.Num() > 0)
|
||||
OnSuccess.Broadcast(Result);
|
||||
else
|
||||
{
|
||||
UE_LOG(AdvancedFindFriendSessionLog, Warning, TEXT("FindFriendSession Failed, returned an invalid session."));
|
||||
OnFailure.Broadcast(Result);
|
||||
UE_LOG(AdvancedFindFriendSessionLog, Warning, TEXT("FindFriendSession Failed"));
|
||||
TArray<FBlueprintSessionResult> EmptyResult;
|
||||
OnFailure.Broadcast(EmptyResult);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@@ -35,7 +35,7 @@ UFindSessionsCallbackProxyAdvanced* UFindSessionsCallbackProxyAdvanced::FindSess
|
||||
|
||||
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());
|
||||
|
||||
if (Helper.IsValid())
|
||||
@@ -172,9 +172,16 @@ void UFindSessionsCallbackProxyAdvanced::Activate()
|
||||
|
||||
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());
|
||||
|
||||
if (!Helper.IsValid())
|
||||
{
|
||||
// Fail immediately
|
||||
OnFailure.Broadcast(SessionSearchResults);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!bRunSecondSearch && Helper.IsValid())
|
||||
{
|
||||
auto Sessions = Helper.OnlineSub->GetSessionInterface();
|
||||
|
@@ -2,6 +2,7 @@
|
||||
#include "GetFriendsCallbackProxy.h"
|
||||
|
||||
#include "Online.h"
|
||||
#include "Interfaces/OnlineFriendsInterface.h"
|
||||
#include "Interfaces/OnlinePresenceInterface.h"
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
@@ -33,18 +34,23 @@ void UGetFriendsCallbackProxy::Activate()
|
||||
return;
|
||||
}
|
||||
|
||||
IOnlineFriendsPtr Friends = Online::GetFriendsInterface();
|
||||
if (Friends.IsValid())
|
||||
{
|
||||
ULocalPlayer* Player = Cast<ULocalPlayer>(PlayerControllerWeakPtr->Player);
|
||||
FOnlineSubsystemBPCallHelperAdvanced Helper(TEXT("GetFriends"), GEngine->GetWorldFromContextObject(WorldContextObject.Get(), EGetWorldErrorMode::LogAndReturnNull));
|
||||
Helper.QueryIDFromPlayerController(PlayerControllerWeakPtr.Get());
|
||||
|
||||
Friends->ReadFriendsList(Player->GetControllerId(), EFriendsLists::ToString((EFriendsLists::Default)), FriendListReadCompleteDelegate);
|
||||
return;
|
||||
if (Helper.IsValid())
|
||||
{
|
||||
IOnlineFriendsPtr Friends = Helper.OnlineSub->GetFriendsInterface();
|
||||
if (Friends.IsValid())
|
||||
{
|
||||
ULocalPlayer* Player = Cast<ULocalPlayer>(PlayerControllerWeakPtr->Player);
|
||||
|
||||
Friends->ReadFriendsList(Player->GetControllerId(), EFriendsLists::ToString((EFriendsLists::Default)), FriendListReadCompleteDelegate);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// Fail immediately
|
||||
TArray<FBPFriendInfo> EmptyArray;
|
||||
|
||||
OnFailure.Broadcast(EmptyArray);
|
||||
}
|
||||
|
||||
@@ -52,7 +58,17 @@ void UGetFriendsCallbackProxy::OnReadFriendsListCompleted(int32 LocalUserNum, bo
|
||||
{
|
||||
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())
|
||||
{
|
||||
// Not actually needed anymore, plus was not being validated and causing a crash
|
||||
|
@@ -32,7 +32,16 @@ void UGetRecentPlayersCallbackProxy::Activate()
|
||||
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())
|
||||
{
|
||||
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)
|
||||
{
|
||||
|
||||
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())
|
||||
Friends->ClearOnQueryRecentPlayersCompleteDelegate_Handle(DelegateHandle);
|
||||
|
||||
|
@@ -23,7 +23,14 @@ UGetUserPrivilegeCallbackProxy* UGetUserPrivilegeCallbackProxy::GetUserPrivilege
|
||||
|
||||
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())
|
||||
{
|
||||
|
@@ -41,8 +41,15 @@ void ULoginUserCallbackProxy::Activate()
|
||||
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())
|
||||
{
|
||||
// Fallback to default AuthType if nothing is specified
|
||||
@@ -70,8 +77,15 @@ void ULoginUserCallbackProxy::OnCompleted(int32 LocalUserNum, bool bWasSuccessfu
|
||||
|
||||
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())
|
||||
{
|
||||
Identity->ClearOnLoginCompleteDelegate_Handle(Player->GetControllerId(), DelegateHandle);
|
||||
|
@@ -30,7 +30,6 @@ void ULogoutUserCallbackProxy::Activate()
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
ULocalPlayer* Player = Cast<ULocalPlayer>(PlayerControllerWeakPtr->Player);
|
||||
|
||||
if (!Player)
|
||||
@@ -39,7 +38,14 @@ void ULogoutUserCallbackProxy::Activate()
|
||||
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())
|
||||
{
|
||||
@@ -61,7 +67,14 @@ void ULogoutUserCallbackProxy::OnCompleted(int LocalUserNum, bool bWasSuccessful
|
||||
|
||||
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())
|
||||
{
|
||||
|
@@ -40,7 +40,15 @@ void USendFriendInviteCallbackProxy::Activate()
|
||||
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())
|
||||
{
|
||||
ULocalPlayer* Player = Cast<ULocalPlayer>(PlayerControllerWeakPtr->Player);
|
||||
|
@@ -7,7 +7,7 @@ UStartSessionCallbackProxyAdvanced::UStartSessionCallbackProxyAdvanced(const FOb
|
||||
}
|
||||
|
||||
UStartSessionCallbackProxyAdvanced* UStartSessionCallbackProxyAdvanced::StartAdvancedSession(
|
||||
const UObject* WorldContextObject)
|
||||
UObject* WorldContextObject)
|
||||
{
|
||||
UStartSessionCallbackProxyAdvanced* Proxy = NewObject<UStartSessionCallbackProxyAdvanced>();
|
||||
Proxy->WorldContextObject = WorldContextObject;
|
||||
@@ -16,9 +16,7 @@ UStartSessionCallbackProxyAdvanced* UStartSessionCallbackProxyAdvanced::StartAdv
|
||||
|
||||
void UStartSessionCallbackProxyAdvanced::Activate()
|
||||
{
|
||||
const FOnlineSubsystemBPCallHelperAdvanced Helper(
|
||||
TEXT("StartSession"),
|
||||
GEngine->GetWorldFromContextObject(WorldContextObject, EGetWorldErrorMode::LogAndReturnNull));
|
||||
const FOnlineSubsystemBPCallHelperAdvanced Helper(TEXT("StartSession"), GEngine->GetWorldFromContextObject(WorldContextObject.Get(), EGetWorldErrorMode::LogAndReturnNull));
|
||||
|
||||
if (Helper.OnlineSub != nullptr)
|
||||
{
|
||||
@@ -38,13 +36,11 @@ void UStartSessionCallbackProxyAdvanced::Activate()
|
||||
|
||||
void UStartSessionCallbackProxyAdvanced::OnStartCompleted(FName SessionName, bool bWasSuccessful)
|
||||
{
|
||||
const FOnlineSubsystemBPCallHelperAdvanced Helper(
|
||||
TEXT("StartSessionCallback"),
|
||||
GEngine->GetWorldFromContextObject(WorldContextObject, EGetWorldErrorMode::LogAndReturnNull));
|
||||
FOnlineSubsystemBPCallHelperAdvanced Helper(TEXT("StartSessionCallback"), GEngine->GetWorldFromContextObject(WorldContextObject.Get(), EGetWorldErrorMode::LogAndReturnNull));
|
||||
|
||||
if (Helper.OnlineSub != nullptr)
|
||||
{
|
||||
const auto Sessions = Helper.OnlineSub->GetSessionInterface();
|
||||
auto Sessions = Helper.OnlineSub->GetSessionInterface();
|
||||
if (Sessions.IsValid())
|
||||
{
|
||||
Sessions->ClearOnStartSessionCompleteDelegate_Handle(StartCompleteDelegateHandle);
|
||||
|
@@ -30,7 +30,7 @@ UUpdateSessionCallbackProxyAdvanced* UUpdateSessionCallbackProxyAdvanced::Update
|
||||
|
||||
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)
|
||||
{
|
||||
@@ -105,7 +105,7 @@ void UUpdateSessionCallbackProxyAdvanced::Activate()
|
||||
|
||||
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)
|
||||
{
|
||||
|
Reference in New Issue
Block a user