mirror of
https://github.com/mordentral/AdvancedSessionsPlugin.git
synced 2025-12-10 08:03:14 +00:00
dsfsdfs
This commit is contained in:
56
Source/AdvancedSessions/Classes/AdvancedExternalUILibrary.h
Normal file
56
Source/AdvancedSessions/Classes/AdvancedExternalUILibrary.h
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
// Fill out your copyright notice in the Description page of Project Settings.
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
#include "OnlineSubSystemHeader.h"
|
||||||
|
#include "Kismet/BlueprintFunctionLibrary.h"
|
||||||
|
#include "Online.h"
|
||||||
|
#include "OnlineSubsystem.h"
|
||||||
|
#include "BlueprintDataDefinitions.h"
|
||||||
|
//#include "OnlineFriendsInterface.h"
|
||||||
|
//#include "OnlineUserInterface.h"
|
||||||
|
//#include "OnlineMessageInterface.h"
|
||||||
|
//#include "OnlinePresenceInterface.h"
|
||||||
|
//#include "Engine/GameInstance.h"
|
||||||
|
#include "OnlineSessionInterface.h"
|
||||||
|
|
||||||
|
//#include "UObjectIterator.h"
|
||||||
|
|
||||||
|
#include "AdvancedExternalUILibrary.generated.h"
|
||||||
|
|
||||||
|
|
||||||
|
//General Advanced Sessions Log
|
||||||
|
DECLARE_LOG_CATEGORY_EXTERN(AdvancedExternalUILog, Log, All);
|
||||||
|
|
||||||
|
UCLASS()
|
||||||
|
class UAdvancedExternalUILibrary : public UBlueprintFunctionLibrary
|
||||||
|
{
|
||||||
|
GENERATED_BODY()
|
||||||
|
public:
|
||||||
|
|
||||||
|
//********* External UI Functions *************//
|
||||||
|
|
||||||
|
// Show the UI that handles the Friends list
|
||||||
|
UFUNCTION(BlueprintCallable, Category = "Online|AdvancedExternalUI", meta = (ExpandEnumAsExecs = "Result"))
|
||||||
|
static void ShowFriendsUI(APlayerController *PlayerController, TEnumAsByte<EBlueprintResultSwitch::Type> &Result);
|
||||||
|
|
||||||
|
// Show the UI that handles inviting people to your game
|
||||||
|
UFUNCTION(BlueprintCallable, Category = "Online|AdvancedExternalUI", meta = (ExpandEnumAsExecs = "Result"))
|
||||||
|
static void ShowInviteUI(APlayerController *PlayerController, TEnumAsByte<EBlueprintResultSwitch::Type> &Result);
|
||||||
|
|
||||||
|
// Show the UI that shows the leaderboard (doesn't work with steam)
|
||||||
|
UFUNCTION(BlueprintCallable, Category = "Online|AdvancedExternalUI", meta = (ExpandEnumAsExecs = "Result"))
|
||||||
|
static void ShowLeaderBoardUI(FString LeaderboardName, TEnumAsByte<EBlueprintResultSwitch::Type> &Result);
|
||||||
|
|
||||||
|
// Show the UI that shows a web URL
|
||||||
|
UFUNCTION(BlueprintCallable, Category = "Online|AdvancedExternalUI", meta = (ExpandEnumAsExecs = "Result"))
|
||||||
|
static void ShowWebURLUI(FString URLToShow, TEnumAsByte<EBlueprintResultSwitch::Type> &Result);
|
||||||
|
|
||||||
|
// Show the UI that shows the profile of a uniquenetid
|
||||||
|
UFUNCTION(BlueprintCallable, Category = "Online|AdvancedExternalUI", meta = (ExpandEnumAsExecs = "Result"))
|
||||||
|
static void ShowProfileUI(const FBPUniqueNetId PlayerViewingProfile, const FBPUniqueNetId PlayerToViewProfileOf, TEnumAsByte<EBlueprintResultSwitch::Type> &Result);
|
||||||
|
|
||||||
|
// Show the UI that shows the account upgrade UI (doesn't work with steam)
|
||||||
|
UFUNCTION(BlueprintCallable, Category = "Online|AdvancedExternalUI", meta = (ExpandEnumAsExecs = "Result"))
|
||||||
|
static void ShowAccountUpgradeUI(const FBPUniqueNetId PlayerRequestingAccountUpgradeUI, TEnumAsByte<EBlueprintResultSwitch::Type> &Result);
|
||||||
|
|
||||||
|
};
|
||||||
@@ -20,7 +20,7 @@ class UCreateSessionCallbackProxyAdvanced : public UOnlineBlueprintCallProxyBase
|
|||||||
|
|
||||||
// Creates a session with the default online subsystem with advanced optional inputs
|
// Creates a session with the default online subsystem with advanced optional inputs
|
||||||
UFUNCTION(BlueprintCallable, meta=(BlueprintInternalUseOnly = "true", WorldContext="WorldContextObject",AutoCreateRefTerm="ExtraSettings"), Category = "Online|AdvancedSessions")
|
UFUNCTION(BlueprintCallable, meta=(BlueprintInternalUseOnly = "true", WorldContext="WorldContextObject",AutoCreateRefTerm="ExtraSettings"), Category = "Online|AdvancedSessions")
|
||||||
static UCreateSessionCallbackProxyAdvanced* CreateAdvancedSession(UObject* WorldContextObject, const TArray<FSessionPropertyKeyPair> &ExtraSettings, class APlayerController* PlayerController = NULL, int32 PublicConnections = 100, bool bUseLAN = false, bool bAllowInvites = true, bool bIsDedicatedServer = false, bool bUsePresence = true, bool bAllowJoinViaPresence = true, bool bAllowJoinViaPresenceFriendsOnly = false, bool bAntiCheatProtected = false, bool bUsesStats = false, bool bShouldAdvertise = true);
|
static UCreateSessionCallbackProxyAdvanced* CreateAdvancedSession(UObject* WorldContextObject, const TArray<FSessionPropertyKeyPair> &ExtraSettings, class APlayerController* PlayerController = NULL, int32 PublicConnections = 100, int32 PrivateConnections = 0, bool bUseLAN = false, bool bAllowInvites = true, bool bIsDedicatedServer = false, bool bUsePresence = true, bool bAllowJoinViaPresence = true, bool bAllowJoinViaPresenceFriendsOnly = false, bool bAntiCheatProtected = false, bool bUsesStats = false, bool bShouldAdvertise = true);
|
||||||
|
|
||||||
// UOnlineBlueprintCallProxyBase interface
|
// UOnlineBlueprintCallProxyBase interface
|
||||||
virtual void Activate() override;
|
virtual void Activate() override;
|
||||||
@@ -49,6 +49,9 @@ private:
|
|||||||
// Number of public connections
|
// Number of public connections
|
||||||
int NumPublicConnections;
|
int NumPublicConnections;
|
||||||
|
|
||||||
|
// Number of private connections
|
||||||
|
int NumPrivateConnections;
|
||||||
|
|
||||||
// Whether or not to search LAN
|
// Whether or not to search LAN
|
||||||
bool bUseLAN;
|
bool bUseLAN;
|
||||||
|
|
||||||
|
|||||||
@@ -18,9 +18,9 @@ class UUpdateSessionCallbackProxyAdvanced : public UOnlineBlueprintCallProxyBase
|
|||||||
UPROPERTY(BlueprintAssignable)
|
UPROPERTY(BlueprintAssignable)
|
||||||
FEmptyOnlineDelegate OnFailure;
|
FEmptyOnlineDelegate OnFailure;
|
||||||
|
|
||||||
// Creates a session with the default online subsystem with advanced optional inputs
|
// Creates a session with the default online subsystem with advanced optional inputs, you MUST fill in all categories or it will pass in values that you didn't want as default values
|
||||||
UFUNCTION(BlueprintCallable, meta=(BlueprintInternalUseOnly = "true", WorldContext="WorldContextObject",AutoCreateRefTerm="ExtraSettings"), Category = "Online|AdvancedSessions")
|
UFUNCTION(BlueprintCallable, meta=(BlueprintInternalUseOnly = "true", WorldContext="WorldContextObject",AutoCreateRefTerm="ExtraSettings"), Category = "Online|AdvancedSessions")
|
||||||
static UUpdateSessionCallbackProxyAdvanced* UpdateSession(UObject* WorldContextObject, int32 PublicConnections, bool bUseLAN, bool bAllowInvites, bool bAllowJoinInProgress, const TArray<FSessionPropertyKeyPair> &ExtraSettings, bool bRefreshOnlineData = true, bool bIsDedicatedServer = false);
|
static UUpdateSessionCallbackProxyAdvanced* UpdateSession(UObject* WorldContextObject, const TArray<FSessionPropertyKeyPair> &ExtraSettings, int32 PublicConnections = 100, int32 PrivateConnections = 0, bool bUseLAN = false, bool bAllowInvites = false, bool bAllowJoinInProgress = false, bool bRefreshOnlineData = true, bool bIsDedicatedServer = false);
|
||||||
|
|
||||||
// UOnlineBlueprintCallProxyBase interface
|
// UOnlineBlueprintCallProxyBase interface
|
||||||
virtual void Activate() override;
|
virtual void Activate() override;
|
||||||
@@ -39,6 +39,9 @@ private:
|
|||||||
// Number of public connections
|
// Number of public connections
|
||||||
int NumPublicConnections;
|
int NumPublicConnections;
|
||||||
|
|
||||||
|
// Number of private connections
|
||||||
|
int NumPrivateConnections;
|
||||||
|
|
||||||
// Whether or not to search LAN
|
// Whether or not to search LAN
|
||||||
bool bUseLAN;
|
bool bUseLAN;
|
||||||
|
|
||||||
|
|||||||
133
Source/AdvancedSessions/Private/AdvancedExternalUILibrary.cpp
Normal file
133
Source/AdvancedSessions/Private/AdvancedExternalUILibrary.cpp
Normal file
@@ -0,0 +1,133 @@
|
|||||||
|
// Fill out your copyright notice in the Description page of Project Settings.
|
||||||
|
#include "OnlineSubSystemHeader.h"
|
||||||
|
#include "AdvancedExternalUILibrary.h"
|
||||||
|
|
||||||
|
//General Log
|
||||||
|
DEFINE_LOG_CATEGORY(AdvancedExternalUILog);
|
||||||
|
|
||||||
|
void UAdvancedExternalUILibrary::ShowAccountUpgradeUI(const FBPUniqueNetId PlayerRequestingAccountUpgradeUI, TEnumAsByte<EBlueprintResultSwitch::Type> &Result)
|
||||||
|
{
|
||||||
|
IOnlineExternalUIPtr ExternalUIInterface = Online::GetExternalUIInterface();
|
||||||
|
|
||||||
|
if (!ExternalUIInterface.IsValid())
|
||||||
|
{
|
||||||
|
UE_LOG(AdvancedExternalUILog, Warning, TEXT("ShowAccountUpgradeUI Failed to get External UI interface!"));
|
||||||
|
Result = EBlueprintResultSwitch::Type::OnFailure;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ExternalUIInterface->ShowAccountUpgradeUI(*PlayerRequestingAccountUpgradeUI.GetUniqueNetId());
|
||||||
|
Result = EBlueprintResultSwitch::Type::OnSuccess;
|
||||||
|
}
|
||||||
|
|
||||||
|
void UAdvancedExternalUILibrary::ShowProfileUI(const FBPUniqueNetId PlayerViewingProfile, const FBPUniqueNetId PlayerToViewProfileOf, TEnumAsByte<EBlueprintResultSwitch::Type> &Result)
|
||||||
|
{
|
||||||
|
|
||||||
|
IOnlineExternalUIPtr ExternalUIInterface = Online::GetExternalUIInterface();
|
||||||
|
|
||||||
|
if (!ExternalUIInterface.IsValid())
|
||||||
|
{
|
||||||
|
UE_LOG(AdvancedExternalUILog, Warning, TEXT("ShowProfileUI Failed to get External UI interface!"));
|
||||||
|
Result = EBlueprintResultSwitch::Type::OnFailure;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ExternalUIInterface->ShowProfileUI(*PlayerViewingProfile.GetUniqueNetId(), *PlayerToViewProfileOf.GetUniqueNetId(), NULL);
|
||||||
|
Result = EBlueprintResultSwitch::Type::OnSuccess;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void UAdvancedExternalUILibrary::ShowWebURLUI(FString URLToShow, TEnumAsByte<EBlueprintResultSwitch::Type> &Result)
|
||||||
|
{
|
||||||
|
IOnlineExternalUIPtr ExternalUIInterface = Online::GetExternalUIInterface();
|
||||||
|
|
||||||
|
if (!ExternalUIInterface.IsValid())
|
||||||
|
{
|
||||||
|
UE_LOG(AdvancedExternalUILog, Warning, TEXT("ShowWebURLUI Failed to get External UI interface!"));
|
||||||
|
Result = EBlueprintResultSwitch::Type::OnFailure;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ExternalUIInterface->ShowWebURL(URLToShow);
|
||||||
|
Result = EBlueprintResultSwitch::Type::OnSuccess;
|
||||||
|
}
|
||||||
|
|
||||||
|
void UAdvancedExternalUILibrary::ShowLeaderBoardUI(FString LeaderboardName, TEnumAsByte<EBlueprintResultSwitch::Type> &Result)
|
||||||
|
{
|
||||||
|
IOnlineExternalUIPtr ExternalUIInterface = Online::GetExternalUIInterface();
|
||||||
|
|
||||||
|
if (!ExternalUIInterface.IsValid())
|
||||||
|
{
|
||||||
|
UE_LOG(AdvancedExternalUILog, Warning, TEXT("ShowLeaderboardsUI Failed to get External UI interface!"));
|
||||||
|
Result = EBlueprintResultSwitch::Type::OnFailure;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ExternalUIInterface->ShowLeaderboardUI(LeaderboardName);
|
||||||
|
Result = EBlueprintResultSwitch::Type::OnSuccess;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void UAdvancedExternalUILibrary::ShowInviteUI(APlayerController *PlayerController, TEnumAsByte<EBlueprintResultSwitch::Type> &Result)
|
||||||
|
{
|
||||||
|
if (!PlayerController)
|
||||||
|
{
|
||||||
|
UE_LOG(AdvancedExternalUILog, Warning, TEXT("ShowInviteUI Had a bad Player Controller!"));
|
||||||
|
Result = EBlueprintResultSwitch::Type::OnFailure;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
IOnlineExternalUIPtr ExternalUIInterface = Online::GetExternalUIInterface();
|
||||||
|
|
||||||
|
if (!ExternalUIInterface.IsValid())
|
||||||
|
{
|
||||||
|
UE_LOG(AdvancedExternalUILog, Warning, TEXT("ShowInviteUI Failed to get External UI interface!"));
|
||||||
|
Result = EBlueprintResultSwitch::Type::OnFailure;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ULocalPlayer* Player = Cast<ULocalPlayer>(PlayerController->Player);
|
||||||
|
|
||||||
|
if (!Player)
|
||||||
|
{
|
||||||
|
UE_LOG(AdvancedExternalUILog, Warning, TEXT("ShowInviteUI Failed to get ULocalPlayer for the given PlayerController!"));
|
||||||
|
Result = EBlueprintResultSwitch::Type::OnFailure;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ExternalUIInterface->ShowInviteUI(Player->GetControllerId(), GameSessionName);
|
||||||
|
Result = EBlueprintResultSwitch::Type::OnSuccess;
|
||||||
|
}
|
||||||
|
|
||||||
|
void UAdvancedExternalUILibrary::ShowFriendsUI(APlayerController *PlayerController, TEnumAsByte<EBlueprintResultSwitch::Type> &Result)
|
||||||
|
{
|
||||||
|
if (!PlayerController)
|
||||||
|
{
|
||||||
|
UE_LOG(AdvancedExternalUILog, Warning, TEXT("ShowFriendsUI Had a bad Player Controller!"));
|
||||||
|
Result = EBlueprintResultSwitch::Type::OnFailure;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
IOnlineExternalUIPtr ExternalUIInterface = Online::GetExternalUIInterface();
|
||||||
|
|
||||||
|
if (!ExternalUIInterface.IsValid())
|
||||||
|
{
|
||||||
|
UE_LOG(AdvancedExternalUILog, Warning, TEXT("ShowFriendsUI Failed to get External UI interface!"));
|
||||||
|
Result = EBlueprintResultSwitch::Type::OnFailure;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ULocalPlayer* Player = Cast<ULocalPlayer>(PlayerController->Player);
|
||||||
|
|
||||||
|
if (!Player)
|
||||||
|
{
|
||||||
|
UE_LOG(AdvancedExternalUILog, Warning, TEXT("ShowFriendsUI Failed to get ULocalPlayer for the given PlayerController!"));
|
||||||
|
Result = EBlueprintResultSwitch::Type::OnFailure;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ExternalUIInterface->ShowFriendsUI(Player->GetControllerId());
|
||||||
|
Result = EBlueprintResultSwitch::Type::OnSuccess;
|
||||||
|
}
|
||||||
@@ -410,8 +410,17 @@ void UAdvancedFriendsLibrary::GetStoredFriendsList(APlayerController *PlayerCont
|
|||||||
|
|
||||||
BPF.OnlineState = ((EBPOnlinePresenceState::Type)((int32)Friend->GetPresence().Status.State));
|
BPF.OnlineState = ((EBPOnlinePresenceState::Type)((int32)Friend->GetPresence().Status.State));
|
||||||
BPF.DisplayName = Friend->GetDisplayName();
|
BPF.DisplayName = Friend->GetDisplayName();
|
||||||
BPF.RealName = Friend->GetRealName();
|
BPF.RealName = Friend->GetRealName();
|
||||||
BPF.UniqueNetId.SetUniqueNetId(Friend->GetUserId());
|
BPF.UniqueNetId.SetUniqueNetId(Friend->GetUserId());
|
||||||
|
BPF.bIsPlayingSameGame = Friend->GetPresence().bIsPlayingThisGame;
|
||||||
|
|
||||||
|
BPF.PresenceInfo.bIsOnline = Friend->GetPresence().bIsOnline;
|
||||||
|
BPF.PresenceInfo.bIsPlaying = Friend->GetPresence().bIsPlaying;
|
||||||
|
BPF.PresenceInfo.PresenceState = ((EBPOnlinePresenceState::Type)((int32)Friend->GetPresence().Status.State));
|
||||||
|
BPF.PresenceInfo.StatusString = Friend->GetPresence().Status.StatusStr;
|
||||||
|
BPF.PresenceInfo.bIsJoinable = Friend->GetPresence().bIsJoinable;
|
||||||
|
BPF.PresenceInfo.bIsPlayingThisGame = Friend->GetPresence().bIsPlayingThisGame;
|
||||||
|
|
||||||
FriendsList.Add(BPF);
|
FriendsList.Add(BPF);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -175,6 +175,32 @@ public:
|
|||||||
FString LastSeen;
|
FString LastSeen;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
USTRUCT(BlueprintType)
|
||||||
|
struct FBPFriendPresenceInfo
|
||||||
|
{
|
||||||
|
GENERATED_USTRUCT_BODY()
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Online|Friend")
|
||||||
|
bool bIsOnline;
|
||||||
|
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Online|Friend")
|
||||||
|
bool bIsPlaying;
|
||||||
|
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Online|Friend")
|
||||||
|
bool bIsPlayingThisGame;
|
||||||
|
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Online|Friend")
|
||||||
|
bool bIsJoinable;
|
||||||
|
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Online|Friend")
|
||||||
|
bool bHasVoiceSupport;
|
||||||
|
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Online|Friend")
|
||||||
|
TEnumAsByte<EBPOnlinePresenceState::Type> PresenceState;
|
||||||
|
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Online|Friend")
|
||||||
|
FString StatusString;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
USTRUCT(BlueprintType)
|
USTRUCT(BlueprintType)
|
||||||
struct FBPFriendInfo
|
struct FBPFriendInfo
|
||||||
{
|
{
|
||||||
@@ -192,6 +218,8 @@ public:
|
|||||||
FBPUniqueNetId UniqueNetId;
|
FBPUniqueNetId UniqueNetId;
|
||||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Online|Friend")
|
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Online|Friend")
|
||||||
bool bIsPlayingSameGame;
|
bool bIsPlayingSameGame;
|
||||||
|
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Online|Friend")
|
||||||
|
FBPFriendPresenceInfo PresenceInfo;
|
||||||
};
|
};
|
||||||
|
|
||||||
/** The types of comparison operations for a given search query */
|
/** The types of comparison operations for a given search query */
|
||||||
|
|||||||
@@ -13,11 +13,12 @@ UCreateSessionCallbackProxyAdvanced::UCreateSessionCallbackProxyAdvanced(const F
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
UCreateSessionCallbackProxyAdvanced* UCreateSessionCallbackProxyAdvanced::CreateAdvancedSession(UObject* WorldContextObject, const TArray<FSessionPropertyKeyPair> &ExtraSettings, class APlayerController* PlayerController, int32 PublicConnections, bool bUseLAN, bool bAllowInvites, bool bIsDedicatedServer, bool bUsePresence, bool bAllowJoinViaPresence, bool bAllowJoinViaPresenceFriendsOnly, bool bAntiCheatProtected, bool bUsesStats, bool bShouldAdvertise)
|
UCreateSessionCallbackProxyAdvanced* UCreateSessionCallbackProxyAdvanced::CreateAdvancedSession(UObject* WorldContextObject, const TArray<FSessionPropertyKeyPair> &ExtraSettings, class APlayerController* PlayerController, int32 PublicConnections, int32 PrivateConnections, bool bUseLAN, bool bAllowInvites, bool bIsDedicatedServer, bool bUsePresence, bool bAllowJoinViaPresence, bool bAllowJoinViaPresenceFriendsOnly, bool bAntiCheatProtected, bool bUsesStats, bool bShouldAdvertise)
|
||||||
{
|
{
|
||||||
UCreateSessionCallbackProxyAdvanced* Proxy = NewObject<UCreateSessionCallbackProxyAdvanced>();
|
UCreateSessionCallbackProxyAdvanced* Proxy = NewObject<UCreateSessionCallbackProxyAdvanced>();
|
||||||
Proxy->PlayerControllerWeakPtr = PlayerController;
|
Proxy->PlayerControllerWeakPtr = PlayerController;
|
||||||
Proxy->NumPublicConnections = PublicConnections;
|
Proxy->NumPublicConnections = PublicConnections;
|
||||||
|
Proxy->NumPrivateConnections = PrivateConnections;
|
||||||
Proxy->bUseLAN = bUseLAN;
|
Proxy->bUseLAN = bUseLAN;
|
||||||
Proxy->WorldContextObject = WorldContextObject;
|
Proxy->WorldContextObject = WorldContextObject;
|
||||||
Proxy->bAllowInvites = bAllowInvites;
|
Proxy->bAllowInvites = bAllowInvites;
|
||||||
@@ -48,6 +49,7 @@ void UCreateSessionCallbackProxyAdvanced::Activate()
|
|||||||
|
|
||||||
FOnlineSessionSettings Settings;
|
FOnlineSessionSettings Settings;
|
||||||
Settings.NumPublicConnections = NumPublicConnections;
|
Settings.NumPublicConnections = NumPublicConnections;
|
||||||
|
Settings.NumPrivateConnections = NumPrivateConnections;
|
||||||
Settings.bShouldAdvertise = true;
|
Settings.bShouldAdvertise = true;
|
||||||
Settings.bAllowJoinInProgress = true;
|
Settings.bAllowJoinInProgress = true;
|
||||||
Settings.bIsLANMatch = bUseLAN;
|
Settings.bIsLANMatch = bUseLAN;
|
||||||
|
|||||||
@@ -67,6 +67,15 @@ void UGetFriendsCallbackProxy::OnReadFriendsListCompleted(int32 LocalUserNum, bo
|
|||||||
BPF.DisplayName = Friend->GetDisplayName();
|
BPF.DisplayName = Friend->GetDisplayName();
|
||||||
BPF.RealName = Friend->GetRealName();
|
BPF.RealName = Friend->GetRealName();
|
||||||
BPF.UniqueNetId.SetUniqueNetId(Friend->GetUserId());
|
BPF.UniqueNetId.SetUniqueNetId(Friend->GetUserId());
|
||||||
|
BPF.bIsPlayingSameGame = Friend->GetPresence().bIsPlayingThisGame;
|
||||||
|
|
||||||
|
BPF.PresenceInfo.bIsOnline = Friend->GetPresence().bIsOnline;
|
||||||
|
BPF.PresenceInfo.bIsPlaying = Friend->GetPresence().bIsPlaying;
|
||||||
|
BPF.PresenceInfo.PresenceState = ((EBPOnlinePresenceState::Type)((int32)Friend->GetPresence().Status.State));
|
||||||
|
BPF.PresenceInfo.StatusString = Friend->GetPresence().Status.StatusStr;
|
||||||
|
BPF.PresenceInfo.bIsJoinable = Friend->GetPresence().bIsJoinable;
|
||||||
|
BPF.PresenceInfo.bIsPlayingThisGame = Friend->GetPresence().bIsPlayingThisGame;
|
||||||
|
|
||||||
FriendsListOut.Add(BPF);
|
FriendsListOut.Add(BPF);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -12,10 +12,11 @@ UUpdateSessionCallbackProxyAdvanced::UUpdateSessionCallbackProxyAdvanced(const F
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
UUpdateSessionCallbackProxyAdvanced* UUpdateSessionCallbackProxyAdvanced::UpdateSession(UObject* WorldContextObject, int32 PublicConnections, bool bUseLAN, bool bAllowInvites, bool bAllowJoinInProgress, const TArray<FSessionPropertyKeyPair> &ExtraSettings, bool bRefreshOnlineData, bool bIsDedicatedServer)
|
UUpdateSessionCallbackProxyAdvanced* UUpdateSessionCallbackProxyAdvanced::UpdateSession(UObject* WorldContextObject, const TArray<FSessionPropertyKeyPair> &ExtraSettings, int32 PublicConnections, int32 PrivateConnections, bool bUseLAN, bool bAllowInvites, bool bAllowJoinInProgress, bool bRefreshOnlineData, bool bIsDedicatedServer)
|
||||||
{
|
{
|
||||||
UUpdateSessionCallbackProxyAdvanced* Proxy = NewObject<UUpdateSessionCallbackProxyAdvanced>();
|
UUpdateSessionCallbackProxyAdvanced* Proxy = NewObject<UUpdateSessionCallbackProxyAdvanced>();
|
||||||
Proxy->NumPublicConnections = PublicConnections;
|
Proxy->NumPublicConnections = PublicConnections;
|
||||||
|
Proxy->NumPrivateConnections = PrivateConnections;
|
||||||
Proxy->bUseLAN = bUseLAN;
|
Proxy->bUseLAN = bUseLAN;
|
||||||
Proxy->WorldContextObject = WorldContextObject;
|
Proxy->WorldContextObject = WorldContextObject;
|
||||||
Proxy->bAllowInvites = bAllowInvites;
|
Proxy->bAllowInvites = bAllowInvites;
|
||||||
@@ -57,6 +58,7 @@ void UUpdateSessionCallbackProxyAdvanced::Activate()
|
|||||||
// FOnlineSessionSettings Settings;
|
// FOnlineSessionSettings Settings;
|
||||||
//Settings->BuildUniqueId = GetBuildUniqueId();
|
//Settings->BuildUniqueId = GetBuildUniqueId();
|
||||||
Settings->NumPublicConnections = NumPublicConnections;
|
Settings->NumPublicConnections = NumPublicConnections;
|
||||||
|
Settings->NumPrivateConnections = NumPrivateConnections;
|
||||||
//Settings->bShouldAdvertise = true;
|
//Settings->bShouldAdvertise = true;
|
||||||
Settings->bAllowJoinInProgress = bAllowJoinInProgress;
|
Settings->bAllowJoinInProgress = bAllowJoinInProgress;
|
||||||
Settings->bIsLANMatch = bUseLAN;
|
Settings->bIsLANMatch = bUseLAN;
|
||||||
|
|||||||
Reference in New Issue
Block a user