From b1f94f2e0be89e1cc8cda6e4df3360db109ea1f8 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 18 Nov 2025 15:17:32 +0000 Subject: [PATCH 1/6] Initial plan From 6e8c4f1361ed73f80fb73857a92363bd1e35028f Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 18 Nov 2025 15:27:12 +0000 Subject: [PATCH 2/6] Add ListContexts API endpoint to Server SDK Co-authored-by: kirre-bylund <4068377+kirre-bylund@users.noreply.github.com> --- .../Private/LootLockerServerEndpoints.cpp | 1 + .../LootLockerServerAssetRequest.cpp | 5 ++ .../Public/LootLockerServerEndpoints.h | 1 + .../ServerAPI/LootLockerServerAssetRequest.h | 76 +++++++++++++++++++ 4 files changed, 83 insertions(+) diff --git a/LootLockerServerSDK/Source/LootLockerServerSDK/Private/LootLockerServerEndpoints.cpp b/LootLockerServerSDK/Source/LootLockerServerSDK/Private/LootLockerServerEndpoints.cpp index b231dfc..7672456 100755 --- a/LootLockerServerSDK/Source/LootLockerServerSDK/Private/LootLockerServerEndpoints.cpp +++ b/LootLockerServerSDK/Source/LootLockerServerSDK/Private/LootLockerServerEndpoints.cpp @@ -32,6 +32,7 @@ FLootLockerServerEndPoint ULootLockerServerEndpoints::DeleteLeaderboardSchedule // Assets FLootLockerServerEndPoint ULootLockerServerEndpoints::GetAssets = InitEndpoint("assets", ELootLockerServerHTTPMethod::GET); FLootLockerServerEndPoint ULootLockerServerEndpoints::ListAssets = InitEndpoint("assets/artful-alpaca/v1", ELootLockerServerHTTPMethod::POST); +FLootLockerServerEndPoint ULootLockerServerEndpoints::ListContexts = InitEndpoint("contexts", ELootLockerServerHTTPMethod::GET); // Asset Instances FLootLockerServerEndPoint ULootLockerServerEndpoints::GetAssetInstanceKeyValuePairs = InitEndpoint("player/{0}/assets/instances/{1}/storage", ELootLockerServerHTTPMethod::GET); diff --git a/LootLockerServerSDK/Source/LootLockerServerSDK/Private/ServerAPI/LootLockerServerAssetRequest.cpp b/LootLockerServerSDK/Source/LootLockerServerSDK/Private/ServerAPI/LootLockerServerAssetRequest.cpp index 7a74ebc..cc63e46 100755 --- a/LootLockerServerSDK/Source/LootLockerServerSDK/Private/ServerAPI/LootLockerServerAssetRequest.cpp +++ b/LootLockerServerSDK/Source/LootLockerServerSDK/Private/ServerAPI/LootLockerServerAssetRequest.cpp @@ -65,3 +65,8 @@ void ULootLockerServerAssetRequest::ListAssets(const FLootLockerServerListAssets ULootLockerServerHttpClient::SendRequest(Request, ULootLockerServerEndpoints::ListAssets, {}, QueryParams, OnCompletedRequestBP, OnCompletedRequest); } +void ULootLockerServerAssetRequest::ListContexts(const FLootLockerServerListContextsResponseBP& OnCompletedRequestBP, const FLootLockerServerListContextsResponseDelegate& OnCompletedRequest) +{ + ULootLockerServerHttpClient::SendRequest(FLootLockerServerEmptyRequest{}, ULootLockerServerEndpoints::ListContexts, {}, {}, OnCompletedRequestBP, OnCompletedRequest); +} + diff --git a/LootLockerServerSDK/Source/LootLockerServerSDK/Public/LootLockerServerEndpoints.h b/LootLockerServerSDK/Source/LootLockerServerSDK/Public/LootLockerServerEndpoints.h index d421293..2f98818 100644 --- a/LootLockerServerSDK/Source/LootLockerServerSDK/Public/LootLockerServerEndpoints.h +++ b/LootLockerServerSDK/Source/LootLockerServerSDK/Public/LootLockerServerEndpoints.h @@ -64,6 +64,7 @@ class LOOTLOCKERSERVERSDK_API ULootLockerServerEndpoints : public UObject // Assets static FLootLockerServerEndPoint GetAssets; static FLootLockerServerEndPoint ListAssets; + static FLootLockerServerEndPoint ListContexts; // Asset Instances static FLootLockerServerEndPoint GetAssetInstanceKeyValuePairs; diff --git a/LootLockerServerSDK/Source/LootLockerServerSDK/Public/ServerAPI/LootLockerServerAssetRequest.h b/LootLockerServerSDK/Source/LootLockerServerSDK/Public/ServerAPI/LootLockerServerAssetRequest.h index 2988cfc..d3e4743 100644 --- a/LootLockerServerSDK/Source/LootLockerServerSDK/Public/ServerAPI/LootLockerServerAssetRequest.h +++ b/LootLockerServerSDK/Source/LootLockerServerSDK/Public/ServerAPI/LootLockerServerAssetRequest.h @@ -604,6 +604,59 @@ struct FLootLockerServerSimpleAsset TArray metadata; }; +/** + * Represents a context for organizing assets and inventory + */ +USTRUCT(BlueprintType) +struct FLootLockerServerContext +{ + GENERATED_BODY() + /** + * The unique identifier of the context + */ + UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLockerServer") + int Id = 0; + /** + * The UUID of the context + */ + UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLockerServer") + FString Uuid = ""; + /** + * The name of the context + */ + UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLockerServer") + FString Name = ""; + /** + * The human-friendly name of the context + */ + UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLockerServer") + FString Friendly_name = ""; + /** + * Whether assets in this context can be detached + */ + UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLockerServer") + bool Detachable = false; + /** + * Whether this context is visible to players + */ + UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLockerServer") + bool User_facing = false; + /** + * Optional: The ID of a parent asset if this context is nested + * + * This variable is optional meaning it may or may not exist, which is why it's a string. To get the value from it you should first check if it is valid (for example using .IsNumeric() and then get the value from it (for example using FCString::Atoi) + */ + UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLockerServer") + FString Dependent_asset_id = ""; + /** + * Optional: Maximum number of assets that can be equipped in this context + * + * This variable is optional meaning it may or may not exist, which is why it's a string. To get the value from it you should first check if it is valid (for example using .IsNumeric() and then get the value from it (for example using FCString::Atoi) + */ + UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLockerServer") + FString Max_equip = ""; +}; + //================================================== // Request Definitions //================================================== @@ -734,6 +787,20 @@ struct FLootLockerServerListAssetsResponse : public FLootLockerServerResponse FLootLockerServerExtendedIndexBasedPagination pagination; }; +/** + * Response payload for listing contexts + */ +USTRUCT(BlueprintType) +struct FLootLockerServerListContextsResponse : public FLootLockerServerResponse +{ + GENERATED_BODY() + /* + List of contexts returned for this request + */ + UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLockerServer") + TArray Contexts; +}; + //================================================== // Blueprint Delegate Definitions //================================================== @@ -754,6 +821,10 @@ DECLARE_DYNAMIC_DELEGATE_OneParam(FLootLockerServerAssetInstanceKeyValuePairItem Blueprint response delegate for listing simple assets */ DECLARE_DYNAMIC_DELEGATE_OneParam(FLootLockerServerListAssetsResponseBP, FLootLockerServerListAssetsResponse, Response); +/* + Blueprint response delegate for listing contexts + */ +DECLARE_DYNAMIC_DELEGATE_OneParam(FLootLockerServerListContextsResponseBP, FLootLockerServerListContextsResponse, Response); //================================================== // C++ Delegate Definitions @@ -775,6 +846,10 @@ DECLARE_DELEGATE_OneParam(FLootLockerServerAssetInstanceKeyValuePairItemResponse Blueprint response delegate for listing simple assets */ DECLARE_DELEGATE_OneParam(FLootLockerServerListAssetsResponseDelegate, FLootLockerServerListAssetsResponse); +/* + C++ response delegate for listing contexts + */ +DECLARE_DELEGATE_OneParam(FLootLockerServerListContextsResponseDelegate, FLootLockerServerListContextsResponse); /** * @@ -795,4 +870,5 @@ class LOOTLOCKERSERVERSDK_API ULootLockerServerAssetRequest : public UObject static void UpdateKeyValuePairOnAssetInstanceById(int PlayerID, int AssetInstanceID, int KeyValuePairID, const FString Key, FString Value, const FLootLockerServerAssetInstanceKeyValuePairItemResponseBP& OnCompletedRequestBP = FLootLockerServerAssetInstanceKeyValuePairItemResponseBP(), const FLootLockerServerAssetInstanceKeyValuePairItemResponseDelegate& OnCompletedRequest = FLootLockerServerAssetInstanceKeyValuePairItemResponseDelegate()); static void DeleteKeyValuePairFromAssetInstanceById(int PlayerID, int AssetInstanceID, int KeyValuePairID, const FLootLockerServerAssetInstanceKeyValuePairsListResponseBP& OnCompletedRequestBP = FLootLockerServerAssetInstanceKeyValuePairsListResponseBP(), const FLootLockerServerAssetInstanceKeyValuePairsListResponseDelegate& OnCompletedRequest = FLootLockerServerAssetInstanceKeyValuePairsListResponseDelegate()); static void ListAssets(const FLootLockerServerListAssetsRequest& Request, int PerPage = 0, int Page = 0, const FLootLockerServerListAssetsResponseBP& OnCompletedRequestBP = FLootLockerServerListAssetsResponseBP(), const FLootLockerServerListAssetsResponseDelegate& OnCompletedRequest = FLootLockerServerListAssetsResponseDelegate()); + static void ListContexts(const FLootLockerServerListContextsResponseBP& OnCompletedRequestBP = FLootLockerServerListContextsResponseBP(), const FLootLockerServerListContextsResponseDelegate& OnCompletedRequest = FLootLockerServerListContextsResponseDelegate()); }; From bfc6b51ca68d787cbb10fae6216bcf9e34b96c0f Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 18 Nov 2025 15:28:50 +0000 Subject: [PATCH 3/6] Implementation complete - ListContexts added Co-authored-by: kirre-bylund <4068377+kirre-bylund@users.noreply.github.com> --- _codeql_detected_source_root | 1 + 1 file changed, 1 insertion(+) create mode 120000 _codeql_detected_source_root diff --git a/_codeql_detected_source_root b/_codeql_detected_source_root new file mode 120000 index 0000000..945c9b4 --- /dev/null +++ b/_codeql_detected_source_root @@ -0,0 +1 @@ +. \ No newline at end of file From 830f55a6f4c27f1e0372bb203b39cc7abb95e7a2 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 18 Nov 2025 15:29:16 +0000 Subject: [PATCH 4/6] Remove CodeQL artifact --- _codeql_detected_source_root | 1 - 1 file changed, 1 deletion(-) delete mode 120000 _codeql_detected_source_root diff --git a/_codeql_detected_source_root b/_codeql_detected_source_root deleted file mode 120000 index 945c9b4..0000000 --- a/_codeql_detected_source_root +++ /dev/null @@ -1 +0,0 @@ -. \ No newline at end of file From 8eb9289feb95cb4079941669f2c880a35eff5701 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 20 Nov 2025 11:34:42 +0000 Subject: [PATCH 5/6] Fix ListContexts implementation based on API spec Co-authored-by: kirre-bylund <4068377+kirre-bylund@users.noreply.github.com> --- .../Private/LootLockerServerEndpoints.cpp | 2 +- .../Private/LootLockerServerForBlueprints.cpp | 5 +++ .../Private/LootLockerServerForCpp.cpp | 5 +++ .../LootLockerServerAssetRequest.cpp | 7 +++- .../Public/LootLockerServerForBlueprints.h | 11 +++++ .../Public/LootLockerServerForCpp.h | 10 +++++ .../ServerAPI/LootLockerServerAssetRequest.h | 42 ++++--------------- 7 files changed, 46 insertions(+), 36 deletions(-) diff --git a/LootLockerServerSDK/Source/LootLockerServerSDK/Private/LootLockerServerEndpoints.cpp b/LootLockerServerSDK/Source/LootLockerServerSDK/Private/LootLockerServerEndpoints.cpp index 7672456..eccf699 100755 --- a/LootLockerServerSDK/Source/LootLockerServerSDK/Private/LootLockerServerEndpoints.cpp +++ b/LootLockerServerSDK/Source/LootLockerServerSDK/Private/LootLockerServerEndpoints.cpp @@ -32,7 +32,7 @@ FLootLockerServerEndPoint ULootLockerServerEndpoints::DeleteLeaderboardSchedule // Assets FLootLockerServerEndPoint ULootLockerServerEndpoints::GetAssets = InitEndpoint("assets", ELootLockerServerHTTPMethod::GET); FLootLockerServerEndPoint ULootLockerServerEndpoints::ListAssets = InitEndpoint("assets/artful-alpaca/v1", ELootLockerServerHTTPMethod::POST); -FLootLockerServerEndPoint ULootLockerServerEndpoints::ListContexts = InitEndpoint("contexts", ELootLockerServerHTTPMethod::GET); +FLootLockerServerEndPoint ULootLockerServerEndpoints::ListContexts = InitEndpoint("contexts/v1", ELootLockerServerHTTPMethod::GET); // Asset Instances FLootLockerServerEndPoint ULootLockerServerEndpoints::GetAssetInstanceKeyValuePairs = InitEndpoint("player/{0}/assets/instances/{1}/storage", ELootLockerServerHTTPMethod::GET); diff --git a/LootLockerServerSDK/Source/LootLockerServerSDK/Private/LootLockerServerForBlueprints.cpp b/LootLockerServerSDK/Source/LootLockerServerSDK/Private/LootLockerServerForBlueprints.cpp index 92f048d..6805986 100755 --- a/LootLockerServerSDK/Source/LootLockerServerSDK/Private/LootLockerServerForBlueprints.cpp +++ b/LootLockerServerSDK/Source/LootLockerServerSDK/Private/LootLockerServerForBlueprints.cpp @@ -345,6 +345,11 @@ void ULootLockerServerForBlueprints::ListAssetsWithDefaultParameters(const FLoot ListAssets(FLootLockerServerListAssetsRequest(), 0, 0, OnCompletedRequest); } +void ULootLockerServerForBlueprints::ListContexts(int PerPage, int Page, const FLootLockerServerListContextsResponseBP& OnCompletedRequest) +{ + ULootLockerServerAssetRequest::ListContexts(PerPage, Page, OnCompletedRequest); +} + // Asset Instances void ULootLockerServerForBlueprints::GetKeyValuePairsFromAssetInstance(int PlayerID, int AssetInstanceID, const FLootLockerServerAssetInstanceKeyValuePairsListResponseBP& OnCompletedRequest) { diff --git a/LootLockerServerSDK/Source/LootLockerServerSDK/Private/LootLockerServerForCpp.cpp b/LootLockerServerSDK/Source/LootLockerServerSDK/Private/LootLockerServerForCpp.cpp index fbab696..e60ae24 100755 --- a/LootLockerServerSDK/Source/LootLockerServerSDK/Private/LootLockerServerForCpp.cpp +++ b/LootLockerServerSDK/Source/LootLockerServerSDK/Private/LootLockerServerForCpp.cpp @@ -345,6 +345,11 @@ void ULootLockerServerForCpp::ListAssetsWithDefaultParameters(const FLootLockerS ListAssets(FLootLockerServerListAssetsRequest(), 0, 0, OnCompletedRequest); } +void ULootLockerServerForCpp::ListContexts(int PerPage, int Page, const FLootLockerServerListContextsResponseDelegate& OnCompletedRequest) +{ + ULootLockerServerAssetRequest::ListContexts(PerPage, Page, FLootLockerServerListContextsResponseBP(), OnCompletedRequest); +} + // Asset Instances void ULootLockerServerForCpp::GetKeyValuePairsFromAssetInstance(int PlayerID, int AssetInstanceID, const FLootLockerServerAssetInstanceKeyValuePairsListResponseDelegate& OnCompletedRequest) { diff --git a/LootLockerServerSDK/Source/LootLockerServerSDK/Private/ServerAPI/LootLockerServerAssetRequest.cpp b/LootLockerServerSDK/Source/LootLockerServerSDK/Private/ServerAPI/LootLockerServerAssetRequest.cpp index cc63e46..da56144 100755 --- a/LootLockerServerSDK/Source/LootLockerServerSDK/Private/ServerAPI/LootLockerServerAssetRequest.cpp +++ b/LootLockerServerSDK/Source/LootLockerServerSDK/Private/ServerAPI/LootLockerServerAssetRequest.cpp @@ -65,8 +65,11 @@ void ULootLockerServerAssetRequest::ListAssets(const FLootLockerServerListAssets ULootLockerServerHttpClient::SendRequest(Request, ULootLockerServerEndpoints::ListAssets, {}, QueryParams, OnCompletedRequestBP, OnCompletedRequest); } -void ULootLockerServerAssetRequest::ListContexts(const FLootLockerServerListContextsResponseBP& OnCompletedRequestBP, const FLootLockerServerListContextsResponseDelegate& OnCompletedRequest) +void ULootLockerServerAssetRequest::ListContexts(int PerPage, int Page, const FLootLockerServerListContextsResponseBP& OnCompletedRequestBP, const FLootLockerServerListContextsResponseDelegate& OnCompletedRequest) { - ULootLockerServerHttpClient::SendRequest(FLootLockerServerEmptyRequest{}, ULootLockerServerEndpoints::ListContexts, {}, {}, OnCompletedRequestBP, OnCompletedRequest); + TMultiMap QueryParams; + if(Page > 0) QueryParams.Add("page", FString::FromInt(Page)); + if(PerPage > 0) QueryParams.Add("per_page", FString::FromInt(PerPage)); + ULootLockerServerHttpClient::SendRequest(FLootLockerServerEmptyRequest{}, ULootLockerServerEndpoints::ListContexts, {}, QueryParams, OnCompletedRequestBP, OnCompletedRequest); } diff --git a/LootLockerServerSDK/Source/LootLockerServerSDK/Public/LootLockerServerForBlueprints.h b/LootLockerServerSDK/Source/LootLockerServerSDK/Public/LootLockerServerForBlueprints.h index ad2659f..774641c 100755 --- a/LootLockerServerSDK/Source/LootLockerServerSDK/Public/LootLockerServerForBlueprints.h +++ b/LootLockerServerSDK/Source/LootLockerServerSDK/Public/LootLockerServerForBlueprints.h @@ -799,6 +799,17 @@ class LOOTLOCKERSERVERSDK_API ULootLockerServerForBlueprints : public UObject UFUNCTION(BlueprintCallable, Category = "LootLockerServer Methods | Assets") static void ListAssetsWithDefaultParameters(const FLootLockerServerListAssetsResponseBP& OnCompletedRequest); + /** + * List contexts with pagination support + * https://ref.lootlocker.com/server/assets/list-contexts + * + * @param PerPage Optional: page size (ignored if 0 or negative) + * @param Page Optional: page index (ignored if 0 or negative) + * @param OnCompletedRequest Delegate for handling the server response + */ + UFUNCTION(BlueprintCallable, Category = "LootLockerServer Methods | Assets", meta=(AdvancedDisplay="PerPage,Page", PerPage=-1, Page=-1)) + static void ListContexts(int PerPage, int Page, const FLootLockerServerListContextsResponseBP& OnCompletedRequest); + //================================================== // Asset Instances https://ref.lootlocker.com/server-api/#asset-instances //================================================== diff --git a/LootLockerServerSDK/Source/LootLockerServerSDK/Public/LootLockerServerForCpp.h b/LootLockerServerSDK/Source/LootLockerServerSDK/Public/LootLockerServerForCpp.h index 75b4eeb..6fd2343 100755 --- a/LootLockerServerSDK/Source/LootLockerServerSDK/Public/LootLockerServerForCpp.h +++ b/LootLockerServerSDK/Source/LootLockerServerSDK/Public/LootLockerServerForCpp.h @@ -135,6 +135,16 @@ class LOOTLOCKERSERVERSDK_API ULootLockerServerForCpp : public UObject */ static void ListAssetsWithDefaultParameters(const FLootLockerServerListAssetsResponseDelegate& OnCompletedRequest); + /** + * List contexts with pagination support + * https://ref.lootlocker.com/server/assets/list-contexts + * + * @param PerPage Optional: page size (ignored if 0 or negative) + * @param Page Optional: page index (ignored if 0 or negative) + * @param OnCompletedRequest Delegate for handling the server response + */ + static void ListContexts(int PerPage, int Page, const FLootLockerServerListContextsResponseDelegate& OnCompletedRequest); + /** * Update an existing leaderboard with the provided details. * https://ref.lootlocker.com/server-api/#update-leaderboard diff --git a/LootLockerServerSDK/Source/LootLockerServerSDK/Public/ServerAPI/LootLockerServerAssetRequest.h b/LootLockerServerSDK/Source/LootLockerServerSDK/Public/ServerAPI/LootLockerServerAssetRequest.h index d3e4743..c4ec71a 100644 --- a/LootLockerServerSDK/Source/LootLockerServerSDK/Public/ServerAPI/LootLockerServerAssetRequest.h +++ b/LootLockerServerSDK/Source/LootLockerServerSDK/Public/ServerAPI/LootLockerServerAssetRequest.h @@ -612,49 +612,20 @@ struct FLootLockerServerContext { GENERATED_BODY() /** - * The unique identifier of the context + * Integer ID of the context */ UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLockerServer") int Id = 0; /** - * The UUID of the context + * Context UUID */ UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLockerServer") FString Uuid = ""; /** - * The name of the context + * Context Name */ UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLockerServer") FString Name = ""; - /** - * The human-friendly name of the context - */ - UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLockerServer") - FString Friendly_name = ""; - /** - * Whether assets in this context can be detached - */ - UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLockerServer") - bool Detachable = false; - /** - * Whether this context is visible to players - */ - UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLockerServer") - bool User_facing = false; - /** - * Optional: The ID of a parent asset if this context is nested - * - * This variable is optional meaning it may or may not exist, which is why it's a string. To get the value from it you should first check if it is valid (for example using .IsNumeric() and then get the value from it (for example using FCString::Atoi) - */ - UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLockerServer") - FString Dependent_asset_id = ""; - /** - * Optional: Maximum number of assets that can be equipped in this context - * - * This variable is optional meaning it may or may not exist, which is why it's a string. To get the value from it you should first check if it is valid (for example using .IsNumeric() and then get the value from it (for example using FCString::Atoi) - */ - UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLockerServer") - FString Max_equip = ""; }; //================================================== @@ -799,6 +770,11 @@ struct FLootLockerServerListContextsResponse : public FLootLockerServerResponse */ UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLockerServer") TArray Contexts; + /* + Pagination information for the returned context list + */ + UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLockerServer") + FLootLockerServerExtendedIndexBasedPagination Pagination; }; //================================================== @@ -870,5 +846,5 @@ class LOOTLOCKERSERVERSDK_API ULootLockerServerAssetRequest : public UObject static void UpdateKeyValuePairOnAssetInstanceById(int PlayerID, int AssetInstanceID, int KeyValuePairID, const FString Key, FString Value, const FLootLockerServerAssetInstanceKeyValuePairItemResponseBP& OnCompletedRequestBP = FLootLockerServerAssetInstanceKeyValuePairItemResponseBP(), const FLootLockerServerAssetInstanceKeyValuePairItemResponseDelegate& OnCompletedRequest = FLootLockerServerAssetInstanceKeyValuePairItemResponseDelegate()); static void DeleteKeyValuePairFromAssetInstanceById(int PlayerID, int AssetInstanceID, int KeyValuePairID, const FLootLockerServerAssetInstanceKeyValuePairsListResponseBP& OnCompletedRequestBP = FLootLockerServerAssetInstanceKeyValuePairsListResponseBP(), const FLootLockerServerAssetInstanceKeyValuePairsListResponseDelegate& OnCompletedRequest = FLootLockerServerAssetInstanceKeyValuePairsListResponseDelegate()); static void ListAssets(const FLootLockerServerListAssetsRequest& Request, int PerPage = 0, int Page = 0, const FLootLockerServerListAssetsResponseBP& OnCompletedRequestBP = FLootLockerServerListAssetsResponseBP(), const FLootLockerServerListAssetsResponseDelegate& OnCompletedRequest = FLootLockerServerListAssetsResponseDelegate()); - static void ListContexts(const FLootLockerServerListContextsResponseBP& OnCompletedRequestBP = FLootLockerServerListContextsResponseBP(), const FLootLockerServerListContextsResponseDelegate& OnCompletedRequest = FLootLockerServerListContextsResponseDelegate()); + static void ListContexts(int PerPage = 0, int Page = 0, const FLootLockerServerListContextsResponseBP& OnCompletedRequestBP = FLootLockerServerListContextsResponseBP(), const FLootLockerServerListContextsResponseDelegate& OnCompletedRequest = FLootLockerServerListContextsResponseDelegate()); }; From c38bdc6b66a47362663d5a99ef844b13ced48582 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 20 Nov 2025 11:57:51 +0000 Subject: [PATCH 6/6] Remove documentation URL from ListContexts comments Co-authored-by: kirre-bylund <4068377+kirre-bylund@users.noreply.github.com> --- .../LootLockerServerSDK/Public/LootLockerServerForBlueprints.h | 1 - .../Source/LootLockerServerSDK/Public/LootLockerServerForCpp.h | 1 - 2 files changed, 2 deletions(-) diff --git a/LootLockerServerSDK/Source/LootLockerServerSDK/Public/LootLockerServerForBlueprints.h b/LootLockerServerSDK/Source/LootLockerServerSDK/Public/LootLockerServerForBlueprints.h index 774641c..1b7664a 100755 --- a/LootLockerServerSDK/Source/LootLockerServerSDK/Public/LootLockerServerForBlueprints.h +++ b/LootLockerServerSDK/Source/LootLockerServerSDK/Public/LootLockerServerForBlueprints.h @@ -801,7 +801,6 @@ class LOOTLOCKERSERVERSDK_API ULootLockerServerForBlueprints : public UObject /** * List contexts with pagination support - * https://ref.lootlocker.com/server/assets/list-contexts * * @param PerPage Optional: page size (ignored if 0 or negative) * @param Page Optional: page index (ignored if 0 or negative) diff --git a/LootLockerServerSDK/Source/LootLockerServerSDK/Public/LootLockerServerForCpp.h b/LootLockerServerSDK/Source/LootLockerServerSDK/Public/LootLockerServerForCpp.h index 6fd2343..c4f2923 100755 --- a/LootLockerServerSDK/Source/LootLockerServerSDK/Public/LootLockerServerForCpp.h +++ b/LootLockerServerSDK/Source/LootLockerServerSDK/Public/LootLockerServerForCpp.h @@ -137,7 +137,6 @@ class LOOTLOCKERSERVERSDK_API ULootLockerServerForCpp : public UObject /** * List contexts with pagination support - * https://ref.lootlocker.com/server/assets/list-contexts * * @param PerPage Optional: page size (ignored if 0 or negative) * @param Page Optional: page index (ignored if 0 or negative)