mirror of
https://github.com/mordentral/AdvancedSessionsPlugin.git
synced 2025-12-13 01:13:40 +00:00
Compare commits
11 Commits
4.18_Locke
...
4.19_Locke
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
105df50764 | ||
|
|
6d404d22ce | ||
|
|
f47699e940 | ||
|
|
924b1ecf1c | ||
|
|
c73b96993c | ||
|
|
0229b69d9c | ||
|
|
ad2881cd75 | ||
|
|
d007eed9a8 | ||
|
|
c2a5598582 | ||
|
|
2db3b7221c | ||
|
|
ea77c18a2e |
@@ -7,8 +7,8 @@ public class AdvancedSessions : ModuleRules
|
|||||||
{
|
{
|
||||||
PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
|
PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
|
||||||
//bEnforceIWYU = true;
|
//bEnforceIWYU = true;
|
||||||
|
|
||||||
Definitions.Add("WITH_ADVANCED_SESSIONS=1");
|
PublicDefinitions.Add("WITH_ADVANCED_SESSIONS=1");
|
||||||
|
|
||||||
PrivateIncludePaths.AddRange(new string[] { "AdvancedSessions/Private"/*, "OnlineSubsystemSteam/Private"*/ });
|
PrivateIncludePaths.AddRange(new string[] { "AdvancedSessions/Private"/*, "OnlineSubsystemSteam/Private"*/ });
|
||||||
PublicIncludePaths.AddRange(new string[] { "AdvancedSessions/Public" });
|
PublicIncludePaths.AddRange(new string[] { "AdvancedSessions/Public" });
|
||||||
|
|||||||
@@ -65,6 +65,7 @@ public:
|
|||||||
void OnSessionInviteAcceptedMaster(const bool bWasSuccessful, int32 LocalPlayer, TSharedPtr<const FUniqueNetId> PersonInviting, const FOnlineSessionSearchResult& SessionToJoin);
|
void OnSessionInviteAcceptedMaster(const bool bWasSuccessful, int32 LocalPlayer, TSharedPtr<const FUniqueNetId> PersonInviting, const FOnlineSessionSearchResult& SessionToJoin);
|
||||||
|
|
||||||
// After a session invite has been accepted by the local player this event is triggered, call JoinSession on the session result to join it
|
// After a session invite has been accepted by the local player this event is triggered, call JoinSession on the session result to join it
|
||||||
|
// This function is currently not hooked up in any of Epics default subsystems, it is here for custom subsystems
|
||||||
UFUNCTION(BlueprintImplementableEvent, Category = "AdvancedFriends")
|
UFUNCTION(BlueprintImplementableEvent, Category = "AdvancedFriends")
|
||||||
void OnSessionInviteAccepted(int32 LocalPlayerNum, FBPUniqueNetId PersonInvited, const FBlueprintSessionResult& SessionToJoin);
|
void OnSessionInviteAccepted(int32 LocalPlayerNum, FBPUniqueNetId PersonInvited, const FBlueprintSessionResult& SessionToJoin);
|
||||||
|
|
||||||
|
|||||||
@@ -48,6 +48,7 @@ public:
|
|||||||
static bool RegisterLocalTalker(uint8 LocalPlayerNum = 0);
|
static bool RegisterLocalTalker(uint8 LocalPlayerNum = 0);
|
||||||
|
|
||||||
// Registers all signed in players as local talkers
|
// Registers all signed in players as local talkers
|
||||||
|
// This is already done automatically, only do it manually if you unregistered someone
|
||||||
UFUNCTION(BlueprintCallable, Category = "Online|AdvancedVoice")
|
UFUNCTION(BlueprintCallable, Category = "Online|AdvancedVoice")
|
||||||
static void RegisterAllLocalTalkers();
|
static void RegisterAllLocalTalkers();
|
||||||
|
|
||||||
@@ -60,6 +61,7 @@ public:
|
|||||||
static void UnRegisterAllLocalTalkers();
|
static void UnRegisterAllLocalTalkers();
|
||||||
|
|
||||||
// Registers a remote player as a talker
|
// Registers a remote player as a talker
|
||||||
|
// This is already done automatically, only do it manually if you unregistered someone
|
||||||
UFUNCTION(BlueprintCallable, Category = "Online|AdvancedVoice")
|
UFUNCTION(BlueprintCallable, Category = "Online|AdvancedVoice")
|
||||||
static bool RegisterRemoteTalker(const FBPUniqueNetId& UniqueNetId);
|
static bool RegisterRemoteTalker(const FBPUniqueNetId& UniqueNetId);
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ class UGetUserPrivilegeCallbackProxy : public UOnlineBlueprintCallProxyBase
|
|||||||
UPROPERTY(BlueprintAssignable)
|
UPROPERTY(BlueprintAssignable)
|
||||||
FEmptyOnlineDelegate OnFailure;
|
FEmptyOnlineDelegate OnFailure;
|
||||||
|
|
||||||
// Logs out of the identity interface
|
// Gets the privilage of the user
|
||||||
UFUNCTION(BlueprintCallable, meta=(BlueprintInternalUseOnly = "true", WorldContext="WorldContextObject"), Category = "Online|AdvancedIdentity")
|
UFUNCTION(BlueprintCallable, meta=(BlueprintInternalUseOnly = "true", WorldContext="WorldContextObject"), Category = "Online|AdvancedIdentity")
|
||||||
static UGetUserPrivilegeCallbackProxy* GetUserPrivilege(UObject* WorldContextObject, const EBPUserPrivileges & PrivilegeToCheck, const FBPUniqueNetId & PlayerUniqueNetID);
|
static UGetUserPrivilegeCallbackProxy* GetUserPrivilege(UObject* WorldContextObject, const EBPUserPrivileges & PrivilegeToCheck, const FBPUniqueNetId & PlayerUniqueNetID);
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ class ULoginUserCallbackProxy : public UOnlineBlueprintCallProxyBase
|
|||||||
UPROPERTY(BlueprintAssignable)
|
UPROPERTY(BlueprintAssignable)
|
||||||
FEmptyOnlineDelegate OnFailure;
|
FEmptyOnlineDelegate OnFailure;
|
||||||
|
|
||||||
// Logs out of the identity interface
|
// Logs into the identity interface
|
||||||
UFUNCTION(BlueprintCallable, meta=(BlueprintInternalUseOnly = "true", WorldContext="WorldContextObject"), Category = "Online|AdvancedIdentity")
|
UFUNCTION(BlueprintCallable, meta=(BlueprintInternalUseOnly = "true", WorldContext="WorldContextObject"), Category = "Online|AdvancedIdentity")
|
||||||
static ULoginUserCallbackProxy* LoginUser(UObject* WorldContextObject, class APlayerController* PlayerController, FString UserID, FString UserToken);
|
static ULoginUserCallbackProxy* LoginUser(UObject* WorldContextObject, class APlayerController* PlayerController, FString UserID, FString UserToken);
|
||||||
|
|
||||||
|
|||||||
@@ -427,7 +427,7 @@ void UAdvancedSessionsLibrary::GetPlayerName(APlayerController *PlayerController
|
|||||||
|
|
||||||
if (APlayerState* PlayerState = (PlayerController != NULL) ? PlayerController->PlayerState : NULL)
|
if (APlayerState* PlayerState = (PlayerController != NULL) ? PlayerController->PlayerState : NULL)
|
||||||
{
|
{
|
||||||
PlayerName = PlayerState->PlayerName;
|
PlayerName = PlayerState->GetPlayerName();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ public class AdvancedSteamSessions : ModuleRules
|
|||||||
PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
|
PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
|
||||||
//bEnforceIWYU = true;
|
//bEnforceIWYU = true;
|
||||||
|
|
||||||
Definitions.Add("WITH_ADVANCED_STEAM_SESSIONS=1");
|
PublicDefinitions.Add("WITH_ADVANCED_STEAM_SESSIONS=1");
|
||||||
|
|
||||||
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "OnlineSubsystem", "CoreUObject", "OnlineSubsystemUtils", "Networking", "Sockets", "AdvancedSessions"/*"Voice", "OnlineSubsystemSteam"*/ });
|
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "OnlineSubsystem", "CoreUObject", "OnlineSubsystemUtils", "Networking", "Sockets", "AdvancedSessions"/*"Voice", "OnlineSubsystemSteam"*/ });
|
||||||
PrivateDependencyModuleNames.AddRange(new string[] { "OnlineSubsystem", "Sockets", "Networking", "OnlineSubsystemUtils" /*"Voice", "Steamworks","OnlineSubsystemSteam"*/});
|
PrivateDependencyModuleNames.AddRange(new string[] { "OnlineSubsystem", "Sockets", "Networking", "OnlineSubsystemUtils" /*"Voice", "Steamworks","OnlineSubsystemSteam"*/});
|
||||||
|
|||||||
@@ -29,6 +29,41 @@ 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
|
||||||
{
|
{
|
||||||
@@ -68,6 +103,10 @@ 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")
|
||||||
@@ -88,6 +127,7 @@ public:
|
|||||||
UFUNCTION(BlueprintCallable, Category = "Online|AdvancedFriends|SteamAPI", meta = (ExpandEnumAsExecs = "Result"))
|
UFUNCTION(BlueprintCallable, Category = "Online|AdvancedFriends|SteamAPI", meta = (ExpandEnumAsExecs = "Result"))
|
||||||
static void GetSteamFriendGamePlayed(const FBPUniqueNetId UniqueNetId, EBlueprintResultSwitch &Result, FString & GameName, int32 & AppID);
|
static void GetSteamFriendGamePlayed(const FBPUniqueNetId UniqueNetId, EBlueprintResultSwitch &Result, FString & GameName, int32 & AppID);
|
||||||
|
|
||||||
|
// Get a full list of steam groups
|
||||||
UFUNCTION(BlueprintCallable, Category = "Online|SteamAPI|SteamGroups")
|
UFUNCTION(BlueprintCallable, Category = "Online|SteamAPI|SteamGroups")
|
||||||
static void GetSteamGroups(TArray<FBPSteamGroupInfo> & SteamGroups);
|
static void GetSteamGroups(TArray<FBPSteamGroupInfo> & SteamGroups);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -227,6 +227,25 @@ 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;
|
||||||
|
|||||||
@@ -17,6 +17,8 @@
|
|||||||
|
|
||||||
#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
|
||||||
|
|
||||||
@@ -75,7 +77,7 @@ class USteamRequestGroupOfficersCallbackProxy : public UOnlineBlueprintCallProxy
|
|||||||
UPROPERTY(BlueprintAssignable)
|
UPROPERTY(BlueprintAssignable)
|
||||||
FBlueprintGroupOfficerDetailsDelegate OnFailure;
|
FBlueprintGroupOfficerDetailsDelegate OnFailure;
|
||||||
|
|
||||||
// Retruns a list of steam group officers
|
// Returns a list of steam group officers
|
||||||
UFUNCTION(BlueprintCallable, meta=(BlueprintInternalUseOnly = "true", WorldContext="WorldContextObject"), Category = "Online|SteamAPI|SteamGroups")
|
UFUNCTION(BlueprintCallable, meta=(BlueprintInternalUseOnly = "true", WorldContext="WorldContextObject"), Category = "Online|SteamAPI|SteamGroups")
|
||||||
static USteamRequestGroupOfficersCallbackProxy* GetSteamGroupOfficerList(UObject* WorldContextObject, FBPUniqueNetId GroupUniqueNetID);
|
static USteamRequestGroupOfficersCallbackProxy* GetSteamGroupOfficerList(UObject* WorldContextObject, FBPUniqueNetId GroupUniqueNetID);
|
||||||
|
|
||||||
|
|||||||
@@ -18,6 +18,8 @@
|
|||||||
|
|
||||||
#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
|
||||||
|
|
||||||
|
|||||||
@@ -50,7 +50,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())
|
if (!UniqueNetId.IsValid() || !UniqueNetId.UniqueNetId->IsValid() || UniqueNetId.UniqueNetId->GetType() != STEAM_SUBSYSTEM)
|
||||||
{
|
{
|
||||||
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 +128,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())
|
if (!UniqueNetId.IsValid() || !UniqueNetId.UniqueNetId->IsValid() || UniqueNetId.UniqueNetId->GetType() != STEAM_SUBSYSTEM)
|
||||||
{
|
{
|
||||||
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 +168,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())
|
if (!UniqueNetId.IsValid() || !UniqueNetId.UniqueNetId->IsValid() || UniqueNetId.UniqueNetId->GetType() != STEAM_SUBSYSTEM)
|
||||||
{
|
{
|
||||||
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 +189,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())
|
if (!UniqueNetId.IsValid() || !UniqueNetId.UniqueNetId->IsValid() || UniqueNetId.UniqueNetId->GetType() != STEAM_SUBSYSTEM)
|
||||||
{
|
{
|
||||||
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 +234,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())
|
if (!UniqueNetId.IsValid() || !UniqueNetId.UniqueNetId->IsValid() || UniqueNetId.UniqueNetId->GetType() != STEAM_SUBSYSTEM)
|
||||||
{
|
{
|
||||||
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,10 +252,33 @@ 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())
|
if (!UniqueNetId.IsValid() || !UniqueNetId.UniqueNetId->IsValid() || UniqueNetId.UniqueNetId->GetType() != STEAM_SUBSYSTEM)
|
||||||
{
|
{
|
||||||
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;
|
||||||
|
|||||||
@@ -46,10 +46,20 @@ 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)
|
||||||
{
|
{
|
||||||
OnFailure.Broadcast(OfficerArray);
|
if (SteamSubsystem != nullptr)
|
||||||
|
{
|
||||||
|
SteamSubsystem->ExecuteNextTick([this]()
|
||||||
|
{
|
||||||
|
TArray<FBPSteamGroupOfficer> FailureArray;
|
||||||
|
OnFailure.Broadcast(FailureArray);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
//OnFailure.Broadcast(OfficerArray);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -78,11 +88,31 @@ void USteamRequestGroupOfficersCallbackProxy::OnRequestGroupOfficerDetails(ClanO
|
|||||||
OfficerArray.Add(Officer);
|
OfficerArray.Add(Officer);
|
||||||
}
|
}
|
||||||
|
|
||||||
OnSuccess.Broadcast(OfficerArray);
|
if (SteamSubsystem != nullptr)
|
||||||
|
{
|
||||||
|
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
|
||||||
|
|
||||||
OnFailure.Broadcast(OfficerArray);
|
// Should never hit this anyway
|
||||||
|
//OnFailure.Broadcast(OfficerArray);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -49,23 +49,51 @@ 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)
|
||||||
{
|
{
|
||||||
OnFailure.Broadcast(FBPSteamWorkshopItemDetails());
|
if (SteamSubsystem != nullptr)
|
||||||
|
{
|
||||||
|
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))
|
||||||
{
|
{
|
||||||
OnSuccess.Broadcast(FBPSteamWorkshopItemDetails(Details));
|
if (SteamSubsystem != nullptr)
|
||||||
|
{
|
||||||
|
SteamSubsystem->ExecuteNextTick([Details, this]()
|
||||||
|
{
|
||||||
|
OnSuccess.Broadcast(FBPSteamWorkshopItemDetails(Details));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
//OnSuccess.Broadcast(FBPSteamWorkshopItemDetails(Details));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (SteamSubsystem != nullptr)
|
||||||
|
{
|
||||||
|
SteamSubsystem->ExecuteNextTick([this]()
|
||||||
|
{
|
||||||
|
OnFailure.Broadcast(FBPSteamWorkshopItemDetails());
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
OnFailure.Broadcast(FBPSteamWorkshopItemDetails());
|
// Not needed, should never hit here
|
||||||
|
//OnFailure.Broadcast(FBPSteamWorkshopItemDetails());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1 +1,7 @@
|
|||||||
Readme and documentation will be worked on soon
|
### How do I use it? ###
|
||||||
|
|
||||||
|
**KantanDocGen Automatic Documentation ([KantanDocGen](http://kantandev.com/free/kantan-doc-gen))**
|
||||||
|
|
||||||
|
**[AdvancedSessions](https://mordentral.bitbucket.io/AdvancedSessions/Advanced)**
|
||||||
|
|
||||||
|
**[AdvancedSteamSessions](https://mordentral.bitbucket.io/AdvancedSteamSessions/Advanced)**
|
||||||
|
|||||||
Reference in New Issue
Block a user