mirror of
https://github.com/mordentral/AdvancedSessionsPlugin.git
synced 2025-10-26 18:04:07 +00:00
Compare commits
3 Commits
4.21_Locke
...
4.20_Locke
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
525e6411a6 | ||
|
|
6b4ac8d00c | ||
|
|
50752d2a95 |
@@ -2,8 +2,8 @@
|
||||
"FileVersion" : 3,
|
||||
|
||||
"FriendlyName" : "Advanced Sessions",
|
||||
"Version" : 4.21,
|
||||
"VersionName": "4.21",
|
||||
"Version" : 4.20,
|
||||
"VersionName": "4.20",
|
||||
"Description" : "Adds new blueprint functions to handle more advanced session operations.",
|
||||
"Category" : "Advanced Sessions Plugin",
|
||||
"CreatedBy" : "Joshua Statzer",
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
"FileVersion" : 3,
|
||||
|
||||
"FriendlyName" : "Advanced Steam Sessions",
|
||||
"Version" : 4.21,
|
||||
"VersionName": "4.21",
|
||||
"Version" : 4.20,
|
||||
"VersionName": "4.20",
|
||||
"Description" : "Adds new blueprint functions to handle more advanced session operations in Steam. REQUIRES ADVANCED SESSIONS",
|
||||
"Category" : "Advanced Sessions Plugin",
|
||||
"CreatedBy" : "Joshua Statzer",
|
||||
|
||||
@@ -197,8 +197,7 @@ public:
|
||||
/** Needed for TMap::GetTypeHash() */
|
||||
friend uint32 GetTypeHash(const FUniqueNetIdSteam2& A)
|
||||
{
|
||||
return GetTypeHash(A.UniqueNetId);
|
||||
//return (uint32)(A.UniqueNetId) + ((uint32)((A.UniqueNetId) >> 32) * 23);
|
||||
return (uint32)(A.UniqueNetId) + ((uint32)((A.UniqueNetId) >> 32) * 23);
|
||||
}
|
||||
|
||||
/** Convenience cast to CSteamID */
|
||||
@@ -336,10 +335,6 @@ public:
|
||||
UFUNCTION(BlueprintPure, Category = "Online|AdvancedFriends|SteamAPI")
|
||||
static FBPUniqueNetId CreateSteamIDFromString(const FString SteamID64);
|
||||
|
||||
// Retreives the local steam ID from steam
|
||||
UFUNCTION(BlueprintPure, Category = "Online|AdvancedFriends|SteamAPI")
|
||||
static FBPUniqueNetId GetLocalSteamIDFromSteam();
|
||||
|
||||
/* Gets the current game played by a friend - AppID is int32 even though steam ids are uint32, can't be helped in blueprint currently
|
||||
* can use the AppID with the WebAPI GetAppList request.
|
||||
*/
|
||||
|
||||
@@ -6,8 +6,6 @@
|
||||
#include "Kismet/BlueprintFunctionLibrary.h"
|
||||
#include "Online.h"
|
||||
#include "OnlineSubsystem.h"
|
||||
#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX
|
||||
#endif
|
||||
#include "Interfaces/OnlineSessionInterface.h"
|
||||
|
||||
// @todo Steam: Steam headers trigger secure-C-runtime warnings in Visual C++. Rather than mess with _CRT_SECURE_NO_WARNINGS, we'll just
|
||||
@@ -24,16 +22,16 @@
|
||||
#pragma push_macro("ARRAY_COUNT")
|
||||
#undef ARRAY_COUNT
|
||||
|
||||
#if USING_CODE_ANALYSIS
|
||||
MSVC_PRAGMA(warning(push))
|
||||
MSVC_PRAGMA(warning(disable : ALL_CODE_ANALYSIS_WARNINGS))
|
||||
#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>
|
||||
|
||||
#if USING_CODE_ANALYSIS
|
||||
MSVC_PRAGMA(warning(pop))
|
||||
#endif // USING_CODE_ANALYSIS
|
||||
#if USING_CODE_ANALYSIS
|
||||
MSVC_PRAGMA(warning(pop))
|
||||
#endif // USING_CODE_ANALYSIS
|
||||
|
||||
|
||||
#pragma pop_macro("ARRAY_COUNT")
|
||||
@@ -205,22 +203,11 @@ struct FBPSteamWorkshopItemDetails
|
||||
GENERATED_USTRUCT_BODY()
|
||||
|
||||
public:
|
||||
|
||||
FBPSteamWorkshopItemDetails()
|
||||
{
|
||||
ResultOfRequest = FBPSteamResult::k_EResultOK;
|
||||
FileType = FBPWorkshopFileType::k_EWorkshopFileTypeMax;
|
||||
CreatorAppID = 0;
|
||||
ConsumerAppID = 0;
|
||||
VotesUp = 0;
|
||||
VotesDown = 0;
|
||||
CalculatedScore = 0.f;
|
||||
bBanned = false;
|
||||
bAcceptedForUse = false;
|
||||
bTagsTruncated = false;
|
||||
|
||||
}
|
||||
|
||||
#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX
|
||||
FBPSteamWorkshopItemDetails(SteamUGCDetails_t &hUGCDetails)
|
||||
{
|
||||
ResultOfRequest = (FBPSteamResult)hUGCDetails.m_eResult;
|
||||
@@ -258,7 +245,6 @@ public:
|
||||
|
||||
CreatorSteamID = FString::Printf(TEXT("%llu"), hUGCDetails.m_ulSteamIDOwner);
|
||||
}
|
||||
#endif
|
||||
|
||||
// Result of obtaining the details
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Online|AdvancedSteamWorkshop")
|
||||
|
||||
@@ -196,21 +196,6 @@ FBPUniqueNetId UAdvancedSteamFriendsLibrary::CreateSteamIDFromString(const FStri
|
||||
return netId;
|
||||
}
|
||||
|
||||
FBPUniqueNetId UAdvancedSteamFriendsLibrary::GetLocalSteamIDFromSteam()
|
||||
{
|
||||
FBPUniqueNetId netId;
|
||||
|
||||
#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX
|
||||
if (SteamAPI_Init())
|
||||
{
|
||||
TSharedPtr<const FUniqueNetId> SteamID(new const FUniqueNetIdSteam2(SteamUser()->GetSteamID()));
|
||||
netId.SetUniqueNetId(SteamID);
|
||||
}
|
||||
#endif
|
||||
|
||||
return netId;
|
||||
}
|
||||
|
||||
bool UAdvancedSteamFriendsLibrary::RequestSteamFriendInfo(const FBPUniqueNetId UniqueNetId, bool bRequireNameOnly)
|
||||
{
|
||||
#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX
|
||||
|
||||
@@ -4,8 +4,6 @@
|
||||
#include "UObject/CoreOnline.h"
|
||||
#include "AdvancedSteamFriendsLibrary.h"
|
||||
#include "OnlineSubSystemHeader.h"
|
||||
#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX
|
||||
#endif
|
||||
//#include "OnlineSubsystemSteamTypes.h"
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
@@ -29,13 +27,13 @@ USteamRequestGroupOfficersCallbackProxy* USteamRequestGroupOfficersCallbackProxy
|
||||
}
|
||||
|
||||
void USteamRequestGroupOfficersCallbackProxy::Activate()
|
||||
{
|
||||
#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX
|
||||
if (SteamAPI_Init())
|
||||
{
|
||||
#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX
|
||||
if (SteamAPI_Init())
|
||||
{
|
||||
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);
|
||||
return;
|
||||
}
|
||||
@@ -44,77 +42,78 @@ void USteamRequestGroupOfficersCallbackProxy::Activate()
|
||||
OnFailure.Broadcast(EmptyArray);
|
||||
}
|
||||
|
||||
#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX
|
||||
void USteamRequestGroupOfficersCallbackProxy::OnRequestGroupOfficerDetails(ClanOfficerListResponse_t *pResult, bool bIOFailure)
|
||||
{
|
||||
TArray<FBPSteamGroupOfficer> OfficerArray;
|
||||
|
||||
FOnlineSubsystemSteam* SteamSubsystem = (FOnlineSubsystemSteam*)(IOnlineSubsystem::Get(STEAM_SUBSYSTEM));
|
||||
|
||||
if (bIOFailure || !pResult || !pResult->m_bSuccess)
|
||||
{
|
||||
void USteamRequestGroupOfficersCallbackProxy::OnRequestGroupOfficerDetails(ClanOfficerListResponse_t *pResult, bool bIOFailure)
|
||||
{
|
||||
TArray<FBPSteamGroupOfficer> OfficerArray;
|
||||
|
||||
#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX
|
||||
|
||||
FOnlineSubsystemSteam* SteamSubsystem = (FOnlineSubsystemSteam*)(IOnlineSubsystem::Get(STEAM_SUBSYSTEM));
|
||||
|
||||
if (bIOFailure || !pResult || !pResult->m_bSuccess)
|
||||
{
|
||||
if (SteamSubsystem != nullptr)
|
||||
{
|
||||
SteamSubsystem->ExecuteNextTick([this]()
|
||||
{
|
||||
TArray<FBPSteamGroupOfficer> FailureArray;
|
||||
OnFailure.Broadcast(FailureArray);
|
||||
});
|
||||
}
|
||||
//OnFailure.Broadcast(OfficerArray);
|
||||
return;
|
||||
}
|
||||
|
||||
if (SteamAPI_Init())
|
||||
{
|
||||
uint64 id = *((uint64*)GroupUniqueID.UniqueNetId->GetBytes());
|
||||
|
||||
FBPSteamGroupOfficer Officer;
|
||||
CSteamID ClanOwner = SteamFriends()->GetClanOwner(id);
|
||||
|
||||
Officer.bIsOwner = true;
|
||||
|
||||
TSharedPtr<const FUniqueNetId> ValueID(new const FUniqueNetIdSteam2(ClanOwner));
|
||||
Officer.OfficerUniqueNetID.SetUniqueNetId(ValueID);
|
||||
OfficerArray.Add(Officer);
|
||||
|
||||
for (int i = 0; i < pResult->m_cOfficers; i++)
|
||||
{
|
||||
CSteamID OfficerSteamID = SteamFriends()->GetClanOfficerByIndex(id, i);
|
||||
|
||||
Officer.bIsOwner = false;
|
||||
|
||||
TSharedPtr<const FUniqueNetId> newValueID(new const FUniqueNetIdSteam2(OfficerSteamID));
|
||||
Officer.OfficerUniqueNetID.SetUniqueNetId(newValueID);
|
||||
|
||||
OfficerArray.Add(Officer);
|
||||
}
|
||||
|
||||
{
|
||||
SteamSubsystem->ExecuteNextTick([this]()
|
||||
{
|
||||
TArray<FBPSteamGroupOfficer> FailureArray;
|
||||
OnFailure.Broadcast(FailureArray);
|
||||
});
|
||||
}
|
||||
//OnFailure.Broadcast(OfficerArray);
|
||||
return;
|
||||
}
|
||||
|
||||
if (SteamAPI_Init())
|
||||
{
|
||||
uint64 id = *((uint64*)GroupUniqueID.UniqueNetId->GetBytes());
|
||||
|
||||
FBPSteamGroupOfficer Officer;
|
||||
CSteamID ClanOwner = SteamFriends()->GetClanOwner(id);
|
||||
|
||||
Officer.bIsOwner = true;
|
||||
|
||||
TSharedPtr<const FUniqueNetId> ValueID(new const FUniqueNetIdSteam2(ClanOwner));
|
||||
Officer.OfficerUniqueNetID.SetUniqueNetId(ValueID);
|
||||
OfficerArray.Add(Officer);
|
||||
|
||||
for (int i = 0; i < pResult->m_cOfficers; i++)
|
||||
{
|
||||
CSteamID OfficerSteamID = SteamFriends()->GetClanOfficerByIndex(id, i);
|
||||
|
||||
Officer.bIsOwner = false;
|
||||
|
||||
TSharedPtr<const FUniqueNetId> newValueID(new const FUniqueNetIdSteam2(OfficerSteamID));
|
||||
Officer.OfficerUniqueNetID.SetUniqueNetId(newValueID);
|
||||
|
||||
OfficerArray.Add(Officer);
|
||||
}
|
||||
|
||||
if (SteamSubsystem != nullptr)
|
||||
{
|
||||
SteamSubsystem->ExecuteNextTick([OfficerArray, this]()
|
||||
{
|
||||
OnSuccess.Broadcast(OfficerArray);
|
||||
});
|
||||
}
|
||||
|
||||
//OnSuccess.Broadcast(OfficerArray);
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
{
|
||||
SteamSubsystem->ExecuteNextTick([OfficerArray, this]()
|
||||
{
|
||||
OnSuccess.Broadcast(OfficerArray);
|
||||
});
|
||||
}
|
||||
|
||||
//OnSuccess.Broadcast(OfficerArray);
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (SteamSubsystem != nullptr)
|
||||
{
|
||||
SteamSubsystem->ExecuteNextTick([this]()
|
||||
{
|
||||
TArray<FBPSteamGroupOfficer> FailureArray;
|
||||
OnFailure.Broadcast(FailureArray);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// Should never hit this anyway
|
||||
//OnFailure.Broadcast(OfficerArray);
|
||||
{
|
||||
SteamSubsystem->ExecuteNextTick([this]()
|
||||
{
|
||||
TArray<FBPSteamGroupOfficer> FailureArray;
|
||||
OnFailure.Broadcast(FailureArray);
|
||||
});
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
// Should never hit this anyway
|
||||
//OnFailure.Broadcast(OfficerArray);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@@ -2,8 +2,6 @@
|
||||
|
||||
#include "SteamWSRequestUGCDetailsCallbackProxy.h"
|
||||
#include "OnlineSubSystemHeader.h"
|
||||
#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX
|
||||
#endif
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// UEndSessionCallbackProxy
|
||||
@@ -23,13 +21,13 @@ USteamWSRequestUGCDetailsCallbackProxy* USteamWSRequestUGCDetailsCallbackProxy::
|
||||
}
|
||||
|
||||
void USteamWSRequestUGCDetailsCallbackProxy::Activate()
|
||||
{
|
||||
#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX
|
||||
if (SteamAPI_Init())
|
||||
{
|
||||
// #TODO: Support arrays instead in the future?
|
||||
UGCQueryHandle_t hQueryHandle = SteamUGC()->CreateQueryUGCDetailsRequest((PublishedFileId_t *)&WorkShopID.SteamWorkshopID, 1);
|
||||
// #TODO: add search settings here by calling into the handle?
|
||||
{
|
||||
#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX
|
||||
if (SteamAPI_Init())
|
||||
{
|
||||
// #TODO: Support arrays instead in the future?
|
||||
UGCQueryHandle_t hQueryHandle = SteamUGC()->CreateQueryUGCDetailsRequest((PublishedFileId_t *)&WorkShopID.SteamWorkshopID, 1);
|
||||
// #TODO: add search settings here by calling into the handle?
|
||||
SteamAPICall_t hSteamAPICall = SteamUGC()->SendQueryUGCRequest(hQueryHandle);
|
||||
|
||||
// Need to release the query
|
||||
@@ -48,53 +46,54 @@ void USteamWSRequestUGCDetailsCallbackProxy::Activate()
|
||||
OnFailure.Broadcast(FBPSteamWorkshopItemDetails());
|
||||
}
|
||||
|
||||
#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX
|
||||
void USteamWSRequestUGCDetailsCallbackProxy::OnUGCRequestUGCDetails(SteamUGCQueryCompleted_t *pResult, bool bIOFailure)
|
||||
{
|
||||
FOnlineSubsystemSteam* SteamSubsystem = (FOnlineSubsystemSteam*)(IOnlineSubsystem::Get(STEAM_SUBSYSTEM));
|
||||
|
||||
if (bIOFailure || !pResult || pResult->m_unNumResultsReturned <= 0)
|
||||
void USteamWSRequestUGCDetailsCallbackProxy::OnUGCRequestUGCDetails(SteamUGCQueryCompleted_t *pResult, bool bIOFailure)
|
||||
{
|
||||
#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX
|
||||
|
||||
FOnlineSubsystemSteam* SteamSubsystem = (FOnlineSubsystemSteam*)(IOnlineSubsystem::Get(STEAM_SUBSYSTEM));
|
||||
|
||||
if (bIOFailure || !pResult || pResult->m_unNumResultsReturned <= 0)
|
||||
{
|
||||
if (SteamSubsystem != nullptr)
|
||||
{
|
||||
SteamSubsystem->ExecuteNextTick([this]()
|
||||
{
|
||||
OnFailure.Broadcast(FBPSteamWorkshopItemDetails());
|
||||
});
|
||||
}
|
||||
//OnFailure.Broadcast(FBPSteamWorkshopItemDetails());
|
||||
return;
|
||||
}
|
||||
if (SteamAPI_Init())
|
||||
{
|
||||
SteamUGCDetails_t Details;
|
||||
if (SteamUGC()->GetQueryUGCResult(pResult->m_handle, 0, &Details))
|
||||
{
|
||||
SteamSubsystem->ExecuteNextTick([this]()
|
||||
{
|
||||
OnFailure.Broadcast(FBPSteamWorkshopItemDetails());
|
||||
});
|
||||
}
|
||||
//OnFailure.Broadcast(FBPSteamWorkshopItemDetails());
|
||||
return;
|
||||
}
|
||||
if (SteamAPI_Init())
|
||||
{
|
||||
SteamUGCDetails_t 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
|
||||
{
|
||||
SteamSubsystem->ExecuteNextTick([Details, this]()
|
||||
{
|
||||
OnSuccess.Broadcast(FBPSteamWorkshopItemDetails(Details));
|
||||
});
|
||||
}
|
||||
|
||||
//OnSuccess.Broadcast(FBPSteamWorkshopItemDetails(Details));
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (SteamSubsystem != nullptr)
|
||||
{
|
||||
SteamSubsystem->ExecuteNextTick([this]()
|
||||
{
|
||||
OnFailure.Broadcast(FBPSteamWorkshopItemDetails());
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// Not needed, should never hit here
|
||||
//OnFailure.Broadcast(FBPSteamWorkshopItemDetails());
|
||||
{
|
||||
SteamSubsystem->ExecuteNextTick([this]()
|
||||
{
|
||||
OnFailure.Broadcast(FBPSteamWorkshopItemDetails());
|
||||
});
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
// Not needed, should never hit here
|
||||
//OnFailure.Broadcast(FBPSteamWorkshopItemDetails());
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user