Skip to content

Commit 4dd12ec

Browse files
committed
Updated from pipeline, Version : 23.2.0
1 parent ba5fe27 commit 4dd12ec

File tree

9 files changed

+201
-29
lines changed

9 files changed

+201
-29
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/4355976397/879798516/
4-
export COMMIT_HASH=654e9e506c90e3375e6430c4dee8425de7aa1064
5-
export GIT_HASH=654e9e506c90e3375e6430c4dee8425de7aa1064
6-
export VERSION=23.1.4
7-
export REVISION_ID=23.1.4
4+
export WORKDIR=/tmp/pipelines/4410398652/889097912/
5+
export COMMIT_HASH=9b36750f4bd9dd21f245d768ffc25c53880b61d3
6+
export GIT_HASH=9b36750f4bd9dd21f245d768ffc25c53880b61d3
7+
export VERSION=23.2.0
8+
export REVISION_ID=23.2.0
89
9-
export COMMIT_MESSAGE_BASE64='Y2hvcmUocmVsZWFzZSk6IDIzLjEuNCAtIGNvbW1pdGVkIGFuZCB0YWdnZWQgYnkgSmVua2lucwo='
10+
export COMMIT_MESSAGE_BASE64='Y2hvcmUocmVsZWFzZSk6IDIzLjIuMCAtIGNvbW1pdGVkIGFuZCB0YWdnZWQgYnkgSmVua2lucwo='

AccelByteUe4Sdk.uplugin

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"FileVersion": 3,
3-
"Version": 35,
4-
"VersionName": "23.1.4",
3+
"Version": 36,
4+
"VersionName": "23.2.0",
55
"FriendlyName": "AccelByte Unreal Engine SDK",
66
"Description": "Official AccelByte SDK for Unreal Engine 4",
77
"Category": "Online Platform",

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,14 @@
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+
## [23.2.0](https://bitbucket.org/accelbyte/justice-unreal-sdk-plugin/branches/compare/23.2.0%0D23.1.4) (2023-06-05)
6+
7+
8+
### Features
9+
10+
* **DS:** add DSM heartbeat API ([0701ed3](https://bitbucket.org/accelbyte/justice-unreal-sdk-plugin/commits/0701ed30cbf2e8b2ecca93672fd75f39a42fe629))
11+
* **session:** add query game sessions API for dedicated server ([262c8a9](https://bitbucket.org/accelbyte/justice-unreal-sdk-plugin/commits/262c8a933964e7ca2e3d1eee55626046b2aaf3bb))
12+
513
### [23.1.4](https://bitbucket.org/accelbyte/justice-unreal-sdk-plugin/branches/compare/23.1.4%0D23.1.3) (2023-05-26)
614

715

Content/CompatibilityMap.json

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,51 @@
11
{
22
"iam": {
3-
"minVersion": "6.0.0",
4-
"maxVersion": "6.0.0"
3+
"minVersion": "6.0.1",
4+
"maxVersion": "6.0.1"
55
},
66
"agreement": {
7-
"minVersion": "1.29.1",
8-
"maxVersion": "1.29.1"
7+
"minVersion": "1.29.2",
8+
"maxVersion": "1.29.2"
99
},
1010
"basic": {
1111
"minVersion": "2.9.2",
1212
"maxVersion": "2.9.2"
1313
},
1414
"platform": {
15-
"minVersion": "4.30.1",
16-
"maxVersion": "4.30.1"
15+
"minVersion": "4.30.2",
16+
"maxVersion": "4.30.2"
1717
},
1818
"social": {
19-
"minVersion": "2.7.0",
20-
"maxVersion": "2.7.0"
19+
"minVersion": "2.8.0",
20+
"maxVersion": "2.8.0"
2121
},
2222
"leaderboard": {
23-
"minVersion": "2.22.0",
24-
"maxVersion": "2.22.0"
23+
"minVersion": "2.23.0",
24+
"maxVersion": "2.23.0"
2525
},
2626
"achievement": {
27-
"minVersion": "2.19.0",
28-
"maxVersion": "2.19.0"
27+
"minVersion": "2.20.0",
28+
"maxVersion": "2.20.0"
2929
},
3030
"cloudsave": {
31-
"minVersion": "3.7.1",
32-
"maxVersion": "3.7.1"
31+
"minVersion": "3.8.0",
32+
"maxVersion": "3.8.0"
3333
},
3434
"ugc": {
35-
"minVersion": "2.11.0",
36-
"maxVersion": "2.11.0"
35+
"minVersion": "2.11.1",
36+
"maxVersion": "2.11.1"
3737
},
3838
"group": {
39-
"minVersion": "2.16.2",
40-
"maxVersion": "2.16.2"
39+
"minVersion": "2.16.3",
40+
"maxVersion": "2.16.3"
4141
},
4242
"qosm": {
4343
"minVersion": "1.18.1",
4444
"maxVersion": "1.18.1"
4545
},
4646
"lobby": {
47-
"minVersion": "3.20.0",
48-
"maxVersion": "3.20.0"
47+
"minVersion": "3.21.0",
48+
"maxVersion": "3.21.0"
4949
},
5050
"dsmcontroller": {
5151
"minVersion": "6.3.2",

LICENSE.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
This software is licensed to you by AccelByte, Inc. for the sole purpose of developing interoperability with AccelByte's proprietary products and services. You may not use it for any other purpose. This code is provided "as is" and we make no guarantees about its functionality or usefulness.
2+
3+
------
4+
5+
AccelByte Development Code License
6+
7+
This proprietary license agreement (“Agreement”) is between you and AccelByte, Inc. ("AccelByte"), and governs your use of the SDK, sample code or other software licensed that is accompanied by this license (the "Licensed Software"). By using the Licensed Software, you agree to be bound by the terms of this Agreement. If you do not agree to the terms of this Agreement, do not use the Licensed Software.
8+
9+
1. License Grant. AccelByte hereby grants you a revocable, non-exclusive, non-sublicensable, non-transferrable license to use the Licensed Software, solely to develop your own games that are designed to operate on the AccelByte platform (available under a separate agreement), and solely as needed to enable that operation.
10+
11+
2. Restrictions. Except as expressly permitted in this Agreement, you may not: (a) copy, modify, or create derivative works of the Licensed Software; (b) distribute, sublicense, lease, rent, loan, or otherwise transfer the Licensed Software or any rights granted under this Agreement; (c) reverse engineer, decompile, or disassemble the Licensed Software; or (d) make the functionality of the Licensed Software available to any third party.
12+
13+
3. Termination. This Agreement will remain in effect until terminated by you or AccelByte. AccelByte may terminate this Agreement at any time for any reason. Upon termination of this Agreement, you must cease all use of the Licensed Software and destroy all copies of the Licensed Software in your possession or control.
14+
15+
4. Proprietary Rights. The Licensed Software is owned and copyrighted by AccelByte. Your license to use the Licensed Software does not grant you any right, title, or interest in or to the Licensed Software, except for the limited rights expressly granted in this Agreement.
16+
17+
5. Disclaimer of Warranties. THE LICENSED SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, ACCELBYTE DISCLAIMS ALL WARRANTIES, WHETHER EXPRESS, IMPLIED, OR STATUTORY, INCLUDING THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
18+
19+
6. Limitation of Liability. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT SHALL ACCELBYTE BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, PUNITIVE, OR CONSEQUENTIAL DAMAGES, OR ANY OTHER DAMAGES OF ANY KIND, ARISING FROM OR RELATED TO THIS AGREEMENT OR THE SDK, WHETHER IN CONTRACT, TORT, OR OTHERWISE, EVEN IF ACCELBYTE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
20+
21+
7. Governing Law. This Agreement will be governed by and construed in accordance with the laws of the state of Washington in the United States of America, without regard to its conflict of law provisions.
22+
23+
8. Contact Information. If you have any questions about this Agreement, please contact AccelByte at: [email protected] Last updated: 01/17/2023

Source/AccelByteUe4Sdk/Private/GameServerApi/AccelByteServerSessionApi.cpp

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,10 @@ void ServerSession::QueryPartySessions(
201201
{
202202
QueryParams.Add(TEXT("leaderID"), ValueStr);
203203
}
204+
else if(KV.Key.Equals(TEXT("joinType")))
205+
{
206+
QueryParams.Add(TEXT("joinability"), ValueStr);
207+
}
204208
else
205209
{
206210
// Add to the mapping of query parameters
@@ -281,5 +285,76 @@ void ServerSession::GetPlayerAttributes(FString const& UserId, THandler<FAccelBy
281285
HttpClient.ApiRequest(TEXT("GET"), Url, {}, FString(), OnSuccess, OnError);
282286
}
283287

288+
void ServerSession::QueryGameSessions(FAccelByteModelsV2ServerQueryGameSessionsRequest RequestContent,
289+
THandler<FAccelByteModelsV2PaginatedGameSessionQueryResult> const& OnSuccess, FErrorHandler const& OnError,
290+
int64 Offset, int64 Limit)
291+
{
292+
FReport::Log(FString(__FUNCTION__));
293+
294+
FString Url = FString::Printf(TEXT("%s/v1/admin/namespaces/%s/gamesessions"),
295+
*ServerSettingsRef.SessionServerUrl, *ServerCredentialsRef.GetClientNamespace());
296+
297+
const TSharedPtr<FJsonObject> QueryRequestJsonObject = FJsonObjectConverter::UStructToJsonObject(RequestContent);
298+
FAccelByteUtilities::RemoveEmptyStrings(QueryRequestJsonObject);
299+
300+
TMap<FString, FString> QueryParams{};
301+
302+
for (const TPair<FString, TSharedPtr<FJsonValue>>& KV : QueryRequestJsonObject->Values)
303+
{
304+
// Check if the value of this pair is a valid shared instance, if not bail
305+
if (!KV.Value.IsValid())
306+
{
307+
continue;
308+
}
309+
310+
// Attempt to get the value pointed to as a string, and make sure that it is not empty if we are able to grab it
311+
FString ValueStr{};
312+
if (!KV.Value->TryGetString(ValueStr) || ValueStr.IsEmpty())
313+
{
314+
continue;
315+
}
316+
317+
// Avoid adding empty enum and default FDateTime to query params
318+
if (ValueStr.Equals(TEXT("empty"), ESearchCase::IgnoreCase) || ValueStr.Equals(FDateTime{0}.ToString(), ESearchCase::IgnoreCase))
319+
{
320+
continue;
321+
}
322+
323+
// Convert FDateTime string representation from UnrealEngine default format to RFC 3339
324+
if (KV.Key.Equals(TEXT("fromTime")) || KV.Key.Equals(TEXT("toTime")))
325+
{
326+
FDateTime OutDateTime;
327+
if (FDateTime::Parse(ValueStr, OutDateTime))
328+
{
329+
ValueStr = OutDateTime.ToString(TEXT("%Y-%m-%dT%H:%M:%SZ"));
330+
}
331+
else
332+
{
333+
continue;
334+
}
335+
}
336+
337+
// Convert bool value to upper case to match BE convention (e.g. TRUE or FALSE) for these query params
338+
if (KV.Key.Equals(TEXT("isSoftDeleted")) || KV.Key.Equals(TEXT("isPersistent")))
339+
{
340+
ValueStr = ValueStr.ToUpper();
341+
}
342+
343+
QueryParams.Add(KV.Key, ValueStr);
344+
}
345+
346+
if (Offset > 0)
347+
{
348+
QueryParams.Add(TEXT("offset"), FString::FromInt(Offset));
349+
}
350+
351+
if (Limit > 0)
352+
{
353+
QueryParams.Add(TEXT("limit"), FString::FromInt(Limit));
354+
}
355+
356+
HttpClient.ApiRequest(TEXT("GET"), Url, QueryParams, FString(), OnSuccess, OnError);
357+
}
358+
284359
}
285360
}

Source/AccelByteUe4Sdk/Public/GameServerApi/AccelByteServerSessionApi.h

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,20 @@ class ACCELBYTEUE4SDK_API ServerSession : public FServerApiBase
152152
, THandler<FAccelByteModelsV2PlayerAttributes> const& OnSuccess
153153
, FErrorHandler const& OnError);
154154

155+
/**
156+
* @brief Query for game sessions for dedicated server
157+
*
158+
* @param RequestContent The query game sessions request body.
159+
* @param OnSuccess This will be called if the operation succeeded.
160+
* @param OnError This will be called if the operation failed.
161+
* @param Offset Pagination offset. Default 0.
162+
* @param Limit Pagination limit. Default 20.
163+
*/
164+
void QueryGameSessions(FAccelByteModelsV2ServerQueryGameSessionsRequest RequestContent
165+
, THandler<FAccelByteModelsV2PaginatedGameSessionQueryResult> const& OnSuccess
166+
, FErrorHandler const& OnError
167+
, int64 Offset = 0, int64 Limit = 20);
168+
155169
private:
156170
ServerSession() = delete;
157171
ServerSession(ServerSession const&) = delete;

Source/AccelByteUe4Sdk/Public/Models/AccelByteSessionModels.h

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -635,3 +635,54 @@ struct ACCELBYTEUE4SDK_API FAccelByteModelsV2StorePlayerAttributesRequest
635635
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AccelByte | Session | Models | PlayerAttributesRequest")
636636
TArray<FAccelByteModelsV2PlayerAttributesPlatform> Platforms{};
637637
};
638+
639+
USTRUCT(BlueprintType)
640+
struct ACCELBYTEUE4SDK_API FAccelByteModelsV2ServerQueryGameSessionsRequest
641+
{
642+
GENERATED_BODY()
643+
644+
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AccelByte | Session | Models | ServerQueryGameSessionsRequest")
645+
EAccelByteV2GameSessionDsStatus Status{EAccelByteV2GameSessionDsStatus::EMPTY};
646+
647+
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AccelByte | Session | Models | ServerQueryGameSessionsRequest")
648+
EAccelByteV2GameSessionDsStatus StatusV2 {EAccelByteV2GameSessionDsStatus::EMPTY};
649+
650+
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AccelByte | Session | Models | ServerQueryGameSessionsRequest")
651+
FString SessionID{};
652+
653+
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AccelByte | Session | Models | ServerQueryGameSessionsRequest")
654+
FString MatchPool{};
655+
656+
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AccelByte | Session | Models | ServerQueryGameSessionsRequest")
657+
FString GameMode{};
658+
659+
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AccelByte | Session | Models | ServerQueryGameSessionsRequest")
660+
EAccelByteV2SessionJoinability Joinability{EAccelByteV2SessionJoinability::EMPTY};
661+
662+
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AccelByte | Session | Models | ServerQueryGameSessionsRequest")
663+
FString MemberID{};
664+
665+
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AccelByte | Session | Models | ServerQueryGameSessionsRequest")
666+
FString ConfigurationName{};
667+
668+
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AccelByte | Session | Models | ServerQueryGameSessionsRequest")
669+
FDateTime FromTime{0};
670+
671+
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AccelByte | Session | Models | ServerQueryGameSessionsRequest")
672+
FDateTime ToTime{0};
673+
674+
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AccelByte | Session | Models | ServerQueryGameSessionsRequest")
675+
FString DsPodName{};
676+
677+
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AccelByte | Session | Models | ServerQueryGameSessionsRequest")
678+
bool IsSoftDeleted{};
679+
680+
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AccelByte | Session | Models | ServerQueryGameSessionsRequest")
681+
bool IsPersistent{};
682+
683+
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AccelByte | Session | Models | ServerQueryGameSessionsRequest")
684+
FString OrderBy{};
685+
686+
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AccelByte | Session | Models | ServerQueryGameSessionsRequest")
687+
FString Order{};
688+
};

version.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
"version": "23.1.4"
2+
"version": "23.2.0"
33
}

0 commit comments

Comments
 (0)