Skip to content

Commit 33a8ed1

Browse files
Updated from pipeline, Version : 16.0.0
1 parent ac7d9c1 commit 33a8ed1

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+1962
-566
lines changed

.variables

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1+
export DO_UPDATE=true
12
export LEVEL=CRITICAL
23
export REPO_NAME=justice-unreal-sdk-plugin
3-
export WORKDIR=/tmp/pipelines/2818896385/605678314/
4-
export COMMIT_HASH=23084dc540856dfd8dd5c505bb483feb855e8b07
5-
export GIT_HASH=23084dc540856dfd8dd5c505bb483feb855e8b07
6-
export VERSION=15.1.2
7-
export REVISION_ID=15.1.2
4+
export WORKDIR=/tmp/pipelines/2883005750/613389522/
5+
export COMMIT_HASH=0c1003451e89a95c73304f0ba3c3d825351290fc
6+
export GIT_HASH=0c1003451e89a95c73304f0ba3c3d825351290fc
7+
export VERSION=16.0.0
8+
export REVISION_ID=16.0.0
89
9-
export COMMIT_MESSAGE_BASE64='Y2hvcmUocmVsZWFzZSk6IDE1LjEuMiAtIGNvbW1pdGVkIGFuZCB0YWdnZWQgYnkgSmVua2lucwo='
10+
export COMMIT_MESSAGE_BASE64='Y2hvcmUocmVsZWFzZSk6IDE2LjAuMCAtIGNvbW1pdGVkIGFuZCB0YWdnZWQgYnkgSmVua2lucwo='

CHANGELOG.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,44 @@
22

33
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
44

5+
## [16.0.0](https://bitbucket.org/accelbyte/justice-unreal-sdk-plugin/branches/compare/16.0.0%0D15.1.2) (2022-08-15)
6+
7+
8+
### ⚠ BREAKING CHANGES
9+
10+
* group API models change affect function signature
11+
12+
### Features
13+
14+
* adjust code to following new method ([a4cdf85](https://bitbucket.org/accelbyte/justice-unreal-sdk-plugin/commits/a4cdf8545f9664631c1e95b54a79acd81a669871))
15+
* adjust the code and bring back the code that made some test error ([b71ca6f](https://bitbucket.org/accelbyte/justice-unreal-sdk-plugin/commits/b71ca6fd6aa0834170cbb3d8dc27582b1edf2cbe))
16+
* **blueprints:** add utilities class ([2104ba6](https://bitbucket.org/accelbyte/justice-unreal-sdk-plugin/commits/2104ba611be1a08be68c26b32896fe78280be4d6))
17+
* **blueprints:** add utilities to get and modify fjsonobjectwrapper ([24ff88e](https://bitbucket.org/accelbyte/justice-unreal-sdk-plugin/commits/24ff88e4590ec9605bd937b14ada944809e02d75))
18+
* changed a value on struct related statistic end point to floating number type ([0497802](https://bitbucket.org/accelbyte/justice-unreal-sdk-plugin/commits/04978025862f9eae474726eb082047e41bca9091))
19+
* expose statistic v2 endpoints ([0a70ae7](https://bitbucket.org/accelbyte/justice-unreal-sdk-plugin/commits/0a70ae7dd27a87904ee54f2d4f6dcf7d16a8f269))
20+
* expose store Id and list public store ([5e18dce](https://bitbucket.org/accelbyte/justice-unreal-sdk-plugin/commits/5e18dce082e0317f3d424a6934e52d35e9a0631f))
21+
* fixed typo and comments, wrong param and some struct ([c897cc1](https://bitbucket.org/accelbyte/justice-unreal-sdk-plugin/commits/c897cc1ddfc5897dc881d0516e61dd43604e1bb0))
22+
* **iam:** EA Origin Authentication Integration ([63e92f6](https://bitbucket.org/accelbyte/justice-unreal-sdk-plugin/commits/63e92f6a06da7e412b56c384aacd588763ccb501))
23+
* **item:** get Item Dynamic Data ([ae7ad68](https://bitbucket.org/accelbyte/justice-unreal-sdk-plugin/commits/ae7ad6855c221c1e0e801e01030d0d44f1d3c9dd))
24+
* New item type for get items like method, option box config. New API call method, get entitlement ownership by item ids. OPTIONBOX ItemType. ([42873cc](https://bitbucket.org/accelbyte/justice-unreal-sdk-plugin/commits/42873ccfb0f0633bb8b9c7b99ad07c280fbb015b))
25+
* **party:** add party connect, and disconnect notification ([a6200a2](https://bitbucket.org/accelbyte/justice-unreal-sdk-plugin/commits/a6200a200d999ee1ad113147269e16a81c7d3e2b))
26+
* Purchasing Requirements ([649841b](https://bitbucket.org/accelbyte/justice-unreal-sdk-plugin/commits/649841b955028592a4ffa71002fbc3b70fb94530))
27+
* **qos:** get ping timeout from GConfig ([fc8c79f](https://bitbucket.org/accelbyte/justice-unreal-sdk-plugin/commits/fc8c79f79a6c5769d612af9286e7c641751388b5))
28+
* **qos:** reduce udpecho timeout from 10s to 0.6s ([d549bfa](https://bitbucket.org/accelbyte/justice-unreal-sdk-plugin/commits/d549bfad3e3c5bbac8aacb30622668ba4234b5b4))
29+
* SDK Implementation for UGC service - "like' a content ([8b5c6c1](https://bitbucket.org/accelbyte/justice-unreal-sdk-plugin/commits/8b5c6c100933472e9cde20fe8ed284a74bf9552b))
30+
* **sessionbrowser:** add get game sessions by user ids ([6a21472](https://bitbucket.org/accelbyte/justice-unreal-sdk-plugin/commits/6a2147283a97e206dd97474d6896695e2f130f38))
31+
* support searching entitlement by feature ([d66fc9e](https://bitbucket.org/accelbyte/justice-unreal-sdk-plugin/commits/d66fc9ec6d333403a2e3d65ff86a53d94865f0dc))
32+
33+
34+
### Bug Fixes
35+
36+
* Group blueprint function, JSON request creation, Group Member Roles model ([5aea352](https://bitbucket.org/accelbyte/justice-unreal-sdk-plugin/commits/5aea3523de59a4f4c3245bd7825af45e16c9b2a3))
37+
* **party:** change all all function, delegate or variable by using PartyMember. Also adding some description on the function. ([856337b](https://bitbucket.org/accelbyte/justice-unreal-sdk-plugin/commits/856337bc3e2fdf50d5afd7ec81ed7481ad1b7b33))
38+
* **party:** fix typo on partyMemberLeaveNotice and FPartyMemberDisconnectNotif ([01c3a2b](https://bitbucket.org/accelbyte/justice-unreal-sdk-plugin/commits/01c3a2b808a4bc4ddde5d461ab3db0eefbf6b1c1))
39+
* **party:** Set Deprecation Variable, Function, and Delegate for PartyLeaveNotif. ([72283eb](https://bitbucket.org/accelbyte/justice-unreal-sdk-plugin/commits/72283eb57dac1ac7c0904080689f6953bfbe436a))
40+
* SortBy in GetItemByCriteria and UrlEncoded in Query Param Array ([3a15458](https://bitbucket.org/accelbyte/justice-unreal-sdk-plugin/commits/3a1545846e21f7badd09434a024681cb38116021))
41+
* **statistic:** wrong query params in GetUserStatItems ([b5a1395](https://bitbucket.org/accelbyte/justice-unreal-sdk-plugin/commits/b5a139579e9e6a0abacda2f16b5f095539676758))
42+
543
### [15.1.2](https://bitbucket.org/accelbyte/justice-unreal-sdk-plugin/branches/compare/15.1.2%0D15.1.1) (2022-08-05)
644

745

Content/CompatibilityMap.json

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,58 +1,58 @@
11
{
22
"iam": {
3-
"minVersion": "5.14.0",
4-
"maxVersion": "5.14.0"
3+
"minVersion": "5.15.0",
4+
"maxVersion": "5.15.0"
55
},
66
"agreement": {
7-
"minVersion": "1.22.4",
8-
"maxVersion": "1.22.4"
7+
"minVersion": "1.22.5",
8+
"maxVersion": "1.22.5"
99
},
1010
"basic": {
11-
"minVersion": "2.1.1",
12-
"maxVersion": "2.1.1"
11+
"minVersion": "2.1.2",
12+
"maxVersion": "2.1.2"
1313
},
1414
"platform": {
15-
"minVersion": "4.12.1",
16-
"maxVersion": "4.12.1"
15+
"minVersion": "4.13.0",
16+
"maxVersion": "4.13.0"
1717
},
1818
"social": {
19-
"minVersion": "1.29.3",
20-
"maxVersion": "1.29.3"
19+
"minVersion": "1.29.4",
20+
"maxVersion": "1.29.4"
2121
},
2222
"leaderboard": {
23-
"minVersion": "2.15.6",
24-
"maxVersion": "2.15.6"
23+
"minVersion": "2.15.7",
24+
"maxVersion": "2.15.7"
2525
},
2626
"achievement": {
27-
"minVersion": "2.10.8",
28-
"maxVersion": "2.10.8"
27+
"minVersion": "2.10.9",
28+
"maxVersion": "2.10.9"
2929
},
3030
"cloudsave": {
31-
"minVersion": "3.1.2",
32-
"maxVersion": "3.1.2"
31+
"minVersion": "3.1.3",
32+
"maxVersion": "3.1.3"
3333
},
3434
"ugc": {
35-
"minVersion": "2.4.0",
36-
"maxVersion": "2.4.0"
35+
"minVersion": "2.5.0",
36+
"maxVersion": "2.5.0"
3737
},
3838
"lobby": {
39-
"minVersion": "3.11.3",
40-
"maxVersion": "3.11.3"
39+
"minVersion": "3.11.5",
40+
"maxVersion": "3.11.5"
4141
},
4242
"group": {
43-
"minVersion": "2.11.6",
44-
"maxVersion": "2.11.6"
43+
"minVersion": "2.11.7",
44+
"maxVersion": "2.11.7"
4545
},
4646
"qosm": {
47-
"minVersion": "1.14.3",
48-
"maxVersion": "1.14.3"
47+
"minVersion": "1.14.4",
48+
"maxVersion": "1.14.4"
4949
},
5050
"dsmcontroller": {
51-
"minVersion": "3.4.1",
52-
"maxVersion": "3.4.1"
51+
"minVersion": "3.5.0",
52+
"maxVersion": "3.5.0"
5353
},
5454
"game-telemetry": {
55-
"minVersion": "1.8.0",
56-
"maxVersion": "1.8.0"
55+
"minVersion": "1.8.1",
56+
"maxVersion": "1.8.1"
5757
}
5858
}

Source/AccelByteUe4Sdk/Private/Api/AccelByteEntitlementApi.cpp

Lines changed: 79 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -27,89 +27,42 @@ Entitlement::Entitlement(Credentials const& InCredentialsRef
2727

2828
Entitlement::~Entitlement(){}
2929

30-
void Entitlement::QueryUserEntitlements(FString const& EntitlementName, FString const& ItemId, int32 const& Offset, int32 const& Limit, THandler<FAccelByteModelsEntitlementPagingSlicedResult> const& OnSuccess, FErrorHandler const& OnError, EAccelByteEntitlementClass EntitlementClass = EAccelByteEntitlementClass::NONE, EAccelByteAppType AppType = EAccelByteAppType::NONE )
30+
void Entitlement::QueryUserEntitlements(FString const& EntitlementName, FString const& ItemId, int32 const& Offset, int32 const& Limit, THandler<FAccelByteModelsEntitlementPagingSlicedResult> const& OnSuccess, FErrorHandler const& OnError, EAccelByteEntitlementClass EntitlementClass = EAccelByteEntitlementClass::NONE, EAccelByteAppType AppType = EAccelByteAppType::NONE, TArray<FString> const& Features)
3131
{
3232
FReport::Log(FString(__FUNCTION__));
3333

34-
FString Url = FString::Printf(TEXT("%s/public/namespaces/%s/users/%s/entitlements"), *SettingsRef.PlatformServerUrl, *CredentialsRef.GetNamespace(), *CredentialsRef.GetUserId());
34+
TArray<FString> ItemIdsArray = { ItemId };
35+
QueryUserEntitlements(EntitlementName, ItemIdsArray, Offset, Limit, OnSuccess, OnError, EntitlementClass, AppType, Features);
3536

36-
TMap<FString, FString> QueryParams;
37-
if (!EntitlementName.IsEmpty())
38-
{
39-
QueryParams.Add("entitlementName", *EntitlementName);
40-
}
41-
if (!ItemId.IsEmpty())
42-
{
43-
QueryParams.Add("itemId", *ItemId);
44-
}
45-
if (Offset>=0)
46-
{
47-
QueryParams.Add("offset", FString::FromInt(Offset));
48-
}
49-
if (Limit>=0)
50-
{
51-
QueryParams.Add("limit", FString::FromInt(Limit));
52-
}
53-
if (EntitlementClass != EAccelByteEntitlementClass::NONE)
54-
{
55-
QueryParams.Add("entitlementClazz", *FindObject<UEnum>(ANY_PACKAGE, TEXT("EAccelByteEntitlementClass"), true)->GetNameStringByValue((int32)EntitlementClass));
56-
}
57-
if (AppType != EAccelByteAppType::NONE)
58-
{
59-
QueryParams.Add("appType", *FindObject<UEnum>(ANY_PACKAGE, TEXT("EAccelByteAppType"), true)->GetNameStringByValue((int32)AppType));
60-
}
61-
62-
HttpClient.ApiRequest("GET", Url, QueryParams, FString(), OnSuccess, OnError);
6337
}
6438

65-
void Entitlement::QueryUserEntitlements(
39+
void Entitlement::QueryUserEntitlements(
6640
FString const& EntitlementName,
6741
TArray<FString> const& ItemIds,
6842
int32 const& Offset,
6943
int32 const& Limit,
7044
THandler<FAccelByteModelsEntitlementPagingSlicedResult> const& OnSuccess,
71-
FErrorHandler const& OnError, EAccelByteEntitlementClass EntitlementClass, EAccelByteAppType AppType)
72-
{
45+
FErrorHandler const& OnError, EAccelByteEntitlementClass EntitlementClass, EAccelByteAppType AppType,
46+
TArray<FString> const& Features)
47+
{
48+
7349
FReport::Log(FString(__FUNCTION__));
7450

75-
FString Url = FString::Printf(TEXT("%s/public/namespaces/%s/users/%s/entitlements"), *SettingsRef.PlatformServerUrl, *CredentialsRef.GetNamespace(), *CredentialsRef.GetUserId());
76-
FString Query = TEXT("");
77-
if (!EntitlementName.IsEmpty())
78-
{
79-
Query.Append(Query.IsEmpty() ? TEXT("") : TEXT("&"));
80-
Query.Append(FString::Printf(TEXT("entitlementName=%s"), *EntitlementName));
81-
}
82-
for (FString const& ItemId : ItemIds)
83-
{
84-
if (!ItemId.IsEmpty())
85-
{
86-
Query.Append(Query.IsEmpty() ? TEXT("") : TEXT("&"));
87-
Query.Append(FString::Printf(TEXT("itemId=%s"), *ItemId));
88-
}
89-
}
90-
if (Offset>=0)
91-
{
92-
Query.Append(Query.IsEmpty() ? TEXT("") : TEXT("&"));
93-
Query.Append(FString::Printf(TEXT("offset=%d"), Offset));
94-
}
95-
if (Limit>=0)
96-
{
97-
Query.Append(Query.IsEmpty() ? TEXT("") : TEXT("&"));
98-
Query.Append(FString::Printf(TEXT("limit=%d"), Limit));
99-
}
100-
if (EntitlementClass != EAccelByteEntitlementClass::NONE)
101-
{
102-
Query.Append(Query.IsEmpty() ? TEXT("") : TEXT("&"));
103-
Query.Append(FString::Printf(TEXT("entitlementClazz=%s"), *FindObject<UEnum>(ANY_PACKAGE, TEXT("EAccelByteEntitlementClass"), true)->GetNameStringByValue((int32)EntitlementClass)));
104-
}
105-
if (AppType != EAccelByteAppType::NONE)
106-
{
107-
Query.Append(Query.IsEmpty() ? TEXT("") : TEXT("&"));
108-
Query.Append(FString::Printf(TEXT("appType=%s"), *FindObject<UEnum>(ANY_PACKAGE, TEXT("EAccelByteAppType"), true)->GetNameStringByValue((int32)AppType)));
109-
}
51+
FString Url = FString::Printf(TEXT("%s/public/namespaces/%s/users/%s/entitlements"), *SettingsRef.PlatformServerUrl, *CredentialsRef.GetNamespace(), *CredentialsRef.GetUserId());
52+
53+
FString QueryParams = FAccelByteUtilities::CreateQueryParams({
54+
{ TEXT("entitlementName"), EntitlementName },
55+
{ "itemId", FString::Join(ItemIds, TEXT("&itemId=")) },
56+
{ "features", FString::Join(Features, TEXT("&features=")) },
57+
{ TEXT("offset"), Offset >= 0 ? FString::FromInt(Offset) : TEXT("") },
58+
{ TEXT("limit"), Limit >= 0 ? FString::FromInt(Limit) : TEXT("") },
59+
{ TEXT("entitlementClazz"), EntitlementClass != EAccelByteEntitlementClass::NONE ?
60+
*FindObject<UEnum>(ANY_PACKAGE, TEXT("EAccelByteEntitlementClass"), true)->GetNameStringByValue((int32)EntitlementClass) : TEXT("")},
61+
{ TEXT("appType"), AppType != EAccelByteAppType::NONE ?
62+
*FindObject<UEnum>(ANY_PACKAGE, TEXT("EAccelByteAppType"), true)->GetNameStringByValue((int32)AppType) : TEXT("")},
63+
});
64+
Url.Append(QueryParams);
11065

111-
Url.Append(Query.IsEmpty() ? TEXT("") : FString::Printf(TEXT("?%s"),*Query));
112-
11366
HttpClient.ApiRequest("GET", Url, {}, FString(), OnSuccess, OnError);
11467
}
11568

@@ -283,12 +236,14 @@ void Entitlement::GetUserEntitlementOwnershipTokenOnly(const TArray<FString>& It
283236
}
284237
}
285238

286-
void Entitlement::ConsumeUserEntitlement(FString const& EntitlementId, int32 const& UseCount, THandler<FAccelByteModelsEntitlementInfo> const& OnSuccess, FErrorHandler const& OnError)
239+
void Entitlement::ConsumeUserEntitlement(FString const& EntitlementId, int32 const& UseCount, THandler<FAccelByteModelsEntitlementInfo> const& OnSuccess, FErrorHandler const& OnError,
240+
TArray<FString> Options)
287241
{
288242
FReport::Log(FString(__FUNCTION__));
289243

290244
FAccelByteModelsConsumeUserEntitlementRequest ConsumeUserEntitlementRequest;
291245
ConsumeUserEntitlementRequest.UseCount = UseCount;
246+
ConsumeUserEntitlementRequest.Options = Options;
292247

293248
FString Url = FString::Printf(TEXT("%s/public/namespaces/%s/users/%s/entitlements/%s/decrement"), *SettingsRef.PlatformServerUrl, *CredentialsRef.GetNamespace(), *CredentialsRef.GetUserId(), *EntitlementId);
294249

@@ -513,5 +468,59 @@ void Entitlement::SyncEpicGameDurableItems(FString const& EpicGamesJwtToken, FVo
513468
HttpClient.ApiRequest("PUT", Url, {}, Content, OnSuccess, OnError);
514469
}
515470

471+
void Entitlement::ValidateUserItemPurchaseCondition(TArray<FString> const& Items, THandler<TArray<FAccelByteModelsPlatformValidateUserItemPurchaseResponse>> const& OnSuccess, FErrorHandler const& OnError)
472+
{
473+
FReport::Log(FString(__FUNCTION__));
474+
475+
// Url
476+
FString Url = FString::Printf(TEXT("%s/public/namespaces/%s/items/purchase/conditions/validate"), *SettingsRef.PlatformServerUrl, *CredentialsRef.GetNamespace());
477+
478+
// Content Body
479+
FString Content = TEXT("");
480+
FJsonObject DataJson;
481+
TArray<TSharedPtr<FJsonValue>> ItemArray{};
482+
for (FString Item : Items)
483+
{
484+
ItemArray.Add(MakeShareable(new FJsonValueString(Item)));
485+
}
486+
DataJson.SetArrayField("itemIds", ItemArray);
487+
TSharedPtr<FJsonObject> JsonObject = MakeShared<FJsonObject>(DataJson);
488+
TSharedRef<TJsonWriter<>> Writer = TJsonWriterFactory<>::Create(&Content);
489+
FJsonSerializer::Serialize(JsonObject.ToSharedRef(), Writer);
490+
491+
// Api Request
492+
HttpClient.ApiRequest("POST", Url, {}, Content, OnSuccess, OnError);
493+
}
494+
495+
void Entitlement::GetUserEntitlementOwnershipByItemIds(TArray<FString> const& Ids, THandler<TArray<FAccelByteModelsEntitlementOwnershipItemIds>> const& OnSuccess, FErrorHandler const& OnError)
496+
{
497+
FReport::Log(FString(__FUNCTION__));
498+
499+
// Url
500+
FString Url = FString::Printf(TEXT("%s/public/namespaces/%s/users/%s/entitlements/ownership/byItemIds"), *SettingsRef.PlatformServerUrl, *CredentialsRef.GetNamespace(), *CredentialsRef.GetUserId());
501+
502+
// Params
503+
FString IdsQueryParamString = TEXT("");
504+
505+
for (FString const& Id : Ids)
506+
{
507+
if (!Id.IsEmpty())
508+
{
509+
IdsQueryParamString.Append(IdsQueryParamString.IsEmpty() ? TEXT("?") : TEXT("&"));
510+
IdsQueryParamString.Append(FString::Printf(TEXT("ids=%s"), *Id));
511+
}
512+
}
513+
514+
// Here we use append string to Url; we couldn't use TMap for ids, since the key should be unique
515+
516+
Url.Append(IdsQueryParamString);
517+
518+
// Content
519+
FString Content = TEXT("");
520+
521+
// Api Request
522+
HttpClient.ApiRequest("GET", Url, {}, Content, OnSuccess, OnError);
523+
}
524+
516525
} // Namespace Api
517526
}

0 commit comments

Comments
 (0)