mirror of
https://github.com/mordentral/AdvancedSessionsPlugin.git
synced 2025-10-26 18:04:07 +00:00
Compare commits
1 Commits
4.18_Locke
...
4.16_Locke
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1c3e3b143b |
@@ -2,8 +2,8 @@
|
|||||||
"FileVersion" : 3,
|
"FileVersion" : 3,
|
||||||
|
|
||||||
"FriendlyName" : "Advanced Sessions",
|
"FriendlyName" : "Advanced Sessions",
|
||||||
"Version" : 4.17,
|
"Version" : 1.9,
|
||||||
"VersionName": "4.17",
|
"VersionName": "1.9",
|
||||||
"Description" : "Adds new blueprint functions to handle more advanced session operations.",
|
"Description" : "Adds new blueprint functions to handle more advanced session operations.",
|
||||||
"Category" : "Advanced Sessions Plugin",
|
"Category" : "Advanced Sessions Plugin",
|
||||||
"CreatedBy" : "Joshua Statzer",
|
"CreatedBy" : "Joshua Statzer",
|
||||||
@@ -16,15 +16,5 @@
|
|||||||
"Type" : "RunTime",
|
"Type" : "RunTime",
|
||||||
"LoadingPhase" : "PreDefault"
|
"LoadingPhase" : "PreDefault"
|
||||||
}
|
}
|
||||||
],
|
]
|
||||||
"Plugins": [
|
|
||||||
{
|
|
||||||
"Name": "OnlineSubsystem",
|
|
||||||
"Enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Name": "OnlineSubsystemUtils",
|
|
||||||
"Enabled": true
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
@@ -7,7 +7,7 @@ public class AdvancedSessions : ModuleRules
|
|||||||
{
|
{
|
||||||
PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
|
PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
|
||||||
//bEnforceIWYU = true;
|
//bEnforceIWYU = true;
|
||||||
|
|
||||||
Definitions.Add("WITH_ADVANCED_SESSIONS=1");
|
Definitions.Add("WITH_ADVANCED_SESSIONS=1");
|
||||||
|
|
||||||
PrivateIncludePaths.AddRange(new string[] { "AdvancedSessions/Private"/*, "OnlineSubsystemSteam/Private"*/ });
|
PrivateIncludePaths.AddRange(new string[] { "AdvancedSessions/Private"/*, "OnlineSubsystemSteam/Private"*/ });
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
#include "Engine/GameInstance.h"
|
#include "Engine/GameInstance.h"
|
||||||
#include "OnlineSessionInterface.h"
|
#include "OnlineSessionInterface.h"
|
||||||
|
|
||||||
//#include "UObjectIterator.h"
|
#include "UObjectIterator.h"
|
||||||
|
|
||||||
#include "AdvancedSessionsLibrary.generated.h"
|
#include "AdvancedSessionsLibrary.generated.h"
|
||||||
|
|
||||||
@@ -67,25 +67,6 @@ public:
|
|||||||
// Get the Unique Build ID from a session search result
|
// Get the Unique Build ID from a session search result
|
||||||
UFUNCTION(BlueprintPure, Category = "Online|AdvancedSessions|SessionInfo")
|
UFUNCTION(BlueprintPure, Category = "Online|AdvancedSessions|SessionInfo")
|
||||||
static void GetUniqueBuildID(FBlueprintSessionResult SessionResult, int32 &UniqueBuildId);
|
static void GetUniqueBuildID(FBlueprintSessionResult SessionResult, int32 &UniqueBuildId);
|
||||||
|
|
||||||
|
|
||||||
// Thanks CriErr for submission
|
|
||||||
|
|
||||||
|
|
||||||
// Get session property Key Name value
|
|
||||||
UFUNCTION(BlueprintCallable, Category = "Online|AdvancedSessions|SessionInfo")
|
|
||||||
static FName GetSessionPropertyKey(const FSessionPropertyKeyPair& SessionProperty);
|
|
||||||
|
|
||||||
// Find session property by Name
|
|
||||||
UFUNCTION(BlueprintCallable, Category = "Online|AdvancedSessions|SessionInfo", meta = (ExpandEnumAsExecs = "Result"))
|
|
||||||
static void FindSessionPropertyByName(const TArray<FSessionPropertyKeyPair>& ExtraSettings, FName SettingsName, EBlueprintResultSwitch &Result, FSessionPropertyKeyPair& OutProperty);
|
|
||||||
|
|
||||||
// Find session property index by Name
|
|
||||||
UFUNCTION(BlueprintCallable, Category = "Online|AdvancedSessions|SessionInfo", meta = (ExpandEnumAsExecs = "Result"))
|
|
||||||
static void FindSessionPropertyIndexByName(const TArray<FSessionPropertyKeyPair>& ExtraSettings, FName SettingName, EBlueprintResultSwitch &Result, int32& OutIndex);
|
|
||||||
|
|
||||||
/// Removed the Index_None part of the last function, that isn't accessible in blueprint, better to return success/failure
|
|
||||||
// End Thanks CriErr :p
|
|
||||||
|
|
||||||
// Get session custom information key/value as Byte (For Enums)
|
// Get session custom information key/value as Byte (For Enums)
|
||||||
UFUNCTION(BlueprintCallable, Category = "Online|AdvancedSessions|SessionInfo", meta = (ExpandEnumAsExecs = "SearchResult"))
|
UFUNCTION(BlueprintCallable, Category = "Online|AdvancedSessions|SessionInfo", meta = (ExpandEnumAsExecs = "SearchResult"))
|
||||||
|
|||||||
@@ -22,31 +22,6 @@ void UAdvancedSessionsLibrary::GetUniqueBuildID(FBlueprintSessionResult SessionR
|
|||||||
UniqueBuildId = SessionResult.OnlineResult.Session.SessionSettings.BuildUniqueId;
|
UniqueBuildId = SessionResult.OnlineResult.Session.SessionSettings.BuildUniqueId;
|
||||||
}
|
}
|
||||||
|
|
||||||
FName UAdvancedSessionsLibrary::GetSessionPropertyKey(const FSessionPropertyKeyPair& SessionProperty)
|
|
||||||
{
|
|
||||||
return SessionProperty.Key;
|
|
||||||
}
|
|
||||||
|
|
||||||
void UAdvancedSessionsLibrary::FindSessionPropertyByName(const TArray<FSessionPropertyKeyPair>& ExtraSettings, FName SettingName, EBlueprintResultSwitch &Result, FSessionPropertyKeyPair& OutProperty)
|
|
||||||
{
|
|
||||||
const FSessionPropertyKeyPair* prop = ExtraSettings.FindByPredicate([&](const FSessionPropertyKeyPair& it) {return it.Key == SettingName; });
|
|
||||||
if (prop)
|
|
||||||
{
|
|
||||||
Result = EBlueprintResultSwitch::OnSuccess;
|
|
||||||
OutProperty = *prop;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Result = EBlueprintResultSwitch::OnFailure;
|
|
||||||
}
|
|
||||||
|
|
||||||
void UAdvancedSessionsLibrary::FindSessionPropertyIndexByName(const TArray<FSessionPropertyKeyPair>& ExtraSettings, FName SettingName, EBlueprintResultSwitch &Result, int32& OutIndex)
|
|
||||||
{
|
|
||||||
OutIndex = ExtraSettings.IndexOfByPredicate([&](const FSessionPropertyKeyPair& it) {return it.Key == SettingName; });
|
|
||||||
|
|
||||||
Result = OutIndex != INDEX_NONE ? EBlueprintResultSwitch::OnSuccess : EBlueprintResultSwitch::OnFailure;
|
|
||||||
}
|
|
||||||
|
|
||||||
void UAdvancedSessionsLibrary::AddOrModifyExtraSettings(UPARAM(ref) TArray<FSessionPropertyKeyPair> & SettingsArray, UPARAM(ref) TArray<FSessionPropertyKeyPair> & NewOrChangedSettings, TArray<FSessionPropertyKeyPair> & ModifiedSettingsArray)
|
void UAdvancedSessionsLibrary::AddOrModifyExtraSettings(UPARAM(ref) TArray<FSessionPropertyKeyPair> & SettingsArray, UPARAM(ref) TArray<FSessionPropertyKeyPair> & NewOrChangedSettings, TArray<FSessionPropertyKeyPair> & ModifiedSettingsArray)
|
||||||
{
|
{
|
||||||
ModifiedSettingsArray = SettingsArray;
|
ModifiedSettingsArray = SettingsArray;
|
||||||
@@ -438,14 +413,23 @@ void UAdvancedSessionsLibrary::GetPlayerName(APlayerController *PlayerController
|
|||||||
|
|
||||||
void UAdvancedSessionsLibrary::GetNumberOfNetworkPlayers(UObject* WorldContextObject, int32 &NumNetPlayers)
|
void UAdvancedSessionsLibrary::GetNumberOfNetworkPlayers(UObject* WorldContextObject, int32 &NumNetPlayers)
|
||||||
{
|
{
|
||||||
|
//Get an actor to GetWorld() from
|
||||||
|
/*TObjectIterator<AActor> Itr;
|
||||||
|
if (!Itr)
|
||||||
|
{
|
||||||
|
UE_LOG(AdvancedSessionsLog, Warning, TEXT("GetNumberOfNetworkPlayers Failed to get iterator!"));
|
||||||
|
return;
|
||||||
|
}*/
|
||||||
|
//~~~~~~~~~~~~
|
||||||
|
|
||||||
//Get World
|
//Get World
|
||||||
UWorld* TheWorld = GEngine->GetWorldFromContextObject(WorldContextObject, EGetWorldErrorMode::LogAndReturnNull);
|
UWorld* TheWorld = GEngine->GetWorldFromContextObject(WorldContextObject);
|
||||||
|
|
||||||
if (!TheWorld)
|
if (!TheWorld)
|
||||||
{
|
{
|
||||||
UE_LOG(AdvancedSessionsLog, Warning, TEXT("GetNumberOfNetworkPlayers Failed to get World()!"));
|
UE_LOG(AdvancedSessionsLog, Warning, TEXT("GetNumberOfNetworkPlayers Failed to get World()!"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
TArray<class APlayerState*>& PlayerArray = (TheWorld->GetGameState()->PlayerArray);
|
||||||
NumNetPlayers = TheWorld->GetGameState()->PlayerArray.Num();
|
NumNetPlayers = PlayerArray.Num();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,7 +22,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));
|
||||||
Helper.QueryIDFromPlayerController(PlayerControllerWeakPtr.Get());
|
Helper.QueryIDFromPlayerController(PlayerControllerWeakPtr.Get());
|
||||||
|
|
||||||
if (Helper.IsValid())
|
if (Helper.IsValid())
|
||||||
@@ -48,7 +48,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));
|
||||||
Helper.QueryIDFromPlayerController(PlayerControllerWeakPtr.Get());
|
Helper.QueryIDFromPlayerController(PlayerControllerWeakPtr.Get());
|
||||||
|
|
||||||
if (Helper.IsValid())
|
if (Helper.IsValid())
|
||||||
|
|||||||
@@ -35,7 +35,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));
|
||||||
|
|
||||||
if (PlayerControllerWeakPtr.IsValid() )
|
if (PlayerControllerWeakPtr.IsValid() )
|
||||||
Helper.QueryIDFromPlayerController(PlayerControllerWeakPtr.Get());
|
Helper.QueryIDFromPlayerController(PlayerControllerWeakPtr.Get());
|
||||||
@@ -79,21 +79,8 @@ void UCreateSessionCallbackProxyAdvanced::Activate()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (!bDedicatedServer )
|
if (!bDedicatedServer && PlayerControllerWeakPtr.IsValid() && Helper.UserID.IsValid())
|
||||||
{
|
Sessions->CreateSession(*Helper.UserID, GameSessionName, Settings);
|
||||||
if (PlayerControllerWeakPtr.IsValid() && Helper.UserID.IsValid())
|
|
||||||
{
|
|
||||||
Sessions->CreateSession(*Helper.UserID, GameSessionName, Settings);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
FFrame::KismetExecutionMessage(TEXT("Invalid Player controller when attempting to start a session"), ELogVerbosity::Warning);
|
|
||||||
Sessions->ClearOnCreateSessionCompleteDelegate_Handle(CreateCompleteDelegateHandle);
|
|
||||||
|
|
||||||
// Fail immediately
|
|
||||||
OnFailure.Broadcast();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
Sessions->CreateSession(0, GameSessionName, Settings);
|
Sessions->CreateSession(0, GameSessionName, Settings);
|
||||||
|
|
||||||
@@ -112,7 +99,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));
|
||||||
//Helper.QueryIDFromPlayerController(PlayerControllerWeakPtr.Get());
|
//Helper.QueryIDFromPlayerController(PlayerControllerWeakPtr.Get());
|
||||||
|
|
||||||
if (Helper.OnlineSub != nullptr)
|
if (Helper.OnlineSub != nullptr)
|
||||||
@@ -141,8 +128,8 @@ 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));
|
||||||
//Helper.QueryIDFromPlayerController(PlayerControllerWeakPtr.Get());
|
Helper.QueryIDFromPlayerController(PlayerControllerWeakPtr.Get());
|
||||||
|
|
||||||
if (Helper.OnlineSub != nullptr)
|
if (Helper.OnlineSub != nullptr)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -22,7 +22,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));
|
||||||
Helper.QueryIDFromPlayerController(PlayerControllerWeakPtr.Get());
|
Helper.QueryIDFromPlayerController(PlayerControllerWeakPtr.Get());
|
||||||
|
|
||||||
if (Helper.IsValid())
|
if (Helper.IsValid())
|
||||||
@@ -56,7 +56,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));
|
||||||
Helper.QueryIDFromPlayerController(PlayerControllerWeakPtr.Get());
|
Helper.QueryIDFromPlayerController(PlayerControllerWeakPtr.Get());
|
||||||
|
|
||||||
if (Helper.IsValid())
|
if (Helper.IsValid())
|
||||||
|
|||||||
@@ -34,7 +34,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));
|
||||||
Helper.QueryIDFromPlayerController(PlayerControllerWeakPtr.Get());
|
Helper.QueryIDFromPlayerController(PlayerControllerWeakPtr.Get());
|
||||||
|
|
||||||
if (Helper.IsValid())
|
if (Helper.IsValid())
|
||||||
@@ -156,7 +156,7 @@ 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));
|
||||||
Helper.QueryIDFromPlayerController(PlayerControllerWeakPtr.Get());
|
Helper.QueryIDFromPlayerController(PlayerControllerWeakPtr.Get());
|
||||||
|
|
||||||
if (!bRunSecondSearch && Helper.IsValid())
|
if (!bRunSecondSearch && Helper.IsValid())
|
||||||
@@ -225,20 +225,13 @@ void UFindSessionsCallbackProxyAdvanced::OnCompleted(bool bSuccess)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Helper.IsValid() && bRunSecondSearch && ServerSearchType == EBPServerPresenceSearchType::AllServers)
|
if (bRunSecondSearch && ServerSearchType == EBPServerPresenceSearchType::AllServers)
|
||||||
{
|
{
|
||||||
bRunSecondSearch = false;
|
bRunSecondSearch = false;
|
||||||
bIsOnSecondSearch = true;
|
bIsOnSecondSearch = true;
|
||||||
auto Sessions = Helper.OnlineSub->GetSessionInterface();
|
auto Sessions = Helper.OnlineSub->GetSessionInterface();
|
||||||
Sessions->FindSessions(*Helper.UserID, SearchObjectDedicated.ToSharedRef());
|
Sessions->FindSessions(*Helper.UserID, SearchObjectDedicated.ToSharedRef());
|
||||||
}
|
}
|
||||||
else // We lost our player controller
|
|
||||||
{
|
|
||||||
if (bSuccess && SessionSearchResults.Num() > 0)
|
|
||||||
OnSuccess.Broadcast(SessionSearchResults);
|
|
||||||
else
|
|
||||||
OnFailure.Broadcast(SessionSearchResults);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
"FileVersion" : 3,
|
"FileVersion" : 3,
|
||||||
|
|
||||||
"FriendlyName" : "Advanced Steam Sessions",
|
"FriendlyName" : "Advanced Steam Sessions",
|
||||||
"Version" : 4.17,
|
"Version" : 1.9,
|
||||||
"VersionName": "4.17",
|
"VersionName": "1.9",
|
||||||
"Description" : "Adds new blueprint functions to handle more advanced session operations in Steam. REQUIRES ADVANCED SESSIONS",
|
"Description" : "Adds new blueprint functions to handle more advanced session operations in Steam. REQUIRES ADVANCED SESSIONS",
|
||||||
"Category" : "Advanced Sessions Plugin",
|
"Category" : "Advanced Sessions Plugin",
|
||||||
"CreatedBy" : "Joshua Statzer",
|
"CreatedBy" : "Joshua Statzer",
|
||||||
@@ -16,23 +16,5 @@
|
|||||||
"Type" : "RunTime",
|
"Type" : "RunTime",
|
||||||
"LoadingPhase" : "PreDefault"
|
"LoadingPhase" : "PreDefault"
|
||||||
}
|
}
|
||||||
],
|
]
|
||||||
"Plugins": [
|
|
||||||
{
|
|
||||||
"Name": "AdvancedSessions",
|
|
||||||
"Enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Name": "OnlineSubsystem",
|
|
||||||
"Enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Name": "OnlineSubsystemUtils",
|
|
||||||
"Enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Name": "OnlineSubsystemSteam",
|
|
||||||
"Enabled": true
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
@@ -29,41 +29,6 @@ enum class SteamAvatarSize : uint8
|
|||||||
SteamAvatar_Large = 3
|
SteamAvatar_Large = 3
|
||||||
};
|
};
|
||||||
|
|
||||||
UENUM(Blueprintable)
|
|
||||||
enum class ESteamUserOverlayType : uint8
|
|
||||||
{
|
|
||||||
/*Opens the overlay web browser to the specified user or groups profile.*/
|
|
||||||
steamid,
|
|
||||||
/*Opens a chat window to the specified user, or joins the group chat.*/
|
|
||||||
chat,
|
|
||||||
/*Opens a window to a Steam Trading session that was started with the ISteamEconomy / StartTrade Web API.*/
|
|
||||||
jointrade,
|
|
||||||
/*Opens the overlay web browser to the specified user's stats.*/
|
|
||||||
stats,
|
|
||||||
/*Opens the overlay web browser to the specified user's achievements.*/
|
|
||||||
achievements,
|
|
||||||
/*Opens the overlay in minimal mode prompting the user to add the target user as a friend.*/
|
|
||||||
friendadd,
|
|
||||||
/*Opens the overlay in minimal mode prompting the user to remove the target friend.*/
|
|
||||||
friendremove,
|
|
||||||
/*Opens the overlay in minimal mode prompting the user to accept an incoming friend invite.*/
|
|
||||||
friendrequestaccept,
|
|
||||||
/*Opens the overlay in minimal mode prompting the user to ignore an incoming friend invite.*/
|
|
||||||
friendrequestignore
|
|
||||||
};
|
|
||||||
|
|
||||||
static FString EnumToString(const FString& enumName, uint8 value)
|
|
||||||
{
|
|
||||||
const UEnum* EnumPtr = FindObject<UEnum>(ANY_PACKAGE, *enumName, true);
|
|
||||||
|
|
||||||
if (!EnumPtr)
|
|
||||||
return FString();
|
|
||||||
|
|
||||||
FString EnumName = EnumPtr->GetNameStringByIndex(value);
|
|
||||||
return EnumName;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
USTRUCT(BlueprintType, Category = "Online|SteamAPI|SteamGroups")
|
USTRUCT(BlueprintType, Category = "Online|SteamAPI|SteamGroups")
|
||||||
struct FBPSteamGroupInfo
|
struct FBPSteamGroupInfo
|
||||||
{
|
{
|
||||||
@@ -103,10 +68,6 @@ public:
|
|||||||
// Preloads the avatar and name of a steam friend, return whether it is already available or not, STEAM ONLY, Takes time to actually load everything after this is called.
|
// Preloads the avatar and name of a steam friend, return whether it is already available or not, STEAM ONLY, Takes time to actually load everything after this is called.
|
||||||
UFUNCTION(BlueprintCallable, Category = "Online|AdvancedFriends|SteamAPI")
|
UFUNCTION(BlueprintCallable, Category = "Online|AdvancedFriends|SteamAPI")
|
||||||
static bool RequestSteamFriendInfo(const FBPUniqueNetId UniqueNetId, bool bRequireNameOnly = false);
|
static bool RequestSteamFriendInfo(const FBPUniqueNetId UniqueNetId, bool bRequireNameOnly = false);
|
||||||
|
|
||||||
// Opens the steam overlay to go to the specified user dialog
|
|
||||||
UFUNCTION(BlueprintCallable, Category = "Online|AdvancedFriends|SteamAPI")
|
|
||||||
static bool OpenSteamUserOverlay(const FBPUniqueNetId UniqueNetId, ESteamUserOverlayType DialogType);
|
|
||||||
|
|
||||||
// Gets the level of a friends steam account, STEAM ONLY, Returns -1 if the steam level is not known, might need RequestSteamFriendInfo called first.
|
// Gets the level of a friends steam account, STEAM ONLY, Returns -1 if the steam level is not known, might need RequestSteamFriendInfo called first.
|
||||||
UFUNCTION(BlueprintCallable, Category = "Online|AdvancedFriends|SteamAPI")
|
UFUNCTION(BlueprintCallable, Category = "Online|AdvancedFriends|SteamAPI")
|
||||||
|
|||||||
@@ -13,8 +13,6 @@
|
|||||||
#ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
#pragma warning(push)
|
#pragma warning(push)
|
||||||
#pragma warning(disable:4996)
|
#pragma warning(disable:4996)
|
||||||
// #TODO check back on this at some point
|
|
||||||
#pragma warning(disable:4265) // SteamAPI CCallback< specifically, this warning is off by default but 4.17 turned it on....
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX
|
#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX
|
||||||
@@ -22,18 +20,8 @@
|
|||||||
#pragma push_macro("ARRAY_COUNT")
|
#pragma push_macro("ARRAY_COUNT")
|
||||||
#undef ARRAY_COUNT
|
#undef ARRAY_COUNT
|
||||||
|
|
||||||
#if USING_CODE_ANALYSIS
|
|
||||||
MSVC_PRAGMA(warning(push))
|
|
||||||
MSVC_PRAGMA(warning(disable : ALL_CODE_ANALYSIS_WARNINGS))
|
|
||||||
#endif // USING_CODE_ANALYSIS
|
|
||||||
|
|
||||||
#include <steam/steam_api.h>
|
#include <steam/steam_api.h>
|
||||||
|
|
||||||
#if USING_CODE_ANALYSIS
|
|
||||||
MSVC_PRAGMA(warning(pop))
|
|
||||||
#endif // USING_CODE_ANALYSIS
|
|
||||||
|
|
||||||
|
|
||||||
#pragma pop_macro("ARRAY_COUNT")
|
#pragma pop_macro("ARRAY_COUNT")
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -227,25 +215,6 @@ public:
|
|||||||
CreatorSteamID = FString::Printf(TEXT("%llu"), hUGCDetails.m_ulSteamIDOwner);
|
CreatorSteamID = FString::Printf(TEXT("%llu"), hUGCDetails.m_ulSteamIDOwner);
|
||||||
}
|
}
|
||||||
|
|
||||||
FBPSteamWorkshopItemDetails(const SteamUGCDetails_t &hUGCDetails)
|
|
||||||
{
|
|
||||||
ResultOfRequest = (FBPSteamResult)hUGCDetails.m_eResult;
|
|
||||||
FileType = (FBPWorkshopFileType)hUGCDetails.m_eFileType;
|
|
||||||
CreatorAppID = (int32)hUGCDetails.m_nCreatorAppID;
|
|
||||||
ConsumerAppID = (int32)hUGCDetails.m_nConsumerAppID;
|
|
||||||
Title = FString(hUGCDetails.m_rgchTitle, k_cchPublishedDocumentTitleMax);
|
|
||||||
Description = FString(hUGCDetails.m_rgchDescription, k_cchPublishedDocumentDescriptionMax);
|
|
||||||
ItemUrl = FString(hUGCDetails.m_rgchURL, k_cchPublishedFileURLMax);
|
|
||||||
VotesUp = (int32)hUGCDetails.m_unVotesUp;
|
|
||||||
VotesDown = (int32)hUGCDetails.m_unVotesDown;
|
|
||||||
CalculatedScore = hUGCDetails.m_flScore;
|
|
||||||
bBanned = hUGCDetails.m_bBanned;
|
|
||||||
bAcceptedForUse = hUGCDetails.m_bAcceptedForUse;
|
|
||||||
bTagsTruncated = hUGCDetails.m_bTagsTruncated;
|
|
||||||
|
|
||||||
CreatorSteamID = FString::Printf(TEXT("%llu"), hUGCDetails.m_ulSteamIDOwner);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Result of obtaining the details
|
// Result of obtaining the details
|
||||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Online|AdvancedSteamWorkshop")
|
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Online|AdvancedSteamWorkshop")
|
||||||
FBPSteamResult ResultOfRequest;
|
FBPSteamResult ResultOfRequest;
|
||||||
|
|||||||
@@ -11,33 +11,19 @@
|
|||||||
#ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
#pragma warning(push)
|
#pragma warning(push)
|
||||||
#pragma warning(disable:4996)
|
#pragma warning(disable:4996)
|
||||||
// #TODO check back on this at some point
|
|
||||||
#pragma warning(disable:4265) // SteamAPI CCallback< specifically, this warning is off by default but 4.17 turned it on....
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX
|
#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX
|
||||||
|
|
||||||
#include "OnlineSubsystemSteam.h"
|
|
||||||
|
|
||||||
#pragma push_macro("ARRAY_COUNT")
|
#pragma push_macro("ARRAY_COUNT")
|
||||||
#undef ARRAY_COUNT
|
#undef ARRAY_COUNT
|
||||||
|
|
||||||
#if USING_CODE_ANALYSIS
|
|
||||||
MSVC_PRAGMA(warning(push))
|
|
||||||
MSVC_PRAGMA(warning(disable : ALL_CODE_ANALYSIS_WARNINGS))
|
|
||||||
#endif // USING_CODE_ANALYSIS
|
|
||||||
|
|
||||||
#include <steam/steam_api.h>
|
#include <steam/steam_api.h>
|
||||||
|
|
||||||
#if USING_CODE_ANALYSIS
|
|
||||||
MSVC_PRAGMA(warning(pop))
|
|
||||||
#endif // USING_CODE_ANALYSIS
|
|
||||||
|
|
||||||
|
|
||||||
#pragma pop_macro("ARRAY_COUNT")
|
#pragma pop_macro("ARRAY_COUNT")
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// @todo Steam: See above
|
// @todo Steam: See above
|
||||||
#ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
#pragma warning(pop)
|
#pragma warning(pop)
|
||||||
@@ -67,8 +53,6 @@ class USteamRequestGroupOfficersCallbackProxy : public UOnlineBlueprintCallProxy
|
|||||||
{
|
{
|
||||||
GENERATED_UCLASS_BODY()
|
GENERATED_UCLASS_BODY()
|
||||||
|
|
||||||
virtual ~USteamRequestGroupOfficersCallbackProxy();
|
|
||||||
|
|
||||||
// Called when there is a successful results return
|
// Called when there is a successful results return
|
||||||
UPROPERTY(BlueprintAssignable)
|
UPROPERTY(BlueprintAssignable)
|
||||||
FBlueprintGroupOfficerDetailsDelegate OnSuccess;
|
FBlueprintGroupOfficerDetailsDelegate OnSuccess;
|
||||||
@@ -86,15 +70,14 @@ class USteamRequestGroupOfficersCallbackProxy : public UOnlineBlueprintCallProxy
|
|||||||
// End of UOnlineBlueprintCallProxyBase interface
|
// End of UOnlineBlueprintCallProxyBase interface
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX
|
#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX
|
||||||
void OnRequestGroupOfficerDetails( ClanOfficerListResponse_t *pResult, bool bIOFailure);
|
void OnRequestGroupOfficerDetails( ClanOfficerListResponse_t *pResult, bool bIOFailure);
|
||||||
CCallResult<USteamRequestGroupOfficersCallbackProxy, ClanOfficerListResponse_t> m_callResultGroupOfficerRequestDetails;
|
CCallResult<USteamRequestGroupOfficersCallbackProxy, ClanOfficerListResponse_t> m_callResultGroupOfficerRequestDetails;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
FBPUniqueNetId GroupUniqueID;
|
FBPUniqueNetId GroupUniqueID;
|
||||||
UObject* WorldContextObject;
|
UObject* WorldContextObject;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -12,29 +12,15 @@
|
|||||||
#ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
#pragma warning(push)
|
#pragma warning(push)
|
||||||
#pragma warning(disable:4996)
|
#pragma warning(disable:4996)
|
||||||
// #TODO check back on this at some point
|
|
||||||
#pragma warning(disable:4265) // SteamAPI CCallback< specifically, this warning is off by default but 4.17 turned it on....
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX
|
#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX
|
||||||
|
|
||||||
#include "OnlineSubsystemSteam.h"
|
|
||||||
|
|
||||||
#pragma push_macro("ARRAY_COUNT")
|
#pragma push_macro("ARRAY_COUNT")
|
||||||
#undef ARRAY_COUNT
|
#undef ARRAY_COUNT
|
||||||
|
|
||||||
#if USING_CODE_ANALYSIS
|
|
||||||
MSVC_PRAGMA(warning(push))
|
|
||||||
MSVC_PRAGMA(warning(disable : ALL_CODE_ANALYSIS_WARNINGS))
|
|
||||||
#endif // USING_CODE_ANALYSIS
|
|
||||||
|
|
||||||
#include <steam/steam_api.h>
|
#include <steam/steam_api.h>
|
||||||
|
|
||||||
#if USING_CODE_ANALYSIS
|
|
||||||
MSVC_PRAGMA(warning(pop))
|
|
||||||
#endif // USING_CODE_ANALYSIS
|
|
||||||
|
|
||||||
|
|
||||||
#pragma pop_macro("ARRAY_COUNT")
|
#pragma pop_macro("ARRAY_COUNT")
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -44,7 +30,6 @@ MSVC_PRAGMA(warning(pop))
|
|||||||
#pragma warning(pop)
|
#pragma warning(pop)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#include "SteamWSRequestUGCDetailsCallbackProxy.generated.h"
|
#include "SteamWSRequestUGCDetailsCallbackProxy.generated.h"
|
||||||
|
|
||||||
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FBlueprintWorkshopDetailsDelegate, const FBPSteamWorkshopItemDetails&, WorkShopDetails);
|
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FBlueprintWorkshopDetailsDelegate, const FBPSteamWorkshopItemDetails&, WorkShopDetails);
|
||||||
|
|||||||
@@ -9,8 +9,6 @@
|
|||||||
#ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
#pragma warning(push)
|
#pragma warning(push)
|
||||||
#pragma warning(disable:4996)
|
#pragma warning(disable:4996)
|
||||||
// #TODO check back on this at some point
|
|
||||||
#pragma warning(disable:4265) // SteamAPI CCallback< specifically, this warning is off by default but 4.17 turned it on....
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX
|
#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX
|
||||||
@@ -18,17 +16,7 @@
|
|||||||
#pragma push_macro("ARRAY_COUNT")
|
#pragma push_macro("ARRAY_COUNT")
|
||||||
#undef ARRAY_COUNT
|
#undef ARRAY_COUNT
|
||||||
|
|
||||||
#if USING_CODE_ANALYSIS
|
|
||||||
MSVC_PRAGMA(warning(push))
|
|
||||||
MSVC_PRAGMA(warning(disable : ALL_CODE_ANALYSIS_WARNINGS))
|
|
||||||
#endif // USING_CODE_ANALYSIS
|
|
||||||
|
|
||||||
#include <steam/steam_api.h>
|
#include <steam/steam_api.h>
|
||||||
|
|
||||||
#if USING_CODE_ANALYSIS
|
|
||||||
MSVC_PRAGMA(warning(pop))
|
|
||||||
#endif // USING_CODE_ANALYSIS
|
|
||||||
|
|
||||||
#include <steam/isteamapps.h>
|
#include <steam/isteamapps.h>
|
||||||
#include <steam/isteamapplist.h>
|
#include <steam/isteamapplist.h>
|
||||||
#include <OnlineSubsystemSteamTypes.h>
|
#include <OnlineSubsystemSteamTypes.h>
|
||||||
@@ -50,7 +38,7 @@ DEFINE_LOG_CATEGORY(AdvancedSteamFriendsLog);
|
|||||||
{
|
{
|
||||||
|
|
||||||
#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX
|
#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX
|
||||||
if (!UniqueNetId.IsValid() || !UniqueNetId.UniqueNetId->IsValid() || UniqueNetId.UniqueNetId->GetType() != STEAM_SUBSYSTEM)
|
if (!UniqueNetId.IsValid() || !UniqueNetId.UniqueNetId->IsValid())
|
||||||
{
|
{
|
||||||
UE_LOG(AdvancedSteamFriendsLog, Warning, TEXT("IsAFriend Had a bad UniqueNetId!"));
|
UE_LOG(AdvancedSteamFriendsLog, Warning, TEXT("IsAFriend Had a bad UniqueNetId!"));
|
||||||
return 0;
|
return 0;
|
||||||
@@ -128,7 +116,7 @@ void UAdvancedSteamFriendsLibrary::GetSteamFriendGamePlayed(const FBPUniqueNetId
|
|||||||
{
|
{
|
||||||
|
|
||||||
#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX
|
#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX
|
||||||
if (!UniqueNetId.IsValid() || !UniqueNetId.UniqueNetId->IsValid() || UniqueNetId.UniqueNetId->GetType() != STEAM_SUBSYSTEM)
|
if (!UniqueNetId.IsValid() || !UniqueNetId.UniqueNetId->IsValid())
|
||||||
{
|
{
|
||||||
UE_LOG(AdvancedSteamFriendsLog, Warning, TEXT("GetSteamFriendGamePlayed Had a bad UniqueNetId!"));
|
UE_LOG(AdvancedSteamFriendsLog, Warning, TEXT("GetSteamFriendGamePlayed Had a bad UniqueNetId!"));
|
||||||
Result = EBlueprintResultSwitch::OnFailure;
|
Result = EBlueprintResultSwitch::OnFailure;
|
||||||
@@ -168,7 +156,7 @@ int32 UAdvancedSteamFriendsLibrary::GetFriendSteamLevel(const FBPUniqueNetId Uni
|
|||||||
{
|
{
|
||||||
|
|
||||||
#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX
|
#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX
|
||||||
if (!UniqueNetId.IsValid() || !UniqueNetId.UniqueNetId->IsValid() || UniqueNetId.UniqueNetId->GetType() != STEAM_SUBSYSTEM)
|
if (!UniqueNetId.IsValid() || !UniqueNetId.UniqueNetId->IsValid())
|
||||||
{
|
{
|
||||||
UE_LOG(AdvancedSteamFriendsLog, Warning, TEXT("IsAFriend Had a bad UniqueNetId!"));
|
UE_LOG(AdvancedSteamFriendsLog, Warning, TEXT("IsAFriend Had a bad UniqueNetId!"));
|
||||||
return 0;
|
return 0;
|
||||||
@@ -189,7 +177,7 @@ FString UAdvancedSteamFriendsLibrary::GetSteamPersonaName(const FBPUniqueNetId U
|
|||||||
{
|
{
|
||||||
|
|
||||||
#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX
|
#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX
|
||||||
if (!UniqueNetId.IsValid() || !UniqueNetId.UniqueNetId->IsValid() || UniqueNetId.UniqueNetId->GetType() != STEAM_SUBSYSTEM)
|
if (!UniqueNetId.IsValid() || !UniqueNetId.UniqueNetId->IsValid())
|
||||||
{
|
{
|
||||||
UE_LOG(AdvancedSteamFriendsLog, Warning, TEXT("GetSteamPersonaName Had a bad UniqueNetId!"));
|
UE_LOG(AdvancedSteamFriendsLog, Warning, TEXT("GetSteamPersonaName Had a bad UniqueNetId!"));
|
||||||
return FString(TEXT(""));
|
return FString(TEXT(""));
|
||||||
@@ -234,7 +222,7 @@ FBPUniqueNetId UAdvancedSteamFriendsLibrary::CreateSteamIDFromString(const FStri
|
|||||||
bool UAdvancedSteamFriendsLibrary::RequestSteamFriendInfo(const FBPUniqueNetId UniqueNetId, bool bRequireNameOnly)
|
bool UAdvancedSteamFriendsLibrary::RequestSteamFriendInfo(const FBPUniqueNetId UniqueNetId, bool bRequireNameOnly)
|
||||||
{
|
{
|
||||||
#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX
|
#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX
|
||||||
if (!UniqueNetId.IsValid() || !UniqueNetId.UniqueNetId->IsValid() || UniqueNetId.UniqueNetId->GetType() != STEAM_SUBSYSTEM)
|
if (!UniqueNetId.IsValid() || !UniqueNetId.UniqueNetId->IsValid())
|
||||||
{
|
{
|
||||||
UE_LOG(AdvancedSteamFriendsLog, Warning, TEXT("RequestSteamFriendInfo Had a bad UniqueNetId!"));
|
UE_LOG(AdvancedSteamFriendsLog, Warning, TEXT("RequestSteamFriendInfo Had a bad UniqueNetId!"));
|
||||||
return false;
|
return false;
|
||||||
@@ -252,33 +240,10 @@ bool UAdvancedSteamFriendsLibrary::RequestSteamFriendInfo(const FBPUniqueNetId U
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool UAdvancedSteamFriendsLibrary::OpenSteamUserOverlay(const FBPUniqueNetId UniqueNetId, ESteamUserOverlayType DialogType)
|
|
||||||
{
|
|
||||||
#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX
|
|
||||||
if (!UniqueNetId.IsValid() || !UniqueNetId.UniqueNetId->IsValid() || UniqueNetId.UniqueNetId->GetType() != STEAM_SUBSYSTEM)
|
|
||||||
{
|
|
||||||
UE_LOG(AdvancedSteamFriendsLog, Warning, TEXT("OpenSteamUserOverlay Had a bad UniqueNetId!"));
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (SteamAPI_Init())
|
|
||||||
{
|
|
||||||
uint64 id = *((uint64*)UniqueNetId.UniqueNetId->GetBytes());
|
|
||||||
FString DialogName = EnumToString("ESteamUserOverlayType", (uint8)DialogType);
|
|
||||||
SteamFriends()->ActivateGameOverlayToUser(TCHAR_TO_ANSI(*DialogName), id);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
UE_LOG(AdvancedSteamFriendsLog, Warning, TEXT("OpenSteamUserOverlay Couldn't init steamAPI!"));
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
UTexture2D * UAdvancedSteamFriendsLibrary::GetSteamFriendAvatar(const FBPUniqueNetId UniqueNetId, EBlueprintAsyncResultSwitch &Result, SteamAvatarSize AvatarSize)
|
UTexture2D * UAdvancedSteamFriendsLibrary::GetSteamFriendAvatar(const FBPUniqueNetId UniqueNetId, EBlueprintAsyncResultSwitch &Result, SteamAvatarSize AvatarSize)
|
||||||
{
|
{
|
||||||
#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX
|
#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX
|
||||||
if (!UniqueNetId.IsValid() || !UniqueNetId.UniqueNetId->IsValid() || UniqueNetId.UniqueNetId->GetType() != STEAM_SUBSYSTEM)
|
if (!UniqueNetId.IsValid() || !UniqueNetId.UniqueNetId->IsValid())
|
||||||
{
|
{
|
||||||
UE_LOG(AdvancedSteamFriendsLog, Warning, TEXT("GetSteamFriendAvatar Had a bad UniqueNetId!"));
|
UE_LOG(AdvancedSteamFriendsLog, Warning, TEXT("GetSteamFriendAvatar Had a bad UniqueNetId!"));
|
||||||
Result = EBlueprintAsyncResultSwitch::OnFailure;
|
Result = EBlueprintAsyncResultSwitch::OnFailure;
|
||||||
|
|||||||
@@ -1,9 +1,7 @@
|
|||||||
// Copyright 1998-2015 Epic Games, Inc. All Rights Reserved.
|
// Copyright 1998-2015 Epic Games, Inc. All Rights Reserved.
|
||||||
|
|
||||||
#include "SteamRequestGroupOfficersCallbackProxy.h"
|
#include "SteamRequestGroupOfficersCallbackProxy.h"
|
||||||
#include "CoreOnline.h"
|
|
||||||
#include "OnlineSubSystemHeader.h"
|
#include "OnlineSubSystemHeader.h"
|
||||||
#include "OnlineSubsystemSteamTypes.h"
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
// UEndSessionCallbackProxy
|
// UEndSessionCallbackProxy
|
||||||
@@ -13,9 +11,6 @@ USteamRequestGroupOfficersCallbackProxy::USteamRequestGroupOfficersCallbackProxy
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
USteamRequestGroupOfficersCallbackProxy::~USteamRequestGroupOfficersCallbackProxy()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
USteamRequestGroupOfficersCallbackProxy* USteamRequestGroupOfficersCallbackProxy::GetSteamGroupOfficerList(UObject* WorldContextObject, FBPUniqueNetId GroupUniqueNetID)
|
USteamRequestGroupOfficersCallbackProxy* USteamRequestGroupOfficersCallbackProxy::GetSteamGroupOfficerList(UObject* WorldContextObject, FBPUniqueNetId GroupUniqueNetID)
|
||||||
{
|
{
|
||||||
@@ -32,7 +27,7 @@ void USteamRequestGroupOfficersCallbackProxy::Activate()
|
|||||||
{
|
{
|
||||||
uint64 id = *((uint64*)GroupUniqueID.UniqueNetId->GetBytes());
|
uint64 id = *((uint64*)GroupUniqueID.UniqueNetId->GetBytes());
|
||||||
SteamAPICall_t hSteamAPICall = SteamFriends()->RequestClanOfficerList(id);
|
SteamAPICall_t hSteamAPICall = SteamFriends()->RequestClanOfficerList(id);
|
||||||
|
|
||||||
m_callResultGroupOfficerRequestDetails.Set(hSteamAPICall, this, &USteamRequestGroupOfficersCallbackProxy::OnRequestGroupOfficerDetails);
|
m_callResultGroupOfficerRequestDetails.Set(hSteamAPICall, this, &USteamRequestGroupOfficersCallbackProxy::OnRequestGroupOfficerDetails);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -46,20 +41,10 @@ void USteamRequestGroupOfficersCallbackProxy::OnRequestGroupOfficerDetails(ClanO
|
|||||||
TArray<FBPSteamGroupOfficer> OfficerArray;
|
TArray<FBPSteamGroupOfficer> OfficerArray;
|
||||||
|
|
||||||
#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX
|
#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX
|
||||||
|
|
||||||
FOnlineSubsystemSteam* SteamSubsystem = (FOnlineSubsystemSteam*)(IOnlineSubsystem::Get(STEAM_SUBSYSTEM));
|
|
||||||
|
|
||||||
if (bIOFailure || !pResult || !pResult->m_bSuccess)
|
if (bIOFailure || !pResult || !pResult->m_bSuccess)
|
||||||
{
|
{
|
||||||
if (SteamSubsystem != nullptr)
|
OnFailure.Broadcast(OfficerArray);
|
||||||
{
|
|
||||||
SteamSubsystem->ExecuteNextTick([this]()
|
|
||||||
{
|
|
||||||
TArray<FBPSteamGroupOfficer> FailureArray;
|
|
||||||
OnFailure.Broadcast(FailureArray);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
//OnFailure.Broadcast(OfficerArray);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -88,31 +73,11 @@ void USteamRequestGroupOfficersCallbackProxy::OnRequestGroupOfficerDetails(ClanO
|
|||||||
OfficerArray.Add(Officer);
|
OfficerArray.Add(Officer);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (SteamSubsystem != nullptr)
|
OnSuccess.Broadcast(OfficerArray);
|
||||||
{
|
|
||||||
SteamSubsystem->ExecuteNextTick([OfficerArray, this]()
|
|
||||||
{
|
|
||||||
OnSuccess.Broadcast(OfficerArray);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
//OnSuccess.Broadcast(OfficerArray);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
if (SteamSubsystem != nullptr)
|
|
||||||
{
|
|
||||||
SteamSubsystem->ExecuteNextTick([this]()
|
|
||||||
{
|
|
||||||
TArray<FBPSteamGroupOfficer> FailureArray;
|
|
||||||
OnFailure.Broadcast(FailureArray);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Should never hit this anyway
|
OnFailure.Broadcast(OfficerArray);
|
||||||
//OnFailure.Broadcast(OfficerArray);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -49,51 +49,23 @@ void USteamWSRequestUGCDetailsCallbackProxy::Activate()
|
|||||||
void USteamWSRequestUGCDetailsCallbackProxy::OnUGCRequestUGCDetails(SteamUGCQueryCompleted_t *pResult, bool bIOFailure)
|
void USteamWSRequestUGCDetailsCallbackProxy::OnUGCRequestUGCDetails(SteamUGCQueryCompleted_t *pResult, bool bIOFailure)
|
||||||
{
|
{
|
||||||
#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX
|
#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX
|
||||||
|
|
||||||
FOnlineSubsystemSteam* SteamSubsystem = (FOnlineSubsystemSteam*)(IOnlineSubsystem::Get(STEAM_SUBSYSTEM));
|
|
||||||
|
|
||||||
if (bIOFailure || !pResult || pResult->m_unNumResultsReturned <= 0)
|
if (bIOFailure || !pResult || pResult->m_unNumResultsReturned <= 0)
|
||||||
{
|
{
|
||||||
if (SteamSubsystem != nullptr)
|
OnFailure.Broadcast(FBPSteamWorkshopItemDetails());
|
||||||
{
|
|
||||||
SteamSubsystem->ExecuteNextTick([this]()
|
|
||||||
{
|
|
||||||
OnFailure.Broadcast(FBPSteamWorkshopItemDetails());
|
|
||||||
});
|
|
||||||
}
|
|
||||||
//OnFailure.Broadcast(FBPSteamWorkshopItemDetails());
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (SteamAPI_Init())
|
if (SteamAPI_Init())
|
||||||
{
|
{
|
||||||
SteamUGCDetails_t Details;
|
SteamUGCDetails_t Details;
|
||||||
if (SteamUGC()->GetQueryUGCResult(pResult->m_handle, 0, &Details))
|
if (SteamUGC()->GetQueryUGCResult(pResult->m_handle, 0, &Details))
|
||||||
{
|
|
||||||
if (SteamSubsystem != nullptr)
|
|
||||||
{
|
|
||||||
SteamSubsystem->ExecuteNextTick([Details, this]()
|
|
||||||
{
|
|
||||||
OnSuccess.Broadcast(FBPSteamWorkshopItemDetails(Details));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
//OnSuccess.Broadcast(FBPSteamWorkshopItemDetails(Details));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (SteamSubsystem != nullptr)
|
|
||||||
{
|
{
|
||||||
SteamSubsystem->ExecuteNextTick([this]()
|
OnSuccess.Broadcast(FBPSteamWorkshopItemDetails(Details));
|
||||||
{
|
return;
|
||||||
OnFailure.Broadcast(FBPSteamWorkshopItemDetails());
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Not needed, should never hit here
|
OnFailure.Broadcast(FBPSteamWorkshopItemDetails());
|
||||||
//OnFailure.Broadcast(FBPSteamWorkshopItemDetails());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user