Skip to content

Commit e78282f

Browse files
Updated from pipeline, Version : 27.0.0
1 parent 6249a66 commit e78282f

File tree

286 files changed

+4302
-7447
lines changed

Some content is hidden

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

286 files changed

+4302
-7447
lines changed

.variables

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
export DO_UPDATE=true
22
export LEVEL=CRITICAL
33
export REPO_NAME=justice-unreal-sdk-plugin
4-
export WORKDIR=/tmp/pipelines/9273684708/1693111116/
5-
export COMMIT_HASH=ae35d7efcba47c1ff451b84511e1fcb89774e56b
6-
export GIT_HASH=ae35d7efcba47c1ff451b84511e1fcb89774e56b
7-
export VERSION=26.7.0
8-
export REVISION_ID=26.7.0
4+
export WORKDIR=/tmp/pipelines/9499984568/1731502508/
5+
export COMMIT_HASH=452da0011539986c561e1e769209f7018c274a62
6+
export GIT_HASH=452da0011539986c561e1e769209f7018c274a62
7+
export VERSION=27.0.0
8+
export REVISION_ID=27.0.0
99
10-
export COMMIT_MESSAGE_BASE64='Y2hvcmUocmVsZWFzZSk6IDI2LjcuMCAtIGNvbW1pdGVkIGFuZCB0YWdnZWQgYnkgSmVua2luc2Fnc1ZlcnNpb246IjIwMjUuMSIKCg=='
10+
export COMMIT_MESSAGE_BASE64='Y2hvcmUocmVsZWFzZSk6IDI3LjAuMCAtIGNvbW1pdGVkIGFuZCB0YWdnZWQgYnkgSmVua2luc2Fnc1ZlcnNpb246IjIwMjUuMiIKCg=='

AccelByteUe4Sdk.uplugin

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,39 @@
11
{
2-
"FileVersion": 3,
3-
"Version": 77,
4-
"VersionName": "26.2.1",
5-
"FriendlyName": "AccelByte Unreal Engine SDK",
6-
"Description": "Official AccelByte SDK for Unreal Engine 4",
7-
"Category": "Online Platform",
8-
"CreatedBy": "Accelbyte Inc",
9-
"CreatedByUrl": "https://accelbyte.io/",
10-
"DocsUrl": "https://docs.accelbyte.io/gsg/sdk-guides/ue4-sdk-getting-started.html",
11-
"MarketplaceUrl": "",
12-
"SupportUrl": "",
13-
"CanContainContent": false,
14-
"IsBetaVersion": false,
15-
"Installed": false,
16-
"Modules": [
17-
{
18-
"Name": "AccelByteUe4Sdk",
19-
"Type": "Runtime",
20-
"LoadingPhase": "PreDefault"
21-
}
22-
],
23-
"Plugins": [
24-
{
25-
"Name": "CISQLite3",
26-
"Enabled": false
27-
}
28-
],
29-
"PreBuildSteps": {
30-
"Win64": [
31-
"call \"$(PluginDir)\\PreBuildProcessor.bat\" \"$(EngineDir)\" \"$(ProjectDir)\" $(TargetConfiguration) $(TargetType) False"
32-
]
33-
},
34-
"PostBuildSteps": {
35-
"Win64": [
36-
"call \"$(PluginDir)\\PostBuildProcessor.bat\" \"$(ProjectDir)\" "
37-
]
2+
"FileVersion": 3,
3+
"Version": 77,
4+
"VersionName": "27.0.0",
5+
"FriendlyName": "AccelByte Unreal Engine SDK",
6+
"Description": "Official AccelByte SDK for Unreal Engine 4",
7+
"Category": "Online Platform",
8+
"CreatedBy": "Accelbyte Inc",
9+
"CreatedByUrl": "https://accelbyte.io/",
10+
"DocsUrl": "https://docs.accelbyte.io/gaming-services/getting-started/setup-game-sdk/unreal-sdk/",
11+
"MarketplaceUrl": "",
12+
"SupportUrl": "",
13+
"CanContainContent": false,
14+
"IsBetaVersion": false,
15+
"Installed": false,
16+
"Modules": [
17+
{
18+
"Name": "AccelByteUe4Sdk",
19+
"Type": "Runtime",
20+
"LoadingPhase": "PreDefault"
3821
}
22+
],
23+
"Plugins": [
24+
{
25+
"Name": "CISQLite3",
26+
"Enabled": false
27+
}
28+
],
29+
"PreBuildSteps": {
30+
"Win64": [
31+
"call \"$(PluginDir)\\PreBuildProcessor.bat\" \"$(EngineDir)\" \"$(ProjectDir)\" $(TargetConfiguration) $(TargetType) False"
32+
]
33+
},
34+
"PostBuildSteps": {
35+
"Win64": [
36+
"call \"$(PluginDir)\\PostBuildProcessor.bat\" \"$(ProjectDir)\" "
37+
]
38+
}
3939
}

CHANGELOG.md

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

33
All notable changes to this project will be documented in this file. See [standard-version] for commit guidelines.
44

5+
## [27.0.0] (2025-03-24)
6+
7+
8+
### ⚠ BREAKING CHANGES
9+
10+
* decommissioned ApiClass reference usage in ApiClient
11+
* decommissioned static FRegistry and FMultiregistry
12+
13+
### Features
14+
15+
* **achievement:** bulk unlock achievement API for both client & server
16+
* **ams:** provide AMS drain notif multicast delegate since the existing delegate is only single delegate
17+
* **ban:** schedule unban notification in Lobby when logging in
18+
* **Challenge:** add ServerChallenge::GetUserChallengeProgress() function & add additional field to response model FAccelByteModelsChallengeGoalProgress & FAccelByteModelsChallengeProgressMeta
19+
* **chat:** expose SenderPlatformId in chat message notification
20+
* **ecommerce:** add notifications for entitlement updated, wallet status changed, and wallet balance changed
21+
* **game profile:** add deprecation message to the game profile service
22+
* **iap:** Implement Steam IAP sync by transaction API methods
23+
* **session:** implement server API endpoint to update DS information for a game session
24+
25+
26+
### Bug Fixes
27+
28+
* **Session:** remove typo definition of the FAccelBtyeModelsGameSessionExcludedSession
29+
30+
31+
### Refactors
32+
33+
* decommissioned ApiClass reference usage in ApiClient
34+
* decommissioned static FRegistry and FMultiregistry
35+
536
## [26.7.0] (2025-02-28)
637

738

Source/AccelByteUe4Sdk/Private/AccelByteUe4SdkModule.cpp

Lines changed: 8 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -4,25 +4,16 @@
44

55
#include "AccelByteUe4SdkModule.h"
66
#include "Core/Version.h"
7-
#include "Interfaces/IPluginManager.h"
87
#include "Core/AccelByteSettings.h"
98
#include "Core/AccelByteServerSettings.h"
10-
#include "Core/AccelByteRegistry.h"
119
#include "Core/AccelByteHttpRetryScheduler.h"
1210
#include "Core/AccelByteReport.h"
1311
#include "Core/AccelByteDataStorageBinaryFile.h"
1412
#include "Core/AccelByteInstance.h"
1513
#include "Core/Platform/AccelBytePlatformHandler.h"
16-
#include "Api/AccelByteGameTelemetryApi.h"
17-
#include "Api/AccelByteHeartBeatApi.h"
18-
#include "Api/AccelBytePredefinedEventApi.h"
19-
#include "Api/AccelByteGameStandardEventApi.h"
20-
#include "Api/AccelByteQos.h"
21-
#include "Api/AccelByteLobbyApi.h"
22-
#include "Core/AccelByteMultiRegistry.h"
2314
#include "Core/ServerTime/AccelByteTimeManager.h"
24-
#include "GameServerApi/AccelByteServerAMSApi.h"
2515
#include "Engine/GameInstance.h"
16+
#include "Interfaces/IPluginManager.h"
2617

2718
#if UE_SERVER
2819
#include "Core/AccelByteSignalHandler.h"
@@ -57,7 +48,7 @@ class FAccelByteUe4SdkModule : public IAccelByteUe4SdkModuleInterface
5748
AccelByte::FAccelBytePlatformHandler PlatformHandler;
5849
FThreadSafeCounter GameInstanceCount {0};
5950

60-
FAccelByteTimeManagerPtr TimeManager;
51+
AccelByte::FAccelByteTimeManagerPtr TimeManager;
6152

6253
// For registering settings in UE4 editor
6354
void RegisterSettings();
@@ -107,26 +98,14 @@ void FAccelByteUe4SdkModule::StartupModule()
10798
LoadServerSettingsFromConfigUObject();
10899

109100
LocalDataStorage = MakeShared<AccelByte::DataStorageBinaryFile>();
110-
TimeManager = MakeShared<AccelByte::FAccelByteTimeManager, ESPMode::ThreadSafe>();
101+
TimeManager = MakeShared<AccelByte::FAccelByteTimeManager, ESPMode::ThreadSafe>(GlobalClientSettings.BasicServerUrl);
111102

112103
#ifdef TEMPORARY_ENABLE_COMPAT_CHECK
113104
#if UE_BUILD_DEVELOPMENT && TEMPORARY_ENABLE_COMPAT_CHECK
114105
CheckServicesCompatibility();
115106
#endif // UE_BUILD_DEVELOPMENT && TEMPORARY_ENABLE_COMPAT_CHECK
116107
#endif // defined(TEMPORARY_ENABLE_COMPAT_CHECK)
117108

118-
AccelByte::FRegistry::HttpRetryScheduler.Startup();
119-
AccelByte::FRegistry::CredentialsRef->Startup();
120-
AccelByte::FRegistry::QosPtr->Startup();
121-
AccelByte::FRegistry::GameTelemetryPtr->Startup();
122-
AccelByte::FRegistry::PredefinedEventPtr->Startup();
123-
AccelByte::FRegistry::GameStandardEventPtr->Startup();
124-
AccelByte::FRegistry::LobbyPtr->Startup();
125-
#if !UE_SERVER
126-
AccelByte::FRegistry::HeartBeat.Startup();
127-
#endif
128-
AccelByte::FRegistry::ServerCredentialsRef->Startup();
129-
130109
#if UE_SERVER
131110
FAccelByteSignalHandler::Initialize();
132111
#endif
@@ -255,8 +234,6 @@ bool FAccelByteUe4SdkModule::LoadClientSettings(ESettingsEnvironment const Envir
255234
return bResult;
256235
}
257236

258-
AccelByte::FRegistry::Settings.Reset(Environment);
259-
AccelByte::FRegistry::CredentialsRef->SetClientCredentials(Environment);
260237
SetDefaultHttpCustomHeader(GlobalClientSettings.Namespace);
261238

262239
return bResult;
@@ -277,8 +254,6 @@ bool FAccelByteUe4SdkModule::LoadServerSettings(ESettingsEnvironment const Envir
277254
return bResult;
278255
}
279256

280-
AccelByte::FRegistry::ServerSettings.Reset(Environment);
281-
AccelByte::FRegistry::ServerCredentialsRef->SetClientCredentials(Environment);
282257
SetDefaultHttpCustomHeader(GlobalServerSettings.Namespace);
283258

284259
return bResult;
@@ -386,7 +361,7 @@ void FAccelByteUe4SdkModule::CheckServicesCompatibility() const
386361
}
387362

388363
GetVersionInfo(
389-
AccelByte::FRegistry::Settings.BaseUrl / ServiceName,
364+
GlobalClientSettings.BaseUrl / ServiceName,
390365
[CompatibilityMapPtr, ServiceName](FVersionInfo const VersionInfo)
391366
{
392367
FResult const Result = CompatibilityMapPtr->Check(ServiceName, VersionInfo.Version, true);
@@ -438,28 +413,19 @@ void FAccelByteUe4SdkModule::OnGameInstanceCreated(UGameInstance* GameInstance)
438413

439414
GameInstanceCount.Increment();
440415

441-
AccelByte::FRegistry::TimeManager.GetServerTime({}, {});
442416
TimeManager->GetServerTime({}, {});
443417
}
444418

445419
void FAccelByteUe4SdkModule::OnPreExit()
446420
{
447-
AccelByte::FRegistry::ServerCredentialsRef->Shutdown();
448-
#if !UE_SERVER
449-
AccelByte::FRegistry::HeartBeat.Shutdown();
450-
#endif
451-
AccelByte::FRegistry::GameTelemetryPtr->Shutdown();
452-
AccelByte::FRegistry::PredefinedEventPtr->Shutdown();
453-
AccelByte::FRegistry::GameStandardEventPtr->Shutdown();
454-
AccelByte::FRegistry::CredentialsRef->Shutdown();
455-
AccelByte::FRegistry::HttpRetryScheduler.Shutdown();
456-
457-
FMultiRegistry::Shutdown();
458421
}
459422

460423
FAccelByteInstancePtr FAccelByteUe4SdkModule::CreateAccelByteInstance()
461424
{
462-
return MakeShared<FAccelByteInstance, ESPMode::ThreadSafe>(GlobalClientSettings, GlobalServerSettings, LocalDataStorage, TimeManager, GameInstanceCount.GetValue());
425+
FAccelByteInstancePtr ABInstance = MakeShared<FAccelByteInstance, ESPMode::ThreadSafe>(GlobalClientSettings, GlobalServerSettings, LocalDataStorage, TimeManager, GameInstanceCount.GetValue());
426+
ABInstance->SetEnvironmentChangeDelegate();
427+
428+
return ABInstance;
463429
}
464430

465431
IMPLEMENT_MODULE(FAccelByteUe4SdkModule, AccelByteUe4Sdk)

Source/AccelByteUe4Sdk/Private/Api/AccelByteAMSApi.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,9 @@ namespace Api
1212

1313
AMS::AMS(Credentials const& InCredentialsRef
1414
, Settings const& InSettingsRef
15-
, FHttpRetryScheduler& InHttpRef)
16-
: FApiBase(InCredentialsRef, InSettingsRef, InHttpRef)
15+
, FHttpRetryScheduler& InHttpRef
16+
, TSharedPtr<FApiClient, ESPMode::ThreadSafe> InApiClient)
17+
: FApiBase(InCredentialsRef, InSettingsRef, InHttpRef, InApiClient)
1718
{}
1819
AMS::~AMS()
1920
{}

Source/AccelByteUe4Sdk/Private/Api/AccelByteAchievementApi.cpp

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
#include "Api/AccelByteAchievementApi.h"
66
#include "Core/AccelByteError.h"
7-
#include "Core/AccelByteRegistry.h"
7+
88
#include "Core/AccelByteReport.h"
99
#include "Core/AccelByteHttpRetryScheduler.h"
1010
#include "Core/AccelByteSettings.h"
@@ -16,8 +16,9 @@ namespace Api
1616

1717
Achievement::Achievement(Credentials const& InCredentialsRef
1818
, Settings const& InSettingsRef
19-
, FHttpRetryScheduler& InHttpRef)
20-
: FApiBase(InCredentialsRef, InSettingsRef, InHttpRef)
19+
, FHttpRetryScheduler& InHttpRef
20+
, TSharedPtr<FApiClient, ESPMode::ThreadSafe> InApiClient)
21+
: FApiBase(InCredentialsRef, InSettingsRef, InHttpRef, InApiClient)
2122
{}
2223

2324
Achievement::~Achievement()
@@ -264,6 +265,26 @@ FAccelByteTaskWPtr Achievement::UnlockAchievement(const FString& AchievementCode
264265
return HttpClient.ApiRequest(TEXT("PUT"), Url, {}, FString(), OnSuccess, OnError);
265266
}
266267

268+
FAccelByteTaskWPtr Achievement::BulkUnlockAchievement(FAccelByteModelsAchievementBulkUnlockRequest const& AchievementsToUnlock
269+
, THandler<TArray<FAccelByteModelsAchievementBulkUnlockRespone>> const& UnlockResponses
270+
, FErrorHandler const& OnError)
271+
{
272+
FReport::Log(FString(__FUNCTION__));
273+
274+
if (AchievementsToUnlock.AchievementCodes.Num() <= 0)
275+
{
276+
OnError.ExecuteIfBound(static_cast<int32>(AccelByte::ErrorCodes::InvalidRequest), TEXT("Request is invalid due to provided AchievementCodes is empty."));
277+
return nullptr;
278+
}
279+
280+
const FString Url = FString::Printf(TEXT("%s/v1/public/namespaces/%s/users/%s/achievements/bulkUnlock")
281+
, *SettingsRef.AchievementServerUrl
282+
, *CredentialsRef->GetNamespace()
283+
, *CredentialsRef->GetUserId());
284+
285+
return HttpClient.ApiRequest(TEXT("PUT"), Url, {}, AchievementsToUnlock, UnlockResponses, OnError);
286+
}
287+
267288
FAccelByteTaskWPtr Achievement::QueryGlobalAchievements(FString const& AchievementCode
268289
, EAccelByteGlobalAchievementStatus const& AchievementStatus
269290
, EAccelByteGlobalAchievementListSortBy const& SortBy

Source/AccelByteUe4Sdk/Private/Api/AccelByteAgreementApi.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
// and restrictions contact your company contract manager.
44

55
#include "Api/AccelByteAgreementApi.h"
6-
#include "Core/AccelByteRegistry.h"
6+
77
#include "Core/AccelByteReport.h"
88
#include "Core/AccelByteHttpRetryScheduler.h"
99
#include "Core/AccelByteSettings.h"
@@ -15,8 +15,9 @@ namespace Api
1515
{
1616
Agreement::Agreement(Credentials const& InCredentialsRef
1717
, Settings const& InSettingsRef
18-
, FHttpRetryScheduler& InHttpRef)
19-
: FApiBase(InCredentialsRef, InSettingsRef, InHttpRef)
18+
, FHttpRetryScheduler& InHttpRef
19+
, TSharedPtr<FApiClient, ESPMode::ThreadSafe> InApiClient)
20+
: FApiBase(InCredentialsRef, InSettingsRef, InHttpRef, InApiClient)
2021
{}
2122

2223
Agreement::~Agreement()

Source/AccelByteUe4Sdk/Private/Api/AccelByteBaseAnalyticsApi.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,17 @@ BaseAnalytics::BaseAnalytics(Credentials& InCredentialsRef
1919
, EventName(InEventName)
2020
{}
2121

22+
BaseAnalytics::BaseAnalytics(Credentials& InCredentialsRef
23+
, Settings const& InSettingsRef
24+
, FHttpRetryScheduler& InHttpRef
25+
, TSharedPtr<FApiClient, ESPMode::ThreadSafe> InApiClient
26+
, FString const& InEventName
27+
, bool bInCacheEvent
28+
, bool bInRetryOnFailed)
29+
: GameTelemetry(InCredentialsRef, InSettingsRef, InHttpRef, InApiClient, bInCacheEvent, bInRetryOnFailed)
30+
, EventName(InEventName)
31+
{}
32+
2233
void BaseAnalytics::SendEventData(const TSharedPtr<FJsonObject>& Payload, FVoidHandler const& OnSuccess, FErrorHandler const& OnError, FDateTime const& ClientTimestamp)
2334
{
2435
if (Payload.IsValid())

Source/AccelByteUe4Sdk/Private/Api/AccelByteBinaryCloudSaveApi.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
#include "Api/AccelByteBinaryCloudSaveApi.h"
66
#include "Core/AccelByteError.h"
7-
#include "Core/AccelByteRegistry.h"
7+
88
#include "Core/AccelByteReport.h"
99
#include "Core/AccelByteHttpRetryScheduler.h"
1010
#include "JsonUtilities.h"
@@ -22,8 +22,9 @@ namespace Api
2222

2323
BinaryCloudSave::BinaryCloudSave(Credentials const& InCredentialsRef
2424
, Settings const& InSettingsRef
25-
, FHttpRetryScheduler& InHttpRef)
26-
: FApiBase(InCredentialsRef, InSettingsRef, InHttpRef)
25+
, FHttpRetryScheduler& InHttpRef
26+
, TSharedPtr<FApiClient, ESPMode::ThreadSafe> InApiClient)
27+
: FApiBase(InCredentialsRef, InSettingsRef, InHttpRef, InApiClient)
2728
{}
2829

2930
BinaryCloudSave::~BinaryCloudSave()

Source/AccelByteUe4Sdk/Private/Api/AccelByteCategoryApi.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
#include "Api/AccelByteCategoryApi.h"
66
#include "Core/AccelByteError.h"
7-
#include "Core/AccelByteRegistry.h"
7+
88
#include "Core/AccelByteReport.h"
99
#include "Core/AccelByteHttpRetryScheduler.h"
1010
#include "JsonUtilities.h"
@@ -17,8 +17,9 @@ namespace Api
1717

1818
Category::Category(Credentials const& InCredentialsRef
1919
, Settings const& InSettingsRef
20-
, FHttpRetryScheduler& InHttpRef)
21-
: FApiBase(InCredentialsRef, InSettingsRef, InHttpRef)
20+
, FHttpRetryScheduler& InHttpRef
21+
, TSharedPtr<FApiClient, ESPMode::ThreadSafe> InApiClient)
22+
: FApiBase(InCredentialsRef, InSettingsRef, InHttpRef, InApiClient)
2223
{}
2324

2425
Category::~Category()

0 commit comments

Comments
 (0)