@xmobitea/gn-server 2.4.13 → 2.4.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/GN-app-api/handler/controller/handler/characterPlayer/GetCurrencyLeaderboardRequestHandler.d.ts +1 -0
- package/dist/GN-app-api/handler/controller/handler/characterPlayer/GetFriendStatisticsLeaderboardAroundPlayerRequestHandler.d.ts +1 -0
- package/dist/GN-app-api/handler/controller/handler/characterPlayer/GetFriendStatisticsLeaderboardRequestHandler.d.ts +1 -0
- package/dist/GN-app-api/handler/controller/handler/characterPlayer/GetStatisticsLeaderboardAroundPlayerRequestHandler.d.ts +2 -0
- package/dist/GN-app-api/handler/controller/handler/characterPlayer/GetStatisticsLeaderboardRequestHandler.d.ts +1 -0
- package/dist/GN-app-api/handler/controller/handler/dashboard/GetAnalyticsRequestHandler.d.ts +4 -0
- package/dist/GN-app-api/handler/controller/handler/dashboard/ResetStatisticsLeaderboardRequestHandler.d.ts +1 -0
- package/dist/GN-app-api/handler/controller/handler/gamePlayer/GetFriendStatisticsLeaderboardAroundPlayerRequestHandler.d.ts +1 -0
- package/dist/GN-app-api/handler/controller/handler/gamePlayer/GetFriendStatisticsLeaderboardRequestHandler.d.ts +1 -0
- package/dist/GN-app-api/handler/controller/handler/gamePlayer/GetStatisticsLeaderboardAroundPlayerRequestHandler.d.ts +1 -0
- package/dist/GN-app-api/handler/controller/handler/group/GetCurrencyLeaderboardRequestHandler.d.ts +1 -0
- package/dist/GN-app-api/handler/controller/handler/group/GetStatisticsLeaderboardAroundGroupRequestHandler.d.ts +2 -0
- package/dist/GN-app-api/handler/controller/handler/group/GetStatisticsLeaderboardRequestHandler.d.ts +1 -0
- package/dist/GN-app-api/handler/controller/handler/inventory/GetStatisticsLeaderboardAroundItemRequestHandler.d.ts +2 -0
- package/dist/GN-app-api/handler/controller/handler/inventory/GetStatisticsLeaderboardRequestHandler.d.ts +1 -0
- package/dist/GN-app-api/handler/controller/handler/masterPlayer/GetStatisticsLeaderboardAroundPlayerRequestHandler.d.ts +1 -0
- package/dist/GN-app-api/service/AnalyticsService.d.ts +2 -0
- package/dist/GN-app-api/service/EventCallbackService.d.ts +7 -0
- package/dist/GN-app-api/service/IAnalyticsService.d.ts +18 -6
- package/dist/GN-common/constant/enumType/ItemType.d.ts +2 -2
- package/dist/GN-common/constant/errorCode/GNErrorCode.d.ts +1 -1
- package/dist/GN-common/constant/parameterCode/GNParameterCode.d.ts +7 -0
- package/dist/GN-library/xcachedata/lib/xCacheData.d.ts +1 -0
- package/dist/GN-library/xdatabase/lib/xDatabase.d.ts +12 -12
- package/dist/GN-startup/cloudScript/eventCallbackCloudScriptData.json +35 -15
- package/dist/GN-startup/cloudScript/templateCloudScript.ts +31 -1
- package/dist/GN-startup/cloudScript/templateEventCallback.ts +95 -3
- package/dist/GNServer.d.ts +1 -0
- package/dist/index.js +1391 -484
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -5157,6 +5157,10 @@ __decorate([
|
|
|
5157
5157
|
(0, DataMember_1.BooleanDataMember)({ code: GNParameterCode_1.GNParameterCode.LoadFromCache, defaultValue: true, isOptional: true }),
|
|
5158
5158
|
__metadata("design:type", Boolean)
|
|
5159
5159
|
], GetCurrencyLeaderboardOperationRequest.prototype, "loadFromCache", void 0);
|
|
5160
|
+
__decorate([
|
|
5161
|
+
(0, DataMember_1.StringDataMember)({ code: GNParameterCode_1.GNParameterCode.CatalogId, minLength: 2, maxLength: 32, mustNonNull: true, isOptional: true }),
|
|
5162
|
+
__metadata("design:type", String)
|
|
5163
|
+
], GetCurrencyLeaderboardOperationRequest.prototype, "catalogId", void 0);
|
|
5160
5164
|
class ServerGetCurrencyLeaderboardOperationRequest extends GetCurrencyLeaderboardOperationRequest {
|
|
5161
5165
|
isValidRequest() {
|
|
5162
5166
|
if (!super.isValidRequest())
|
|
@@ -5197,6 +5201,7 @@ class GetCurrencyLeaderboardRequestHandler extends CharacterPlayerBaseRequestHan
|
|
|
5197
5201
|
limit: request.limit,
|
|
5198
5202
|
infoRequestParam: request.infoRequestParam,
|
|
5199
5203
|
loadFromCache: request.loadFromCache,
|
|
5204
|
+
catalogId: request.catalogId,
|
|
5200
5205
|
}, secretInfo, operationRequest);
|
|
5201
5206
|
});
|
|
5202
5207
|
}
|
|
@@ -5216,6 +5221,7 @@ class GetCurrencyLeaderboardRequestHandler extends CharacterPlayerBaseRequestHan
|
|
|
5216
5221
|
limit: request.limit,
|
|
5217
5222
|
infoRequestParam: request.infoRequestParam,
|
|
5218
5223
|
loadFromCache: request.loadFromCache,
|
|
5224
|
+
catalogId: request.catalogId,
|
|
5219
5225
|
}, secretInfo, operationRequest);
|
|
5220
5226
|
});
|
|
5221
5227
|
}
|
|
@@ -5235,6 +5241,7 @@ class GetCurrencyLeaderboardRequestHandler extends CharacterPlayerBaseRequestHan
|
|
|
5235
5241
|
limit: request.limit,
|
|
5236
5242
|
infoRequestParam: request.infoRequestParam,
|
|
5237
5243
|
loadFromCache: request.loadFromCache,
|
|
5244
|
+
catalogId: request.catalogId,
|
|
5238
5245
|
}, secretInfo, operationRequest);
|
|
5239
5246
|
});
|
|
5240
5247
|
}
|
|
@@ -5246,14 +5253,15 @@ class GetCurrencyLeaderboardRequestHandler extends CharacterPlayerBaseRequestHan
|
|
|
5246
5253
|
}
|
|
5247
5254
|
operationResponse = new OperationResponse_1.OperationResponse(operationRequest.getOperationCode(), operationRequest.getRequestId(), operationRequest.isEncrypted());
|
|
5248
5255
|
operationResponse.setReturnCode(ReturnCode_1.ReturnCode.Ok);
|
|
5249
|
-
let
|
|
5250
|
-
let
|
|
5251
|
-
let playerCurrencySettingsItem = masterPlayerSettings.playerCurrencySettings.find(x => x.key == request.key);
|
|
5256
|
+
let characterPlayerSettings = this.gnServer.getGNSettings().getCharacterPlayerSettings(secretInfo.getGameId());
|
|
5257
|
+
let playerCurrencySettingsItem = characterPlayerSettings.playerCurrencySettings.find(x => x.key == request.key);
|
|
5252
5258
|
if (playerCurrencySettingsItem == null) {
|
|
5253
5259
|
operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.KeyNotFound);
|
|
5254
5260
|
return operationResponse;
|
|
5255
5261
|
}
|
|
5256
5262
|
let cacheKey = "characterPlayerCurrencyLeaderboard_" + request.key;
|
|
5263
|
+
if (request.catalogId)
|
|
5264
|
+
cacheKey += "_" + request.catalogId;
|
|
5257
5265
|
if (request.loadFromCache) {
|
|
5258
5266
|
if (request.skip + request.limit > 100) {
|
|
5259
5267
|
request.loadFromCache = false;
|
|
@@ -5280,9 +5288,10 @@ class GetCurrencyLeaderboardRequestHandler extends CharacterPlayerBaseRequestHan
|
|
|
5280
5288
|
}
|
|
5281
5289
|
}
|
|
5282
5290
|
else {
|
|
5291
|
+
let characterPlayerFindOptions = this.convertToCharacterPlayerFindOptions(request.infoRequestParam);
|
|
5283
5292
|
if (request.skip + request.limit <= 100) {
|
|
5284
5293
|
characterPlayerFindOptions = null;
|
|
5285
|
-
characterPlayers = yield this.gnServer.getDatabase().loadCharacterPlayersLeaderboardWithCurrenciesAsync(request.key, 0, 100, secretInfo.getGameId(), characterPlayerFindOptions);
|
|
5294
|
+
characterPlayers = yield this.gnServer.getDatabase().loadCharacterPlayersLeaderboardWithCurrenciesAsync(request.key, 0, 100, request.catalogId, secretInfo.getGameId(), characterPlayerFindOptions);
|
|
5286
5295
|
for (let i = request.skip; i < request.skip + request.limit; i++) {
|
|
5287
5296
|
if (i >= characterPlayers.length)
|
|
5288
5297
|
break;
|
|
@@ -5296,7 +5305,7 @@ class GetCurrencyLeaderboardRequestHandler extends CharacterPlayerBaseRequestHan
|
|
|
5296
5305
|
this.gnServer.getCacheData().setData(cacheKey, characterPlayers, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
|
|
5297
5306
|
}
|
|
5298
5307
|
else {
|
|
5299
|
-
characterPlayers = yield this.gnServer.getDatabase().loadCharacterPlayersLeaderboardWithCurrenciesAsync(request.key, request.skip, request.limit, secretInfo.getGameId(), characterPlayerFindOptions);
|
|
5308
|
+
characterPlayers = yield this.gnServer.getDatabase().loadCharacterPlayersLeaderboardWithCurrenciesAsync(request.key, request.skip, request.limit, request.catalogId, secretInfo.getGameId(), characterPlayerFindOptions);
|
|
5300
5309
|
for (let i = 0; i < characterPlayers.length; i++) {
|
|
5301
5310
|
let characterPlayer = characterPlayers[i];
|
|
5302
5311
|
let gnResult = new GNData_1.GNHashtable();
|
|
@@ -5459,11 +5468,11 @@ class GetCurrencyLogRequestHandler extends RequestHandler_1.RequestHandler {
|
|
|
5459
5468
|
}
|
|
5460
5469
|
operationResponse = new OperationResponse_1.OperationResponse(operationRequest.getOperationCode(), operationRequest.getRequestId(), operationRequest.isEncrypted());
|
|
5461
5470
|
operationResponse.setReturnCode(ReturnCode_1.ReturnCode.Ok);
|
|
5462
|
-
let
|
|
5471
|
+
let characterPlayerSettings = this.gnServer.getGNSettings().getCharacterPlayerSettings(secretInfo.getGameId());
|
|
5463
5472
|
let keys = [];
|
|
5464
5473
|
if (request.keys) {
|
|
5465
5474
|
for (let i = 0; i < request.keys.length; i++) {
|
|
5466
|
-
let playerCurrencySettingsItem =
|
|
5475
|
+
let playerCurrencySettingsItem = characterPlayerSettings.playerCurrencySettings.find(x => x.key == request.keys[i]);
|
|
5467
5476
|
if (playerCurrencySettingsItem != null) {
|
|
5468
5477
|
keys.push(playerCurrencySettingsItem.key);
|
|
5469
5478
|
}
|
|
@@ -5838,6 +5847,7 @@ const InfoRequestParam_1 = __webpack_require__(21803);
|
|
|
5838
5847
|
const FriendStatus_1 = __webpack_require__(11259);
|
|
5839
5848
|
const GetFriendStatisticsLeaderboardRequestHandler_1 = __webpack_require__(31378);
|
|
5840
5849
|
const xStatisticsAggregationMethod_1 = __webpack_require__(21554);
|
|
5850
|
+
const xDatetime_1 = __webpack_require__(21817);
|
|
5841
5851
|
class GetFriendStatisticsLeaderboardAroundPlayerOperationRequest extends OperationRequest_1.OperationRequest {
|
|
5842
5852
|
isValidRequest() {
|
|
5843
5853
|
if (!super.isValidRequest())
|
|
@@ -5865,6 +5875,10 @@ __decorate([
|
|
|
5865
5875
|
(0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
|
|
5866
5876
|
__metadata("design:type", Number)
|
|
5867
5877
|
], GetFriendStatisticsLeaderboardAroundPlayerOperationRequest.prototype, "limit", void 0);
|
|
5878
|
+
__decorate([
|
|
5879
|
+
(0, DataMember_1.BooleanDataMember)({ code: GNParameterCode_1.GNParameterCode.LoadFromCache, defaultValue: true, isOptional: true }),
|
|
5880
|
+
__metadata("design:type", Boolean)
|
|
5881
|
+
], GetFriendStatisticsLeaderboardAroundPlayerOperationRequest.prototype, "loadFromCache", void 0);
|
|
5868
5882
|
class ServerGetFriendStatisticsLeaderboardAroundPlayerOperationRequest extends GetFriendStatisticsLeaderboardAroundPlayerOperationRequest {
|
|
5869
5883
|
isValidRequest() {
|
|
5870
5884
|
if (!super.isValidRequest())
|
|
@@ -5902,7 +5916,8 @@ class GetFriendStatisticsLeaderboardAroundPlayerRequestHandler extends Character
|
|
|
5902
5916
|
key: request.key,
|
|
5903
5917
|
skip: request.skip,
|
|
5904
5918
|
limit: request.limit,
|
|
5905
|
-
infoRequestParam: request.infoRequestParam
|
|
5919
|
+
infoRequestParam: request.infoRequestParam,
|
|
5920
|
+
loadFromCache: request.loadFromCache,
|
|
5906
5921
|
}, secretInfo, operationRequest);
|
|
5907
5922
|
});
|
|
5908
5923
|
}
|
|
@@ -5921,7 +5936,8 @@ class GetFriendStatisticsLeaderboardAroundPlayerRequestHandler extends Character
|
|
|
5921
5936
|
key: request.key,
|
|
5922
5937
|
skip: request.skip,
|
|
5923
5938
|
limit: request.limit,
|
|
5924
|
-
infoRequestParam: request.infoRequestParam
|
|
5939
|
+
infoRequestParam: request.infoRequestParam,
|
|
5940
|
+
loadFromCache: request.loadFromCache,
|
|
5925
5941
|
}, secretInfo, operationRequest);
|
|
5926
5942
|
});
|
|
5927
5943
|
}
|
|
@@ -5940,7 +5956,8 @@ class GetFriendStatisticsLeaderboardAroundPlayerRequestHandler extends Character
|
|
|
5940
5956
|
key: request.key,
|
|
5941
5957
|
skip: request.skip,
|
|
5942
5958
|
limit: request.limit,
|
|
5943
|
-
infoRequestParam: request.infoRequestParam
|
|
5959
|
+
infoRequestParam: request.infoRequestParam,
|
|
5960
|
+
loadFromCache: request.loadFromCache,
|
|
5944
5961
|
}, secretInfo, operationRequest);
|
|
5945
5962
|
});
|
|
5946
5963
|
}
|
|
@@ -5952,33 +5969,46 @@ class GetFriendStatisticsLeaderboardAroundPlayerRequestHandler extends Character
|
|
|
5952
5969
|
}
|
|
5953
5970
|
operationResponse = new OperationResponse_1.OperationResponse(operationRequest.getOperationCode(), operationRequest.getRequestId(), operationRequest.isEncrypted());
|
|
5954
5971
|
operationResponse.setReturnCode(ReturnCode_1.ReturnCode.Ok);
|
|
5955
|
-
let
|
|
5956
|
-
let
|
|
5957
|
-
let playerStatisticsSettingsItem = masterPlayerSettings.playerStatisticsSettings.find(x => x.key == request.key);
|
|
5972
|
+
let characterPlayerSettings = this.gnServer.getGNSettings().getCharacterPlayerSettings(secretInfo.getGameId());
|
|
5973
|
+
let playerStatisticsSettingsItem = characterPlayerSettings.playerStatisticsSettings.find(x => x.key == request.key);
|
|
5958
5974
|
if (playerStatisticsSettingsItem == null) {
|
|
5959
5975
|
operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.KeyNotFound);
|
|
5960
5976
|
return operationResponse;
|
|
5961
5977
|
}
|
|
5962
|
-
let
|
|
5963
|
-
if (
|
|
5964
|
-
|
|
5965
|
-
|
|
5978
|
+
let cacheKey = "characterPlayerStatisticsLeaderboardFriendAround_" + request.characterId;
|
|
5979
|
+
if (request.loadFromCache) {
|
|
5980
|
+
if (!this.gnServer.getCacheData().isValid(cacheKey)) {
|
|
5981
|
+
request.loadFromCache = false;
|
|
5982
|
+
}
|
|
5966
5983
|
}
|
|
5967
5984
|
let gnResults = new GNData_1.GNArray();
|
|
5968
|
-
let
|
|
5969
|
-
|
|
5970
|
-
|
|
5971
|
-
|
|
5972
|
-
|
|
5973
|
-
|
|
5974
|
-
|
|
5975
|
-
|
|
5976
|
-
|
|
5977
|
-
|
|
5978
|
-
|
|
5979
|
-
|
|
5980
|
-
|
|
5981
|
-
|
|
5985
|
+
let characterPlayers;
|
|
5986
|
+
if (request.loadFromCache) {
|
|
5987
|
+
characterPlayers = this.gnServer.getCacheData().getData(cacheKey);
|
|
5988
|
+
}
|
|
5989
|
+
else {
|
|
5990
|
+
let characterPlayer = yield this.gnServer.getDatabase().loadCharacterPlayerAsync(request.characterId, secretInfo.getGameId(), null);
|
|
5991
|
+
if (characterPlayer == null) {
|
|
5992
|
+
operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.CharacterPlayerNotFound);
|
|
5993
|
+
return operationResponse;
|
|
5994
|
+
}
|
|
5995
|
+
let friendIds = [];
|
|
5996
|
+
let allPlayerFriends = characterPlayer.getAllPlayerFriends();
|
|
5997
|
+
for (let i = 0; i < allPlayerFriends.length; i++) {
|
|
5998
|
+
let playerFriendItem = allPlayerFriends[i];
|
|
5999
|
+
if (playerFriendItem.status == FriendStatus_1.FriendStatus.Friend) {
|
|
6000
|
+
friendIds.push(playerFriendItem.friendId);
|
|
6001
|
+
}
|
|
6002
|
+
}
|
|
6003
|
+
let allCharacterPlayers = yield this.gnServer.getDatabase().loadFriendCharacterPlayersLeaderboardWithStatisticsAsync(friendIds, secretInfo.getGameId(), null);
|
|
6004
|
+
allCharacterPlayers.push(characterPlayer);
|
|
6005
|
+
let statisticsAggregationMethod = playerStatisticsSettingsItem.statisticsAggregationMethod;
|
|
6006
|
+
characterPlayers = statisticsAggregationMethod == xStatisticsAggregationMethod_1.xStatisticsAggregationMethod.Minimum
|
|
6007
|
+
? GetFriendStatisticsLeaderboardRequestHandler_1.GetFriendStatisticsLeaderboardRequestHandler.quickSortAsc(request.key, allCharacterPlayers, playerStatisticsSettingsItem.initialValue)
|
|
6008
|
+
: GetFriendStatisticsLeaderboardRequestHandler_1.GetFriendStatisticsLeaderboardRequestHandler.quickSort(request.key, allCharacterPlayers, playerStatisticsSettingsItem.initialValue);
|
|
6009
|
+
this.gnServer.getCacheData().setData(cacheKey, characterPlayers, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
|
|
6010
|
+
}
|
|
6011
|
+
let characterPlayer = characterPlayers.find(x => x.getCharacterId() == request.characterId);
|
|
5982
6012
|
let thisPosition = characterPlayers.indexOf(characterPlayer);
|
|
5983
6013
|
for (let i = request.skip + thisPosition; i < request.skip + thisPosition + request.limit; i++) {
|
|
5984
6014
|
if (i >= characterPlayers.length)
|
|
@@ -5992,6 +6022,7 @@ class GetFriendStatisticsLeaderboardAroundPlayerRequestHandler extends Character
|
|
|
5992
6022
|
}
|
|
5993
6023
|
operationResponse.setParameter(GNParameterCode_1.GNParameterCode.Results, gnResults);
|
|
5994
6024
|
operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.Ok);
|
|
6025
|
+
yield this.gnServer.getPostEventCallbackService().onEvent("characterPlayer_GetFriendStatisticsLeaderboardAroundPlayer", request, secretInfo, operationRequest, operationResponse);
|
|
5995
6026
|
return operationResponse;
|
|
5996
6027
|
});
|
|
5997
6028
|
}
|
|
@@ -6066,6 +6097,10 @@ __decorate([
|
|
|
6066
6097
|
(0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
|
|
6067
6098
|
__metadata("design:type", Number)
|
|
6068
6099
|
], GetFriendStatisticsLeaderboardOperationRequest.prototype, "limit", void 0);
|
|
6100
|
+
__decorate([
|
|
6101
|
+
(0, DataMember_1.BooleanDataMember)({ code: GNParameterCode_1.GNParameterCode.LoadFromCache, defaultValue: true, isOptional: true }),
|
|
6102
|
+
__metadata("design:type", Boolean)
|
|
6103
|
+
], GetFriendStatisticsLeaderboardOperationRequest.prototype, "loadFromCache", void 0);
|
|
6069
6104
|
class ServerGetFriendStatisticsLeaderboardOperationRequest extends GetFriendStatisticsLeaderboardOperationRequest {
|
|
6070
6105
|
isValidRequest() {
|
|
6071
6106
|
if (!super.isValidRequest())
|
|
@@ -6102,7 +6137,8 @@ class GetFriendStatisticsLeaderboardRequestHandler extends CharacterPlayerBaseRe
|
|
|
6102
6137
|
characterId: request.characterId,
|
|
6103
6138
|
skip: request.skip,
|
|
6104
6139
|
limit: request.limit,
|
|
6105
|
-
infoRequestParam: request.infoRequestParam
|
|
6140
|
+
infoRequestParam: request.infoRequestParam,
|
|
6141
|
+
loadFromCache: request.loadFromCache,
|
|
6106
6142
|
}, secretInfo, operationRequest);
|
|
6107
6143
|
});
|
|
6108
6144
|
}
|
|
@@ -6121,7 +6157,8 @@ class GetFriendStatisticsLeaderboardRequestHandler extends CharacterPlayerBaseRe
|
|
|
6121
6157
|
characterId: request.characterId,
|
|
6122
6158
|
skip: request.skip,
|
|
6123
6159
|
limit: request.limit,
|
|
6124
|
-
infoRequestParam: request.infoRequestParam
|
|
6160
|
+
infoRequestParam: request.infoRequestParam,
|
|
6161
|
+
loadFromCache: request.loadFromCache,
|
|
6125
6162
|
}, secretInfo, operationRequest);
|
|
6126
6163
|
});
|
|
6127
6164
|
}
|
|
@@ -6140,7 +6177,8 @@ class GetFriendStatisticsLeaderboardRequestHandler extends CharacterPlayerBaseRe
|
|
|
6140
6177
|
characterId: request.characterId,
|
|
6141
6178
|
skip: request.skip,
|
|
6142
6179
|
limit: request.limit,
|
|
6143
|
-
infoRequestParam: request.infoRequestParam
|
|
6180
|
+
infoRequestParam: request.infoRequestParam,
|
|
6181
|
+
loadFromCache: request.loadFromCache,
|
|
6144
6182
|
}, secretInfo, operationRequest);
|
|
6145
6183
|
});
|
|
6146
6184
|
}
|
|
@@ -6152,35 +6190,45 @@ class GetFriendStatisticsLeaderboardRequestHandler extends CharacterPlayerBaseRe
|
|
|
6152
6190
|
}
|
|
6153
6191
|
operationResponse = new OperationResponse_1.OperationResponse(operationRequest.getOperationCode(), operationRequest.getRequestId(), operationRequest.isEncrypted());
|
|
6154
6192
|
operationResponse.setReturnCode(ReturnCode_1.ReturnCode.Ok);
|
|
6155
|
-
let
|
|
6156
|
-
|
|
6157
|
-
characterPlayerFindOptions.playerStatistics = true;
|
|
6158
|
-
let masterPlayerSettings = this.gnServer.getGNSettings().getCharacterPlayerSettings(secretInfo.getGameId());
|
|
6159
|
-
let playerStatisticsSettingsItem = masterPlayerSettings.playerStatisticsSettings.find(x => x.key == request.key);
|
|
6193
|
+
let characterPlayerSettings = this.gnServer.getGNSettings().getCharacterPlayerSettings(secretInfo.getGameId());
|
|
6194
|
+
let playerStatisticsSettingsItem = characterPlayerSettings.playerStatisticsSettings.find(x => x.key == request.key);
|
|
6160
6195
|
if (playerStatisticsSettingsItem == null) {
|
|
6161
6196
|
operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.KeyNotFound);
|
|
6162
6197
|
return operationResponse;
|
|
6163
6198
|
}
|
|
6164
|
-
let
|
|
6165
|
-
if (
|
|
6166
|
-
|
|
6167
|
-
|
|
6199
|
+
let cacheKey = "characterPlayerStatisticsLeaderboardFriend_" + request.characterId;
|
|
6200
|
+
if (request.loadFromCache) {
|
|
6201
|
+
if (!this.gnServer.getCacheData().isValid(cacheKey)) {
|
|
6202
|
+
request.loadFromCache = false;
|
|
6203
|
+
}
|
|
6168
6204
|
}
|
|
6169
6205
|
let gnResults = new GNData_1.GNArray();
|
|
6170
|
-
let
|
|
6171
|
-
|
|
6172
|
-
|
|
6173
|
-
|
|
6174
|
-
|
|
6175
|
-
|
|
6176
|
-
|
|
6177
|
-
|
|
6178
|
-
|
|
6179
|
-
|
|
6180
|
-
|
|
6181
|
-
|
|
6182
|
-
|
|
6183
|
-
|
|
6206
|
+
let characterPlayers;
|
|
6207
|
+
if (request.loadFromCache) {
|
|
6208
|
+
characterPlayers = this.gnServer.getCacheData().getData(cacheKey);
|
|
6209
|
+
}
|
|
6210
|
+
else {
|
|
6211
|
+
let characterPlayer = yield this.gnServer.getDatabase().loadCharacterPlayerAsync(request.characterId, secretInfo.getGameId(), null);
|
|
6212
|
+
if (characterPlayer == null) {
|
|
6213
|
+
operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.CharacterPlayerNotFound);
|
|
6214
|
+
return operationResponse;
|
|
6215
|
+
}
|
|
6216
|
+
let friendIds = [];
|
|
6217
|
+
let allPlayerFriends = characterPlayer.getAllPlayerFriends();
|
|
6218
|
+
for (let i = 0; i < allPlayerFriends.length; i++) {
|
|
6219
|
+
let playerFriendItem = allPlayerFriends[i];
|
|
6220
|
+
if (playerFriendItem.status == FriendStatus_1.FriendStatus.Friend) {
|
|
6221
|
+
friendIds.push(playerFriendItem.friendId);
|
|
6222
|
+
}
|
|
6223
|
+
}
|
|
6224
|
+
let allCharacterPlayers = yield this.gnServer.getDatabase().loadFriendCharacterPlayersLeaderboardWithStatisticsAsync(friendIds, secretInfo.getGameId(), null);
|
|
6225
|
+
allCharacterPlayers.push(characterPlayer);
|
|
6226
|
+
let statisticsAggregationMethod = playerStatisticsSettingsItem.statisticsAggregationMethod;
|
|
6227
|
+
characterPlayers = statisticsAggregationMethod == xStatisticsAggregationMethod_1.xStatisticsAggregationMethod.Minimum
|
|
6228
|
+
? GetFriendStatisticsLeaderboardRequestHandler.quickSortAsc(request.key, allCharacterPlayers, playerStatisticsSettingsItem.initialValue)
|
|
6229
|
+
: GetFriendStatisticsLeaderboardRequestHandler.quickSort(request.key, allCharacterPlayers, playerStatisticsSettingsItem.initialValue);
|
|
6230
|
+
this.gnServer.getCacheData().setData(cacheKey, characterPlayers, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
|
|
6231
|
+
}
|
|
6184
6232
|
for (let i = request.skip; i < request.skip + request.limit; i++) {
|
|
6185
6233
|
if (i >= characterPlayers.length)
|
|
6186
6234
|
break;
|
|
@@ -6193,6 +6241,7 @@ class GetFriendStatisticsLeaderboardRequestHandler extends CharacterPlayerBaseRe
|
|
|
6193
6241
|
}
|
|
6194
6242
|
operationResponse.setParameter(GNParameterCode_1.GNParameterCode.Results, gnResults);
|
|
6195
6243
|
operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.Ok);
|
|
6244
|
+
yield this.gnServer.getPostEventCallbackService().onEvent("characterPlayer_GetFriendStatisticsLeaderboard", request, secretInfo, operationRequest, operationResponse);
|
|
6196
6245
|
return operationResponse;
|
|
6197
6246
|
});
|
|
6198
6247
|
}
|
|
@@ -8572,6 +8621,7 @@ const GNErrorCode_1 = __webpack_require__(94559);
|
|
|
8572
8621
|
const CharacterPlayerBaseRequestHandler_1 = __webpack_require__(91203);
|
|
8573
8622
|
const InfoRequestParam_1 = __webpack_require__(21803);
|
|
8574
8623
|
const xStatisticsAggregationMethod_1 = __webpack_require__(21554);
|
|
8624
|
+
const xDatetime_1 = __webpack_require__(21817);
|
|
8575
8625
|
class GetStatisticsLeaderboardAroundPlayerOperationRequest extends OperationRequest_1.OperationRequest {
|
|
8576
8626
|
isValidRequest() {
|
|
8577
8627
|
if (!super.isValidRequest())
|
|
@@ -8599,6 +8649,14 @@ __decorate([
|
|
|
8599
8649
|
(0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
|
|
8600
8650
|
__metadata("design:type", Number)
|
|
8601
8651
|
], GetStatisticsLeaderboardAroundPlayerOperationRequest.prototype, "limit", void 0);
|
|
8652
|
+
__decorate([
|
|
8653
|
+
(0, DataMember_1.BooleanDataMember)({ code: GNParameterCode_1.GNParameterCode.LoadFromCache, defaultValue: true, isOptional: true }),
|
|
8654
|
+
__metadata("design:type", Boolean)
|
|
8655
|
+
], GetStatisticsLeaderboardAroundPlayerOperationRequest.prototype, "loadFromCache", void 0);
|
|
8656
|
+
__decorate([
|
|
8657
|
+
(0, DataMember_1.StringDataMember)({ code: GNParameterCode_1.GNParameterCode.CatalogId, minLength: 2, maxLength: 32, mustNonNull: true, isOptional: true }),
|
|
8658
|
+
__metadata("design:type", String)
|
|
8659
|
+
], GetStatisticsLeaderboardAroundPlayerOperationRequest.prototype, "catalogId", void 0);
|
|
8602
8660
|
class ServerGetStatisticsLeaderboardAroundPlayerOperationRequest extends GetStatisticsLeaderboardAroundPlayerOperationRequest {
|
|
8603
8661
|
isValidRequest() {
|
|
8604
8662
|
if (!super.isValidRequest())
|
|
@@ -8636,7 +8694,9 @@ class GetStatisticsLeaderboardAroundPlayerRequestHandler extends CharacterPlayer
|
|
|
8636
8694
|
key: request.key,
|
|
8637
8695
|
skip: request.skip,
|
|
8638
8696
|
limit: request.limit,
|
|
8639
|
-
infoRequestParam: request.infoRequestParam
|
|
8697
|
+
infoRequestParam: request.infoRequestParam,
|
|
8698
|
+
loadFromCache: request.loadFromCache,
|
|
8699
|
+
catalogId: request.catalogId,
|
|
8640
8700
|
}, secretInfo, operationRequest);
|
|
8641
8701
|
});
|
|
8642
8702
|
}
|
|
@@ -8655,7 +8715,9 @@ class GetStatisticsLeaderboardAroundPlayerRequestHandler extends CharacterPlayer
|
|
|
8655
8715
|
key: request.key,
|
|
8656
8716
|
skip: request.skip,
|
|
8657
8717
|
limit: request.limit,
|
|
8658
|
-
infoRequestParam: request.infoRequestParam
|
|
8718
|
+
infoRequestParam: request.infoRequestParam,
|
|
8719
|
+
loadFromCache: request.loadFromCache,
|
|
8720
|
+
catalogId: request.catalogId,
|
|
8659
8721
|
}, secretInfo, operationRequest);
|
|
8660
8722
|
});
|
|
8661
8723
|
}
|
|
@@ -8674,7 +8736,9 @@ class GetStatisticsLeaderboardAroundPlayerRequestHandler extends CharacterPlayer
|
|
|
8674
8736
|
key: request.key,
|
|
8675
8737
|
skip: request.skip,
|
|
8676
8738
|
limit: request.limit,
|
|
8677
|
-
infoRequestParam: request.infoRequestParam
|
|
8739
|
+
infoRequestParam: request.infoRequestParam,
|
|
8740
|
+
loadFromCache: request.loadFromCache,
|
|
8741
|
+
catalogId: request.catalogId,
|
|
8678
8742
|
}, secretInfo, operationRequest);
|
|
8679
8743
|
});
|
|
8680
8744
|
}
|
|
@@ -8686,25 +8750,79 @@ class GetStatisticsLeaderboardAroundPlayerRequestHandler extends CharacterPlayer
|
|
|
8686
8750
|
}
|
|
8687
8751
|
operationResponse = new OperationResponse_1.OperationResponse(operationRequest.getOperationCode(), operationRequest.getRequestId(), operationRequest.isEncrypted());
|
|
8688
8752
|
operationResponse.setReturnCode(ReturnCode_1.ReturnCode.Ok);
|
|
8689
|
-
let
|
|
8690
|
-
let
|
|
8691
|
-
let playerStatisticsSettingsItem = masterPlayerSettings.playerStatisticsSettings.find(x => x.key == request.key);
|
|
8753
|
+
let characterPlayerSettings = this.gnServer.getGNSettings().getCharacterPlayerSettings(secretInfo.getGameId());
|
|
8754
|
+
let playerStatisticsSettingsItem = characterPlayerSettings.playerStatisticsSettings.find(x => x.key == request.key);
|
|
8692
8755
|
if (playerStatisticsSettingsItem == null) {
|
|
8693
8756
|
operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.KeyNotFound);
|
|
8694
8757
|
return operationResponse;
|
|
8695
8758
|
}
|
|
8696
|
-
let
|
|
8697
|
-
let
|
|
8759
|
+
let positionCacheKey = "characterPlayerStatisticsLeaderboardAroundPosition_" + request.characterId + "_" + request.key;
|
|
8760
|
+
let cacheKey = "characterPlayerStatisticsLeaderboardAround_" + request.characterId + "_" + request.key;
|
|
8761
|
+
if (request.catalogId) {
|
|
8762
|
+
cacheKey += "_" + request.catalogId;
|
|
8763
|
+
positionCacheKey += "_" + request.catalogId;
|
|
8764
|
+
}
|
|
8765
|
+
if (request.loadFromCache) {
|
|
8766
|
+
if (request.skip + request.limit > 100) {
|
|
8767
|
+
request.loadFromCache = false;
|
|
8768
|
+
}
|
|
8769
|
+
}
|
|
8770
|
+
if (request.loadFromCache) {
|
|
8771
|
+
if (!this.gnServer.getCacheData().isValid(cacheKey) || !this.gnServer.getCacheData().isValid(positionCacheKey)) {
|
|
8772
|
+
request.loadFromCache = false;
|
|
8773
|
+
}
|
|
8774
|
+
}
|
|
8698
8775
|
let gnResults = new GNData_1.GNArray();
|
|
8699
|
-
let thisPosition
|
|
8700
|
-
let characterPlayers
|
|
8701
|
-
|
|
8702
|
-
|
|
8703
|
-
|
|
8704
|
-
|
|
8705
|
-
|
|
8706
|
-
|
|
8707
|
-
|
|
8776
|
+
let thisPosition;
|
|
8777
|
+
let characterPlayers;
|
|
8778
|
+
if (request.loadFromCache) {
|
|
8779
|
+
thisPosition = this.gnServer.getCacheData().getData(positionCacheKey);
|
|
8780
|
+
characterPlayers = this.gnServer.getCacheData().getData(cacheKey);
|
|
8781
|
+
for (let i = request.skip; i < request.skip + request.limit; i++) {
|
|
8782
|
+
if (i >= characterPlayers.length)
|
|
8783
|
+
break;
|
|
8784
|
+
let characterPlayer = characterPlayers[i];
|
|
8785
|
+
let gnResult = new GNData_1.GNHashtable();
|
|
8786
|
+
gnResult.add(GNParameterCode_1.GNParameterCode.Position, i + thisPosition);
|
|
8787
|
+
gnResult.add(GNParameterCode_1.GNParameterCode.CharacterId, characterPlayer.getCharacterId());
|
|
8788
|
+
gnResult.add(GNParameterCode_1.GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(characterPlayer, request.infoRequestParam, secretInfo.getGameId()));
|
|
8789
|
+
gnResults.add(gnResult);
|
|
8790
|
+
}
|
|
8791
|
+
}
|
|
8792
|
+
else {
|
|
8793
|
+
let statisticsAggregationMethod = playerStatisticsSettingsItem.statisticsAggregationMethod;
|
|
8794
|
+
let direction = statisticsAggregationMethod == xStatisticsAggregationMethod_1.xStatisticsAggregationMethod.Minimum ? 1 : -1;
|
|
8795
|
+
thisPosition = yield this.gnServer.getDatabase().loadPositionCharacterPlayerLeaderboardWithStatisticsAsync(request.key, request.characterId, request.catalogId, secretInfo.getGameId(), playerStatisticsSettingsItem.initialValue, direction);
|
|
8796
|
+
if (thisPosition != -1) {
|
|
8797
|
+
this.gnServer.getCacheData().setData(positionCacheKey, thisPosition, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
|
|
8798
|
+
let characterPlayerFindOptions = this.convertToCharacterPlayerFindOptions(request.infoRequestParam);
|
|
8799
|
+
if (request.skip + request.limit <= 100) {
|
|
8800
|
+
characterPlayerFindOptions = null;
|
|
8801
|
+
characterPlayers = yield this.gnServer.getDatabase().loadCharacterPlayersLeaderboardWithStatisticsAsync(request.key, thisPosition, 100, request.catalogId, secretInfo.getGameId(), direction, characterPlayerFindOptions);
|
|
8802
|
+
for (let i = request.skip; i < request.skip + request.limit; i++) {
|
|
8803
|
+
if (i >= characterPlayers.length)
|
|
8804
|
+
break;
|
|
8805
|
+
let characterPlayer = characterPlayers[i];
|
|
8806
|
+
let gnResult = new GNData_1.GNHashtable();
|
|
8807
|
+
gnResult.add(GNParameterCode_1.GNParameterCode.Position, i + thisPosition);
|
|
8808
|
+
gnResult.add(GNParameterCode_1.GNParameterCode.CharacterId, characterPlayer.getCharacterId());
|
|
8809
|
+
gnResult.add(GNParameterCode_1.GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(characterPlayer, request.infoRequestParam, secretInfo.getGameId()));
|
|
8810
|
+
gnResults.add(gnResult);
|
|
8811
|
+
}
|
|
8812
|
+
this.gnServer.getCacheData().setData(cacheKey, characterPlayers, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
|
|
8813
|
+
}
|
|
8814
|
+
else {
|
|
8815
|
+
characterPlayers = yield this.gnServer.getDatabase().loadCharacterPlayersLeaderboardWithStatisticsAsync(request.key, thisPosition + request.skip, request.limit, request.catalogId, secretInfo.getGameId(), direction, characterPlayerFindOptions);
|
|
8816
|
+
for (let i = 0; i < characterPlayers.length; i++) {
|
|
8817
|
+
let characterPlayer = characterPlayers[i];
|
|
8818
|
+
let gnResult = new GNData_1.GNHashtable();
|
|
8819
|
+
gnResult.add(GNParameterCode_1.GNParameterCode.Position, i + thisPosition + request.skip);
|
|
8820
|
+
gnResult.add(GNParameterCode_1.GNParameterCode.CharacterId, characterPlayer.getCharacterId());
|
|
8821
|
+
gnResult.add(GNParameterCode_1.GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(characterPlayer, request.infoRequestParam, secretInfo.getGameId()));
|
|
8822
|
+
gnResults.add(gnResult);
|
|
8823
|
+
}
|
|
8824
|
+
}
|
|
8825
|
+
}
|
|
8708
8826
|
}
|
|
8709
8827
|
operationResponse.setParameter(GNParameterCode_1.GNParameterCode.Results, gnResults);
|
|
8710
8828
|
operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.Ok);
|
|
@@ -8786,6 +8904,10 @@ __decorate([
|
|
|
8786
8904
|
(0, DataMember_1.StringDataMember)({ code: GNParameterCode_1.GNParameterCode.Version, minLength: 2, maxLength: 32, mustNonNull: true, isOptional: true }),
|
|
8787
8905
|
__metadata("design:type", String)
|
|
8788
8906
|
], GetStatisticsLeaderboardOperationRequest.prototype, "version", void 0);
|
|
8907
|
+
__decorate([
|
|
8908
|
+
(0, DataMember_1.StringDataMember)({ code: GNParameterCode_1.GNParameterCode.CatalogId, minLength: 2, maxLength: 32, mustNonNull: true, isOptional: true }),
|
|
8909
|
+
__metadata("design:type", String)
|
|
8910
|
+
], GetStatisticsLeaderboardOperationRequest.prototype, "catalogId", void 0);
|
|
8789
8911
|
class ServerGetStatisticsLeaderboardOperationRequest extends GetStatisticsLeaderboardOperationRequest {
|
|
8790
8912
|
isValidRequest() {
|
|
8791
8913
|
if (!super.isValidRequest())
|
|
@@ -8827,6 +8949,7 @@ class GetStatisticsLeaderboardRequestHandler extends CharacterPlayerBaseRequestH
|
|
|
8827
8949
|
infoRequestParam: request.infoRequestParam,
|
|
8828
8950
|
loadFromCache: request.loadFromCache,
|
|
8829
8951
|
version: request.version,
|
|
8952
|
+
catalogId: request.catalogId,
|
|
8830
8953
|
}, secretInfo, operationRequest);
|
|
8831
8954
|
});
|
|
8832
8955
|
}
|
|
@@ -8847,6 +8970,7 @@ class GetStatisticsLeaderboardRequestHandler extends CharacterPlayerBaseRequestH
|
|
|
8847
8970
|
infoRequestParam: request.infoRequestParam,
|
|
8848
8971
|
loadFromCache: request.loadFromCache,
|
|
8849
8972
|
version: request.version,
|
|
8973
|
+
catalogId: request.catalogId,
|
|
8850
8974
|
}, secretInfo, operationRequest);
|
|
8851
8975
|
});
|
|
8852
8976
|
}
|
|
@@ -8867,6 +8991,7 @@ class GetStatisticsLeaderboardRequestHandler extends CharacterPlayerBaseRequestH
|
|
|
8867
8991
|
infoRequestParam: request.infoRequestParam,
|
|
8868
8992
|
loadFromCache: request.loadFromCache,
|
|
8869
8993
|
version: request.version,
|
|
8994
|
+
catalogId: request.catalogId,
|
|
8870
8995
|
}, secretInfo, operationRequest);
|
|
8871
8996
|
});
|
|
8872
8997
|
}
|
|
@@ -8878,15 +9003,16 @@ class GetStatisticsLeaderboardRequestHandler extends CharacterPlayerBaseRequestH
|
|
|
8878
9003
|
}
|
|
8879
9004
|
operationResponse = new OperationResponse_1.OperationResponse(operationRequest.getOperationCode(), operationRequest.getRequestId(), operationRequest.isEncrypted());
|
|
8880
9005
|
operationResponse.setReturnCode(ReturnCode_1.ReturnCode.Ok);
|
|
8881
|
-
let
|
|
8882
|
-
let
|
|
8883
|
-
let playerStatisticsSettingsItem = masterPlayerSettings.playerStatisticsSettings.find(x => x.key == request.key);
|
|
9006
|
+
let characterPlayerSettings = this.gnServer.getGNSettings().getCharacterPlayerSettings(secretInfo.getGameId());
|
|
9007
|
+
let playerStatisticsSettingsItem = characterPlayerSettings.playerStatisticsSettings.find(x => x.key == request.key);
|
|
8884
9008
|
if (playerStatisticsSettingsItem == null) {
|
|
8885
9009
|
operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.KeyNotFound);
|
|
8886
9010
|
return operationResponse;
|
|
8887
9011
|
}
|
|
8888
9012
|
if (!request.version) {
|
|
8889
9013
|
let cacheKey = "characterPlayerStatisticsLeaderboard_" + request.key;
|
|
9014
|
+
if (request.catalogId)
|
|
9015
|
+
cacheKey += "_" + request.catalogId;
|
|
8890
9016
|
if (request.loadFromCache) {
|
|
8891
9017
|
if (request.skip + request.limit > 100) {
|
|
8892
9018
|
request.loadFromCache = false;
|
|
@@ -8897,8 +9023,6 @@ class GetStatisticsLeaderboardRequestHandler extends CharacterPlayerBaseRequestH
|
|
|
8897
9023
|
request.loadFromCache = false;
|
|
8898
9024
|
}
|
|
8899
9025
|
}
|
|
8900
|
-
let statisticsAggregationMethod = playerStatisticsSettingsItem.statisticsAggregationMethod;
|
|
8901
|
-
let direction = statisticsAggregationMethod == xStatisticsAggregationMethod_1.xStatisticsAggregationMethod.Minimum ? 1 : -1;
|
|
8902
9026
|
let gnResults = new GNData_1.GNArray();
|
|
8903
9027
|
let characterPlayers;
|
|
8904
9028
|
if (request.loadFromCache) {
|
|
@@ -8915,9 +9039,12 @@ class GetStatisticsLeaderboardRequestHandler extends CharacterPlayerBaseRequestH
|
|
|
8915
9039
|
}
|
|
8916
9040
|
}
|
|
8917
9041
|
else {
|
|
9042
|
+
let characterPlayerFindOptions = this.convertToCharacterPlayerFindOptions(request.infoRequestParam);
|
|
9043
|
+
let statisticsAggregationMethod = playerStatisticsSettingsItem.statisticsAggregationMethod;
|
|
9044
|
+
let direction = statisticsAggregationMethod == xStatisticsAggregationMethod_1.xStatisticsAggregationMethod.Minimum ? 1 : -1;
|
|
8918
9045
|
if (request.skip + request.limit <= 100) {
|
|
8919
9046
|
characterPlayerFindOptions = null;
|
|
8920
|
-
characterPlayers = yield this.gnServer.getDatabase().loadCharacterPlayersLeaderboardWithStatisticsAsync(request.key, 0, 100, secretInfo.getGameId(), direction, characterPlayerFindOptions);
|
|
9047
|
+
characterPlayers = yield this.gnServer.getDatabase().loadCharacterPlayersLeaderboardWithStatisticsAsync(request.key, 0, 100, request.catalogId, secretInfo.getGameId(), direction, characterPlayerFindOptions);
|
|
8921
9048
|
for (let i = request.skip; i < request.skip + request.limit; i++) {
|
|
8922
9049
|
if (i >= characterPlayers.length)
|
|
8923
9050
|
break;
|
|
@@ -8931,7 +9058,7 @@ class GetStatisticsLeaderboardRequestHandler extends CharacterPlayerBaseRequestH
|
|
|
8931
9058
|
this.gnServer.getCacheData().setData(cacheKey, characterPlayers, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
|
|
8932
9059
|
}
|
|
8933
9060
|
else {
|
|
8934
|
-
characterPlayers = yield this.gnServer.getDatabase().loadCharacterPlayersLeaderboardWithStatisticsAsync(request.key, request.skip, request.limit, secretInfo.getGameId(), direction, characterPlayerFindOptions);
|
|
9061
|
+
characterPlayers = yield this.gnServer.getDatabase().loadCharacterPlayersLeaderboardWithStatisticsAsync(request.key, request.skip, request.limit, request.catalogId, secretInfo.getGameId(), direction, characterPlayerFindOptions);
|
|
8935
9062
|
for (let i = 0; i < characterPlayers.length; i++) {
|
|
8936
9063
|
let characterPlayer = characterPlayers[i];
|
|
8937
9064
|
let gnResult = new GNData_1.GNHashtable();
|
|
@@ -9131,11 +9258,11 @@ class GetStatisticsLogRequestHandler extends RequestHandler_1.RequestHandler {
|
|
|
9131
9258
|
}
|
|
9132
9259
|
operationResponse = new OperationResponse_1.OperationResponse(operationRequest.getOperationCode(), operationRequest.getRequestId(), operationRequest.isEncrypted());
|
|
9133
9260
|
operationResponse.setReturnCode(ReturnCode_1.ReturnCode.Ok);
|
|
9134
|
-
let
|
|
9261
|
+
let characterPlayerSettings = this.gnServer.getGNSettings().getCharacterPlayerSettings(secretInfo.getGameId());
|
|
9135
9262
|
let keys = [];
|
|
9136
9263
|
if (request.keys) {
|
|
9137
9264
|
for (let i = 0; i < request.keys.length; i++) {
|
|
9138
|
-
let playerStatisticsSettingsItem =
|
|
9265
|
+
let playerStatisticsSettingsItem = characterPlayerSettings.playerStatisticsSettings.find(x => x.key == request.keys[i]);
|
|
9139
9266
|
if (playerStatisticsSettingsItem != null) {
|
|
9140
9267
|
keys.push(playerStatisticsSettingsItem.key);
|
|
9141
9268
|
}
|
|
@@ -9888,7 +10015,7 @@ __decorate([
|
|
|
9888
10015
|
__metadata("design:type", String)
|
|
9889
10016
|
], GrantPlayerItemOperationRequest.prototype, "displayName", void 0);
|
|
9890
10017
|
__decorate([
|
|
9891
|
-
(0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Amount, defaultValue: 1, isOptional: true }),
|
|
10018
|
+
(0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Amount, defaultValue: 1, mustInt: true, isOptional: true }),
|
|
9892
10019
|
__metadata("design:type", Number)
|
|
9893
10020
|
], GrantPlayerItemOperationRequest.prototype, "amount", void 0);
|
|
9894
10021
|
class ServerGrantPlayerItemOperationRequest extends GrantPlayerItemOperationRequest {
|
|
@@ -9995,7 +10122,7 @@ class GrantPlayerItemRequestHandler extends CharacterPlayerBaseRequestHandler_1.
|
|
|
9995
10122
|
return operationResponse;
|
|
9996
10123
|
}
|
|
9997
10124
|
let amount = request.amount;
|
|
9998
|
-
if (playerItemCatalogSettingsItem.itemType == ItemType_1.ItemType.
|
|
10125
|
+
if (playerItemCatalogSettingsItem.itemType == ItemType_1.ItemType.NonStackable) {
|
|
9999
10126
|
amount = 1;
|
|
10000
10127
|
}
|
|
10001
10128
|
let itemId = StringUtility_1.StringUtility.generateRandomString(12, this.gnServer.getIdTypeCase());
|
|
@@ -14822,6 +14949,7 @@ const GNErrorCode_1 = __webpack_require__(94559);
|
|
|
14822
14949
|
const GNParameterCode_1 = __webpack_require__(38343);
|
|
14823
14950
|
const Md5Generate_1 = __webpack_require__(38632);
|
|
14824
14951
|
const StringUtility_1 = __webpack_require__(77468);
|
|
14952
|
+
const xDatetime_1 = __webpack_require__(21817);
|
|
14825
14953
|
class RequestDownloadFileUploadInfoOperationRequest extends OperationRequest_1.OperationRequest {
|
|
14826
14954
|
isValidRequest() {
|
|
14827
14955
|
if (!super.isValidRequest())
|
|
@@ -14922,7 +15050,7 @@ class RequestDownloadFileUploadInfoRequestHandler extends RequestHandler_1.Reque
|
|
|
14922
15050
|
let collection = this.gnServer.getDatabase().systemCollection("DownloadFileSession");
|
|
14923
15051
|
collection.insertOne({
|
|
14924
15052
|
fileId: request.fileId,
|
|
14925
|
-
createdAt:
|
|
15053
|
+
createdAt: xDatetime_1.xDatetime.getCurrentDate(),
|
|
14926
15054
|
downloadToken: downloadToken,
|
|
14927
15055
|
isValid: true,
|
|
14928
15056
|
});
|
|
@@ -15365,8 +15493,10 @@ class DeleteInDatabaseRequestHandler extends RequestHandler_1.RequestHandler {
|
|
|
15365
15493
|
this.gnServer.getDatabase().runtimeCollection("DeleteInDatabaseLog").insertOne(result);
|
|
15366
15494
|
let gamePlayer = yield this.gnServer.getDatabase().loadGamePlayerAsync(characterPlayer.getOwner().id, request.gameId);
|
|
15367
15495
|
if (gamePlayer != null) {
|
|
15368
|
-
gamePlayer.
|
|
15369
|
-
|
|
15496
|
+
if (gamePlayer.hasPlayerCharacter(characterPlayer.getCharacterId())) {
|
|
15497
|
+
gamePlayer.removePlayerCharacter(characterPlayer.getCharacterId());
|
|
15498
|
+
gamePlayer.saveAsync();
|
|
15499
|
+
}
|
|
15370
15500
|
}
|
|
15371
15501
|
}
|
|
15372
15502
|
else if (request.type == OwnerType_1.OwnerType.Inventory) {
|
|
@@ -15388,22 +15518,28 @@ class DeleteInDatabaseRequestHandler extends RequestHandler_1.RequestHandler {
|
|
|
15388
15518
|
if (owner.type == OwnerType_1.OwnerType.GamePlayer) {
|
|
15389
15519
|
let gamePlayer = yield this.gnServer.getDatabase().loadGamePlayerAsync(inventory.getOwner().id, request.gameId);
|
|
15390
15520
|
if (gamePlayer != null) {
|
|
15391
|
-
gamePlayer.
|
|
15392
|
-
|
|
15521
|
+
if (gamePlayer.hasPlayerInventory(inventory.getItemId())) {
|
|
15522
|
+
gamePlayer.removePlayerInventory(inventory.getItemId());
|
|
15523
|
+
gamePlayer.saveAsync();
|
|
15524
|
+
}
|
|
15393
15525
|
}
|
|
15394
15526
|
}
|
|
15395
15527
|
else if (owner.type == OwnerType_1.OwnerType.CharacterPlayer) {
|
|
15396
15528
|
let characterPlayer = yield this.gnServer.getDatabase().loadCharacterPlayerAsync(inventory.getOwner().id, request.gameId);
|
|
15397
15529
|
if (characterPlayer != null) {
|
|
15398
|
-
characterPlayer.
|
|
15399
|
-
|
|
15530
|
+
if (characterPlayer.hasPlayerInventory(inventory.getItemId())) {
|
|
15531
|
+
characterPlayer.removePlayerInventory(inventory.getItemId());
|
|
15532
|
+
characterPlayer.saveAsync();
|
|
15533
|
+
}
|
|
15400
15534
|
}
|
|
15401
15535
|
}
|
|
15402
15536
|
else if (owner.type == OwnerType_1.OwnerType.Group) {
|
|
15403
15537
|
let group = yield this.gnServer.getDatabase().loadGroupAsync(inventory.getOwner().id, request.gameId);
|
|
15404
15538
|
if (group != null) {
|
|
15405
|
-
group.
|
|
15406
|
-
|
|
15539
|
+
if (group.hasGroupInventory(inventory.getItemId())) {
|
|
15540
|
+
group.removeGroupInventory(inventory.getItemId());
|
|
15541
|
+
group.saveAsync();
|
|
15542
|
+
}
|
|
15407
15543
|
}
|
|
15408
15544
|
}
|
|
15409
15545
|
}
|
|
@@ -15422,27 +15558,19 @@ class DeleteInDatabaseRequestHandler extends RequestHandler_1.RequestHandler {
|
|
|
15422
15558
|
if (memberId.length == 11) {
|
|
15423
15559
|
let characterPlayer = yield this.gnServer.getDatabase().loadCharacterPlayerAsync(memberId, request.gameId);
|
|
15424
15560
|
if (characterPlayer != null) {
|
|
15425
|
-
|
|
15426
|
-
|
|
15427
|
-
|
|
15428
|
-
|
|
15429
|
-
}
|
|
15430
|
-
});
|
|
15431
|
-
characterPlayer.removePlayerGroup(groupId);
|
|
15432
|
-
characterPlayer.saveAsync();
|
|
15561
|
+
if (characterPlayer.hasPlayerGroup(groupId)) {
|
|
15562
|
+
characterPlayer.removePlayerGroup(groupId);
|
|
15563
|
+
characterPlayer.saveAsync();
|
|
15564
|
+
}
|
|
15433
15565
|
}
|
|
15434
15566
|
}
|
|
15435
15567
|
else if (memberId.length == 10) {
|
|
15436
15568
|
let gamePlayer = yield this.gnServer.getDatabase().loadGamePlayerAsync(memberId, request.gameId);
|
|
15437
15569
|
if (gamePlayer != null) {
|
|
15438
|
-
|
|
15439
|
-
|
|
15440
|
-
|
|
15441
|
-
|
|
15442
|
-
}
|
|
15443
|
-
});
|
|
15444
|
-
gamePlayer.removePlayerGroup(groupId);
|
|
15445
|
-
gamePlayer.saveAsync();
|
|
15570
|
+
if (gamePlayer.hasPlayerGroup(groupId)) {
|
|
15571
|
+
gamePlayer.removePlayerGroup(groupId);
|
|
15572
|
+
gamePlayer.saveAsync();
|
|
15573
|
+
}
|
|
15446
15574
|
}
|
|
15447
15575
|
}
|
|
15448
15576
|
}
|
|
@@ -15931,13 +16059,9 @@ class DeleteInDatabaseRequestHandler extends RequestHandler_1.RequestHandler {
|
|
|
15931
16059
|
return __awaiter(this, void 0, void 0, function* () {
|
|
15932
16060
|
let answer = [];
|
|
15933
16061
|
let userId = gamePlayer.getUserId();
|
|
15934
|
-
|
|
15935
|
-
|
|
15936
|
-
|
|
15937
|
-
friendId: userId,
|
|
15938
|
-
}
|
|
15939
|
-
});
|
|
15940
|
-
friendPlayer.removePlayerFriend(userId);
|
|
16062
|
+
if (friendPlayer.hasPlayerFriend(userId)) {
|
|
16063
|
+
friendPlayer.removePlayerGroup(userId);
|
|
16064
|
+
}
|
|
15941
16065
|
return answer;
|
|
15942
16066
|
});
|
|
15943
16067
|
}
|
|
@@ -15945,13 +16069,9 @@ class DeleteInDatabaseRequestHandler extends RequestHandler_1.RequestHandler {
|
|
|
15945
16069
|
return __awaiter(this, void 0, void 0, function* () {
|
|
15946
16070
|
let answer = [];
|
|
15947
16071
|
let characterId = characterPlayer.getCharacterId();
|
|
15948
|
-
|
|
15949
|
-
|
|
15950
|
-
|
|
15951
|
-
friendId: characterId,
|
|
15952
|
-
}
|
|
15953
|
-
});
|
|
15954
|
-
friendPlayer.removePlayerFriend(characterId);
|
|
16072
|
+
if (friendPlayer.hasPlayerFriend(characterId)) {
|
|
16073
|
+
friendPlayer.removePlayerGroup(characterId);
|
|
16074
|
+
}
|
|
15955
16075
|
return answer;
|
|
15956
16076
|
});
|
|
15957
16077
|
}
|
|
@@ -15959,15 +16079,11 @@ class DeleteInDatabaseRequestHandler extends RequestHandler_1.RequestHandler {
|
|
|
15959
16079
|
return __awaiter(this, void 0, void 0, function* () {
|
|
15960
16080
|
let answer = [];
|
|
15961
16081
|
let userId = gamePlayer.getUserId();
|
|
15962
|
-
group.
|
|
16082
|
+
if (group.hasMember(userId)) {
|
|
16083
|
+
group.removeMember(userId);
|
|
16084
|
+
}
|
|
15963
16085
|
let groupId = group.getGroupId();
|
|
15964
16086
|
this.gnServer.getCacheData().removeData("GroupMessages_" + groupId);
|
|
15965
|
-
answer.push({
|
|
15966
|
-
type: "GamePlayer.Group",
|
|
15967
|
-
obj: {
|
|
15968
|
-
groupId: groupId,
|
|
15969
|
-
}
|
|
15970
|
-
});
|
|
15971
16087
|
return answer;
|
|
15972
16088
|
});
|
|
15973
16089
|
}
|
|
@@ -15975,15 +16091,11 @@ class DeleteInDatabaseRequestHandler extends RequestHandler_1.RequestHandler {
|
|
|
15975
16091
|
return __awaiter(this, void 0, void 0, function* () {
|
|
15976
16092
|
let answer = [];
|
|
15977
16093
|
let characterId = characterPlayer.getCharacterId();
|
|
15978
|
-
group.
|
|
16094
|
+
if (group.hasMember(characterId)) {
|
|
16095
|
+
group.removeMember(characterId);
|
|
16096
|
+
}
|
|
15979
16097
|
let groupId = group.getGroupId();
|
|
15980
16098
|
this.gnServer.getCacheData().removeData("GroupMessages_" + groupId);
|
|
15981
|
-
answer.push({
|
|
15982
|
-
type: "CharacterPlayer.Member",
|
|
15983
|
-
obj: {
|
|
15984
|
-
groupId: groupId,
|
|
15985
|
-
}
|
|
15986
|
-
});
|
|
15987
16099
|
return answer;
|
|
15988
16100
|
});
|
|
15989
16101
|
}
|
|
@@ -16140,6 +16252,14 @@ __decorate([
|
|
|
16140
16252
|
(0, DataMember_1.BooleanDataMember)({ code: GNParameterCode_1.GNParameterCode.DatabaseSystem, isOptional: true }),
|
|
16141
16253
|
__metadata("design:type", Boolean)
|
|
16142
16254
|
], GetAnalyticsOperationRequest.prototype, "databaseSystem", void 0);
|
|
16255
|
+
__decorate([
|
|
16256
|
+
(0, DataMember_1.BooleanDataMember)({ code: GNParameterCode_1.GNParameterCode.Cost, isOptional: true }),
|
|
16257
|
+
__metadata("design:type", Boolean)
|
|
16258
|
+
], GetAnalyticsOperationRequest.prototype, "cost", void 0);
|
|
16259
|
+
__decorate([
|
|
16260
|
+
(0, DataMember_1.BooleanDataMember)({ code: GNParameterCode_1.GNParameterCode.MonthlyCost, isOptional: true }),
|
|
16261
|
+
__metadata("design:type", Boolean)
|
|
16262
|
+
], GetAnalyticsOperationRequest.prototype, "monthlyCost", void 0);
|
|
16143
16263
|
class GetAnalyticsRequestHandler extends RequestHandler_1.RequestHandler {
|
|
16144
16264
|
getCode() {
|
|
16145
16265
|
return OperationCode_1.OperationCode.GetAnalytics;
|
|
@@ -16164,6 +16284,8 @@ class GetAnalyticsRequestHandler extends RequestHandler_1.RequestHandler {
|
|
|
16164
16284
|
operationSystem: request.operationSystem,
|
|
16165
16285
|
requestComplete: request.requestComplete,
|
|
16166
16286
|
databaseSystem: request.databaseSystem,
|
|
16287
|
+
cost: request.cost,
|
|
16288
|
+
monthlyCost: request.monthlyCost,
|
|
16167
16289
|
}
|
|
16168
16290
|
}, secretInfo, operationRequest);
|
|
16169
16291
|
});
|
|
@@ -16284,6 +16406,28 @@ class GetAnalyticsRequestHandler extends RequestHandler_1.RequestHandler {
|
|
|
16284
16406
|
}
|
|
16285
16407
|
operationResponse.setParameter(GNParameterCode_1.GNParameterCode.RequestComplete, gnRequestComplete);
|
|
16286
16408
|
}
|
|
16409
|
+
if (request.requestParams.cost) {
|
|
16410
|
+
let gnCost = new GNData_1.GNHashtable();
|
|
16411
|
+
if (bigAnalyticsItem.cost) {
|
|
16412
|
+
gnCost.add(GNParameterCode_1.GNParameterCode.RequestCount, bigAnalyticsItem.cost.requestCount);
|
|
16413
|
+
gnCost.add(GNParameterCode_1.GNParameterCode.MatchmakingRequestCount, bigAnalyticsItem.cost.matchmakingRequestCount);
|
|
16414
|
+
gnCost.add(GNParameterCode_1.GNParameterCode.CloudScriptGBs, bigAnalyticsItem.cost.cloudScriptGBs);
|
|
16415
|
+
gnCost.add(GNParameterCode_1.GNParameterCode.StorageSizeInBytes, bigAnalyticsItem.cost.storageSizeInBytes);
|
|
16416
|
+
gnCost.add(GNParameterCode_1.GNParameterCode.DataTransferSizeInBytes, bigAnalyticsItem.cost.dataTransferSizeInBytes);
|
|
16417
|
+
}
|
|
16418
|
+
operationResponse.setParameter(GNParameterCode_1.GNParameterCode.Cost, gnCost);
|
|
16419
|
+
}
|
|
16420
|
+
if (request.requestParams.monthlyCost) {
|
|
16421
|
+
let gnCost = new GNData_1.GNHashtable();
|
|
16422
|
+
if (bigAnalyticsItem.monthlyCost) {
|
|
16423
|
+
gnCost.add(GNParameterCode_1.GNParameterCode.RequestCount, bigAnalyticsItem.monthlyCost.requestCount);
|
|
16424
|
+
gnCost.add(GNParameterCode_1.GNParameterCode.MatchmakingRequestCount, bigAnalyticsItem.monthlyCost.matchmakingRequestCount);
|
|
16425
|
+
gnCost.add(GNParameterCode_1.GNParameterCode.CloudScriptGBs, bigAnalyticsItem.monthlyCost.cloudScriptGBs);
|
|
16426
|
+
gnCost.add(GNParameterCode_1.GNParameterCode.StorageSizeInBytes, bigAnalyticsItem.monthlyCost.storageSizeInBytes);
|
|
16427
|
+
gnCost.add(GNParameterCode_1.GNParameterCode.DataTransferSizeInBytes, bigAnalyticsItem.monthlyCost.dataTransferSizeInBytes);
|
|
16428
|
+
}
|
|
16429
|
+
operationResponse.setParameter(GNParameterCode_1.GNParameterCode.MonthlyCost, gnCost);
|
|
16430
|
+
}
|
|
16287
16431
|
operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.Ok);
|
|
16288
16432
|
yield this.gnServer.getPostEventCallbackService().onEvent("dashboard_GetAnalytics", request, secretInfo, operationRequest, operationResponse);
|
|
16289
16433
|
return operationResponse;
|
|
@@ -22959,30 +23103,30 @@ class GrantSecretInfoRequestHandler extends RequestHandler_1.RequestHandler {
|
|
|
22959
23103
|
getStoreLog: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: true, serverSelfEnable: false, },
|
|
22960
23104
|
},
|
|
22961
23105
|
masterAdmin: {
|
|
22962
|
-
setMasterGameSettings: { selfEnable:
|
|
23106
|
+
setMasterGameSettings: { selfEnable: true, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
|
|
22963
23107
|
grantAdminAccount: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
|
|
22964
23108
|
removeAdminAccount: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
|
|
22965
23109
|
setPasswordAdminAccount: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
|
|
22966
23110
|
setSecretKeyAdminAccount: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
|
|
22967
23111
|
setGameInformation: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
|
|
22968
23112
|
grantGame: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
|
|
22969
|
-
changePasswordAdminAccount: { selfEnable:
|
|
23113
|
+
changePasswordAdminAccount: { selfEnable: true, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
|
|
22970
23114
|
getAdminAccountList: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
|
|
22971
23115
|
getGameInformation: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
|
|
22972
|
-
getGameList: { selfEnable:
|
|
22973
|
-
getMasterGameSettings: { selfEnable:
|
|
22974
|
-
getServerLog: { selfEnable:
|
|
22975
|
-
getSecretInfoInformation: { selfEnable:
|
|
23116
|
+
getGameList: { selfEnable: true, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
|
|
23117
|
+
getMasterGameSettings: { selfEnable: true, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
|
|
23118
|
+
getServerLog: { selfEnable: true, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
|
|
23119
|
+
getSecretInfoInformation: { selfEnable: true, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
|
|
22976
23120
|
getSecretInfoList: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
|
|
22977
23121
|
grantSecretInfo: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
|
|
22978
23122
|
setSecretInfoInformation: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
|
|
22979
|
-
getUsernameAdminAccount: { selfEnable:
|
|
22980
|
-
getAnalytics: { selfEnable:
|
|
22981
|
-
getEventCallbackCloudScript: { selfEnable:
|
|
22982
|
-
setEventCallbackCloudScript: { selfEnable:
|
|
22983
|
-
resetStatisticsLeaderboard: { selfEnable:
|
|
22984
|
-
getBackupStatisticsLeaderboardVersion: { selfEnable:
|
|
22985
|
-
getServerGameData: { selfEnable:
|
|
23123
|
+
getUsernameAdminAccount: { selfEnable: true, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
|
|
23124
|
+
getAnalytics: { selfEnable: true, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
|
|
23125
|
+
getEventCallbackCloudScript: { selfEnable: true, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
|
|
23126
|
+
setEventCallbackCloudScript: { selfEnable: true, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
|
|
23127
|
+
resetStatisticsLeaderboard: { selfEnable: true, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
|
|
23128
|
+
getBackupStatisticsLeaderboardVersion: { selfEnable: true, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
|
|
23129
|
+
getServerGameData: { selfEnable: true, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
|
|
22986
23130
|
deleteInDatabase: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
|
|
22987
23131
|
},
|
|
22988
23132
|
multiplayer: {
|
|
@@ -23657,6 +23801,10 @@ __decorate([
|
|
|
23657
23801
|
(0, DataMember_1.StringDataMember)({ code: GNParameterCode_1.GNParameterCode.Log, minLength: 1, maxLength: 256, mustNonNull: true, isOptional: true }),
|
|
23658
23802
|
__metadata("design:type", String)
|
|
23659
23803
|
], ResetStatisticsLeaderboardOperationRequest.prototype, "log", void 0);
|
|
23804
|
+
__decorate([
|
|
23805
|
+
(0, DataMember_1.StringDataMember)({ code: GNParameterCode_1.GNParameterCode.CatalogId, minLength: 2, maxLength: 32, mustNonNull: true, isOptional: true }),
|
|
23806
|
+
__metadata("design:type", String)
|
|
23807
|
+
], ResetStatisticsLeaderboardOperationRequest.prototype, "catalogId", void 0);
|
|
23660
23808
|
class ResetStatisticsLeaderboardRequestHandler extends RequestHandler_1.RequestHandler {
|
|
23661
23809
|
getCode() {
|
|
23662
23810
|
return OperationCode_1.OperationCode.ResetStatisticsLeaderboard;
|
|
@@ -23679,6 +23827,7 @@ class ResetStatisticsLeaderboardRequestHandler extends RequestHandler_1.RequestH
|
|
|
23679
23827
|
version: request.version,
|
|
23680
23828
|
gameId: request.gameId,
|
|
23681
23829
|
log: request.log,
|
|
23830
|
+
catalogId: request.catalogId,
|
|
23682
23831
|
}, secretInfo, operationRequest);
|
|
23683
23832
|
});
|
|
23684
23833
|
}
|
|
@@ -23854,7 +24003,7 @@ class ResetStatisticsLeaderboardRequestHandler extends RequestHandler_1.RequestH
|
|
|
23854
24003
|
let direction = statisticsAggregationMethod == xStatisticsAggregationMethod_1.xStatisticsAggregationMethod.Minimum ? 1 : -1;
|
|
23855
24004
|
let characterPlayerCollection = yield this.gnServer.getDatabase().systemGameCollection("CharacterPlayer", gameId);
|
|
23856
24005
|
xDebug_1.Debug.log("[GN] ResetStatisticsLeaderboard for key " + key + " at " + characterPlayerCollection.collectionName + " starting");
|
|
23857
|
-
let characterPlayers = yield this.gnServer.getDatabase().loadCharacterPlayersLeaderboardWithStatisticsAllAsync(key, gameId, direction, characterPlayerFindOptions);
|
|
24006
|
+
let characterPlayers = yield this.gnServer.getDatabase().loadCharacterPlayersLeaderboardWithStatisticsAllAsync(key, request.catalogId, gameId, direction, characterPlayerFindOptions);
|
|
23858
24007
|
let backupData = {
|
|
23859
24008
|
key: key,
|
|
23860
24009
|
version: version,
|
|
@@ -23922,7 +24071,7 @@ class ResetStatisticsLeaderboardRequestHandler extends RequestHandler_1.RequestH
|
|
|
23922
24071
|
let direction = statisticsAggregationMethod == xStatisticsAggregationMethod_1.xStatisticsAggregationMethod.Minimum ? 1 : -1;
|
|
23923
24072
|
let groupCollection = yield this.gnServer.getDatabase().systemGameCollection("Group", gameId);
|
|
23924
24073
|
xDebug_1.Debug.log("[GN] ResetStatisticsLeaderboard for key " + key + " at " + groupCollection.collectionName + " starting");
|
|
23925
|
-
let groups = yield this.gnServer.getDatabase().loadGroupsLeaderboardWithStatisticsAllAsync(key, gameId, direction, groupFindOptions);
|
|
24074
|
+
let groups = yield this.gnServer.getDatabase().loadGroupsLeaderboardWithStatisticsAllAsync(key, request.catalogId, gameId, direction, groupFindOptions);
|
|
23926
24075
|
let backupData = {
|
|
23927
24076
|
key: key,
|
|
23928
24077
|
version: version,
|
|
@@ -23985,7 +24134,7 @@ class ResetStatisticsLeaderboardRequestHandler extends RequestHandler_1.RequestH
|
|
|
23985
24134
|
let direction = statisticsAggregationMethod == xStatisticsAggregationMethod_1.xStatisticsAggregationMethod.Minimum ? 1 : -1;
|
|
23986
24135
|
let inventoryCollection = yield this.gnServer.getDatabase().systemGameCollection("Inventory", gameId);
|
|
23987
24136
|
xDebug_1.Debug.log("[GN] ResetStatisticsLeaderboard for key " + key + " at " + inventoryCollection.collectionName + " starting");
|
|
23988
|
-
let inventories = yield this.gnServer.getDatabase().loadInventoriesLeaderboardWithStatisticsAllAsync(key, gameId, direction, inventoryFindOptions);
|
|
24137
|
+
let inventories = yield this.gnServer.getDatabase().loadInventoriesLeaderboardWithStatisticsAllAsync(key, request.catalogId, gameId, direction, inventoryFindOptions);
|
|
23989
24138
|
let backupData = {
|
|
23990
24139
|
key: key,
|
|
23991
24140
|
version: version,
|
|
@@ -24565,17 +24714,34 @@ class SetGameInformationRequestHandler extends RequestHandler_1.RequestHandler {
|
|
|
24565
24714
|
}
|
|
24566
24715
|
for (let i = 0; i < removeKeyLst.length; i++) {
|
|
24567
24716
|
let key = removeKeyLst[i];
|
|
24568
|
-
|
|
24569
|
-
|
|
24570
|
-
|
|
24717
|
+
{
|
|
24718
|
+
let indexName = "playerCurrencies." + key + ".value_-1";
|
|
24719
|
+
characterPlayerCollection.dropIndex(indexName);
|
|
24720
|
+
xDebug_1.Debug.log("[GN] [Database] drop index " + indexName + " at " + characterPlayerCollection.collectionName);
|
|
24721
|
+
}
|
|
24722
|
+
{
|
|
24723
|
+
let indexName = "catalogId_1_" + "playerCurrencies." + key + ".value_-1";
|
|
24724
|
+
characterPlayerCollection.dropIndex(indexName);
|
|
24725
|
+
xDebug_1.Debug.log("[GN] [Database] drop index " + indexName + " at " + characterPlayerCollection.collectionName);
|
|
24726
|
+
}
|
|
24571
24727
|
}
|
|
24572
24728
|
for (let i = 0; i < addKeyLst.length; i++) {
|
|
24573
24729
|
let key = addKeyLst[i];
|
|
24574
|
-
|
|
24575
|
-
|
|
24576
|
-
|
|
24577
|
-
|
|
24578
|
-
|
|
24730
|
+
{
|
|
24731
|
+
let indexDoc = {};
|
|
24732
|
+
indexDoc["playerCurrencies." + key + ".value"] = -1;
|
|
24733
|
+
let indexName = "playerCurrencies." + key + ".value_-1";
|
|
24734
|
+
characterPlayerCollection.createIndex(indexDoc, { background: true, sparse: true, name: indexName });
|
|
24735
|
+
xDebug_1.Debug.log("[GN] [Database] create new index " + indexName + " at " + characterPlayerCollection.collectionName);
|
|
24736
|
+
}
|
|
24737
|
+
{
|
|
24738
|
+
let indexDoc = {};
|
|
24739
|
+
indexDoc["catalogId"] = 1;
|
|
24740
|
+
indexDoc["playerCurrencies." + key + ".value"] = -1;
|
|
24741
|
+
let indexName = "catalogId_1_" + "playerCurrencies." + key + ".value_-1";
|
|
24742
|
+
characterPlayerCollection.createIndex(indexDoc, { background: true, sparse: true, name: indexName });
|
|
24743
|
+
xDebug_1.Debug.log("[GN] [Database] create new index " + indexName + " at " + characterPlayerCollection.collectionName);
|
|
24744
|
+
}
|
|
24579
24745
|
}
|
|
24580
24746
|
}
|
|
24581
24747
|
if (request.gameSettings.characterPlayerSettings.playerStatisticsSettings != null) {
|
|
@@ -24625,18 +24791,36 @@ class SetGameInformationRequestHandler extends RequestHandler_1.RequestHandler {
|
|
|
24625
24791
|
}
|
|
24626
24792
|
for (let i = 0; i < removeKeyLst.length; i++) {
|
|
24627
24793
|
let key = removeKeyLst[i];
|
|
24628
|
-
|
|
24629
|
-
|
|
24630
|
-
|
|
24794
|
+
{
|
|
24795
|
+
let indexName = "playerStatistics." + key + ".value_-1_playerStatistics." + key + ".tsLastUpdate_1";
|
|
24796
|
+
characterPlayerCollection.dropIndex(indexName);
|
|
24797
|
+
xDebug_1.Debug.log("[GN] [Database] drop index " + indexName + " at " + characterPlayerCollection.collectionName);
|
|
24798
|
+
}
|
|
24799
|
+
{
|
|
24800
|
+
let indexName = "catalogId_1_" + "playerStatistics." + key + ".value_-1_playerStatistics." + key + ".tsLastUpdate_1";
|
|
24801
|
+
characterPlayerCollection.dropIndex(indexName);
|
|
24802
|
+
xDebug_1.Debug.log("[GN] [Database] drop index " + indexName + " at " + characterPlayerCollection.collectionName);
|
|
24803
|
+
}
|
|
24631
24804
|
}
|
|
24632
24805
|
for (let i = 0; i < addKeyLst.length; i++) {
|
|
24633
24806
|
let key = addKeyLst[i];
|
|
24634
|
-
|
|
24635
|
-
|
|
24636
|
-
|
|
24637
|
-
|
|
24638
|
-
|
|
24639
|
-
|
|
24807
|
+
{
|
|
24808
|
+
let indexDoc = {};
|
|
24809
|
+
indexDoc["playerStatistics." + key + ".value"] = -1;
|
|
24810
|
+
indexDoc["playerStatistics." + key + ".tsLastUpdate"] = 1;
|
|
24811
|
+
let indexName = "playerStatistics." + key + ".value_-1_playerStatistics." + key + ".tsLastUpdate_1";
|
|
24812
|
+
characterPlayerCollection.createIndex(indexDoc, { background: true, sparse: true, name: indexName });
|
|
24813
|
+
xDebug_1.Debug.log("[GN] [Database] create new index " + indexName + " at " + characterPlayerCollection.collectionName);
|
|
24814
|
+
}
|
|
24815
|
+
{
|
|
24816
|
+
let indexDoc = {};
|
|
24817
|
+
indexDoc["catalogId"] = 1;
|
|
24818
|
+
indexDoc["playerStatistics." + key + ".value"] = -1;
|
|
24819
|
+
indexDoc["playerStatistics." + key + ".tsLastUpdate"] = 1;
|
|
24820
|
+
let indexName = "catalogId_1_" + "playerStatistics." + key + ".value_-1_playerStatistics." + key + ".tsLastUpdate_1";
|
|
24821
|
+
characterPlayerCollection.createIndex(indexDoc, { background: true, sparse: true, name: indexName });
|
|
24822
|
+
xDebug_1.Debug.log("[GN] [Database] create new index " + indexName + " at " + characterPlayerCollection.collectionName);
|
|
24823
|
+
}
|
|
24640
24824
|
}
|
|
24641
24825
|
}
|
|
24642
24826
|
{
|
|
@@ -24651,18 +24835,36 @@ class SetGameInformationRequestHandler extends RequestHandler_1.RequestHandler {
|
|
|
24651
24835
|
}
|
|
24652
24836
|
for (let i = 0; i < removeKeyAscLst.length; i++) {
|
|
24653
24837
|
let key = removeKeyAscLst[i];
|
|
24654
|
-
|
|
24655
|
-
|
|
24656
|
-
|
|
24838
|
+
{
|
|
24839
|
+
let indexName = "playerStatistics." + key + ".value_1_playerStatistics." + key + ".tsLastUpdate_1";
|
|
24840
|
+
characterPlayerCollection.dropIndex(indexName);
|
|
24841
|
+
xDebug_1.Debug.log("[GN] [Database] drop index " + indexName + " at " + characterPlayerCollection.collectionName);
|
|
24842
|
+
}
|
|
24843
|
+
{
|
|
24844
|
+
let indexName = "catalogId_1_" + "playerStatistics." + key + ".value_1_playerStatistics." + key + ".tsLastUpdate_1";
|
|
24845
|
+
characterPlayerCollection.dropIndex(indexName);
|
|
24846
|
+
xDebug_1.Debug.log("[GN] [Database] drop index " + indexName + " at " + characterPlayerCollection.collectionName);
|
|
24847
|
+
}
|
|
24657
24848
|
}
|
|
24658
24849
|
for (let i = 0; i < addKeyAscLst.length; i++) {
|
|
24659
24850
|
let key = addKeyAscLst[i];
|
|
24660
|
-
|
|
24661
|
-
|
|
24662
|
-
|
|
24663
|
-
|
|
24664
|
-
|
|
24665
|
-
|
|
24851
|
+
{
|
|
24852
|
+
let indexDoc = {};
|
|
24853
|
+
indexDoc["playerStatistics." + key + ".value"] = 1;
|
|
24854
|
+
indexDoc["playerStatistics." + key + ".tsLastUpdate"] = 1;
|
|
24855
|
+
let indexName = "playerStatistics." + key + ".value_1_playerStatistics." + key + ".tsLastUpdate_1";
|
|
24856
|
+
characterPlayerCollection.createIndex(indexDoc, { background: true, sparse: true, name: indexName });
|
|
24857
|
+
xDebug_1.Debug.log("[GN] [Database] create new index " + indexName + " at " + characterPlayerCollection.collectionName);
|
|
24858
|
+
}
|
|
24859
|
+
{
|
|
24860
|
+
let indexDoc = {};
|
|
24861
|
+
indexDoc["catalogId"] = 1;
|
|
24862
|
+
indexDoc["playerStatistics." + key + ".value"] = 1;
|
|
24863
|
+
indexDoc["playerStatistics." + key + ".tsLastUpdate"] = 1;
|
|
24864
|
+
let indexName = "catalogId_1_" + "playerStatistics." + key + ".value_1_playerStatistics." + key + ".tsLastUpdate_1";
|
|
24865
|
+
characterPlayerCollection.createIndex(indexDoc, { background: true, sparse: true, name: indexName });
|
|
24866
|
+
xDebug_1.Debug.log("[GN] [Database] create new index " + indexName + " at " + characterPlayerCollection.collectionName);
|
|
24867
|
+
}
|
|
24666
24868
|
}
|
|
24667
24869
|
}
|
|
24668
24870
|
}
|
|
@@ -25069,17 +25271,34 @@ class SetGameInformationRequestHandler extends RequestHandler_1.RequestHandler {
|
|
|
25069
25271
|
}
|
|
25070
25272
|
for (let i = 0; i < removeKeyLst.length; i++) {
|
|
25071
25273
|
let key = removeKeyLst[i];
|
|
25072
|
-
|
|
25073
|
-
|
|
25074
|
-
|
|
25274
|
+
{
|
|
25275
|
+
let indexName = "groupCurrencies." + key + ".value_-1";
|
|
25276
|
+
groupCollection.dropIndex(indexName);
|
|
25277
|
+
xDebug_1.Debug.log("[GN] [Database] drop index " + indexName + " at " + groupCollection.collectionName);
|
|
25278
|
+
}
|
|
25279
|
+
{
|
|
25280
|
+
let indexName = "catalogId_1_" + "groupCurrencies." + key + ".value_-1";
|
|
25281
|
+
groupCollection.dropIndex(indexName);
|
|
25282
|
+
xDebug_1.Debug.log("[GN] [Database] drop index " + indexName + " at " + groupCollection.collectionName);
|
|
25283
|
+
}
|
|
25075
25284
|
}
|
|
25076
25285
|
for (let i = 0; i < addKeyLst.length; i++) {
|
|
25077
25286
|
let key = addKeyLst[i];
|
|
25078
|
-
|
|
25079
|
-
|
|
25080
|
-
|
|
25081
|
-
|
|
25082
|
-
|
|
25287
|
+
{
|
|
25288
|
+
let indexDoc = {};
|
|
25289
|
+
indexDoc["groupCurrencies." + key + ".value"] = -1;
|
|
25290
|
+
let indexName = "groupCurrencies." + key + ".value_-1";
|
|
25291
|
+
groupCollection.createIndex(indexDoc, { background: true, sparse: true, name: indexName });
|
|
25292
|
+
xDebug_1.Debug.log("[GN] [Database] create new index " + indexName + " at " + groupCollection.collectionName);
|
|
25293
|
+
}
|
|
25294
|
+
{
|
|
25295
|
+
let indexDoc = {};
|
|
25296
|
+
indexDoc["catalogId"] = 1;
|
|
25297
|
+
indexDoc["groupCurrencies." + key + ".value"] = -1;
|
|
25298
|
+
let indexName = "catalogId_1_" + "groupCurrencies." + key + ".value_-1";
|
|
25299
|
+
groupCollection.createIndex(indexDoc, { background: true, sparse: true, name: indexName });
|
|
25300
|
+
xDebug_1.Debug.log("[GN] [Database] create new index " + indexName + " at " + groupCollection.collectionName);
|
|
25301
|
+
}
|
|
25083
25302
|
}
|
|
25084
25303
|
}
|
|
25085
25304
|
if (request.gameSettings.groupSettings.groupStatisticsSettings != null) {
|
|
@@ -25129,18 +25348,36 @@ class SetGameInformationRequestHandler extends RequestHandler_1.RequestHandler {
|
|
|
25129
25348
|
}
|
|
25130
25349
|
for (let i = 0; i < removeKeyLst.length; i++) {
|
|
25131
25350
|
let key = removeKeyLst[i];
|
|
25132
|
-
|
|
25133
|
-
|
|
25134
|
-
|
|
25351
|
+
{
|
|
25352
|
+
let indexName = "groupStatistics." + key + ".value_-1_groupStatistics." + key + ".tsLastUpdate_1";
|
|
25353
|
+
groupCollection.dropIndex(indexName);
|
|
25354
|
+
xDebug_1.Debug.log("[GN] [Database] drop index " + indexName + " at " + groupCollection.collectionName);
|
|
25355
|
+
}
|
|
25356
|
+
{
|
|
25357
|
+
let indexName = "catalogId_1_" + "groupStatistics." + key + ".value_-1_groupStatistics." + key + ".tsLastUpdate_1";
|
|
25358
|
+
groupCollection.dropIndex(indexName);
|
|
25359
|
+
xDebug_1.Debug.log("[GN] [Database] drop index " + indexName + " at " + groupCollection.collectionName);
|
|
25360
|
+
}
|
|
25135
25361
|
}
|
|
25136
25362
|
for (let i = 0; i < addKeyLst.length; i++) {
|
|
25137
25363
|
let key = addKeyLst[i];
|
|
25138
|
-
|
|
25139
|
-
|
|
25140
|
-
|
|
25141
|
-
|
|
25142
|
-
|
|
25143
|
-
|
|
25364
|
+
{
|
|
25365
|
+
let indexDoc = {};
|
|
25366
|
+
indexDoc["groupStatistics." + key + ".value"] = -1;
|
|
25367
|
+
indexDoc["groupStatistics." + key + ".tsLastUpdate"] = 1;
|
|
25368
|
+
let indexName = "groupStatistics." + key + ".value_-1_groupStatistics." + key + ".tsLastUpdate_1";
|
|
25369
|
+
groupCollection.createIndex(indexDoc, { background: true, sparse: true, name: indexName });
|
|
25370
|
+
xDebug_1.Debug.log("[GN] [Database] create new index " + indexName + " at " + groupCollection.collectionName);
|
|
25371
|
+
}
|
|
25372
|
+
{
|
|
25373
|
+
let indexDoc = {};
|
|
25374
|
+
indexDoc["catalogId"] = 1;
|
|
25375
|
+
indexDoc["groupStatistics." + key + ".value"] = -1;
|
|
25376
|
+
indexDoc["groupStatistics." + key + ".tsLastUpdate"] = 1;
|
|
25377
|
+
let indexName = "catalogId_1_" + "groupStatistics." + key + ".value_-1_groupStatistics." + key + ".tsLastUpdate_1";
|
|
25378
|
+
groupCollection.createIndex(indexDoc, { background: true, sparse: true, name: indexName });
|
|
25379
|
+
xDebug_1.Debug.log("[GN] [Database] create new index " + indexName + " at " + groupCollection.collectionName);
|
|
25380
|
+
}
|
|
25144
25381
|
}
|
|
25145
25382
|
}
|
|
25146
25383
|
{
|
|
@@ -25155,18 +25392,36 @@ class SetGameInformationRequestHandler extends RequestHandler_1.RequestHandler {
|
|
|
25155
25392
|
}
|
|
25156
25393
|
for (let i = 0; i < removeKeyAscLst.length; i++) {
|
|
25157
25394
|
let key = removeKeyAscLst[i];
|
|
25158
|
-
|
|
25159
|
-
|
|
25160
|
-
|
|
25395
|
+
{
|
|
25396
|
+
let indexName = "groupStatistics." + key + ".value_1_groupStatistics." + key + ".tsLastUpdate_1";
|
|
25397
|
+
groupCollection.dropIndex(indexName);
|
|
25398
|
+
xDebug_1.Debug.log("[GN] [Database] drop index " + indexName + " at " + groupCollection.collectionName);
|
|
25399
|
+
}
|
|
25400
|
+
{
|
|
25401
|
+
let indexName = "catalogId_1_" + "groupStatistics." + key + ".value_1_groupStatistics." + key + ".tsLastUpdate_1";
|
|
25402
|
+
groupCollection.dropIndex(indexName);
|
|
25403
|
+
xDebug_1.Debug.log("[GN] [Database] drop index " + indexName + " at " + groupCollection.collectionName);
|
|
25404
|
+
}
|
|
25161
25405
|
}
|
|
25162
25406
|
for (let i = 0; i < addKeyAscLst.length; i++) {
|
|
25163
25407
|
let key = addKeyAscLst[i];
|
|
25164
|
-
|
|
25165
|
-
|
|
25166
|
-
|
|
25167
|
-
|
|
25168
|
-
|
|
25169
|
-
|
|
25408
|
+
{
|
|
25409
|
+
let indexDoc = {};
|
|
25410
|
+
indexDoc["groupStatistics." + key + ".value"] = 1;
|
|
25411
|
+
indexDoc["groupStatistics." + key + ".tsLastUpdate"] = 1;
|
|
25412
|
+
let indexName = "groupStatistics." + key + ".value_1_groupStatistics." + key + ".tsLastUpdate_1";
|
|
25413
|
+
groupCollection.createIndex(indexDoc, { background: true, sparse: true, name: indexName });
|
|
25414
|
+
xDebug_1.Debug.log("[GN] [Database] create new index " + indexName + " at " + groupCollection.collectionName);
|
|
25415
|
+
}
|
|
25416
|
+
{
|
|
25417
|
+
let indexDoc = {};
|
|
25418
|
+
indexDoc["catalogId"] = 1;
|
|
25419
|
+
indexDoc["groupStatistics." + key + ".value"] = 1;
|
|
25420
|
+
indexDoc["groupStatistics." + key + ".tsLastUpdate"] = 1;
|
|
25421
|
+
let indexName = "catalogId_1_" + "groupStatistics." + key + ".value_1_groupStatistics." + key + ".tsLastUpdate_1";
|
|
25422
|
+
groupCollection.createIndex(indexDoc, { background: true, sparse: true, name: indexName });
|
|
25423
|
+
xDebug_1.Debug.log("[GN] [Database] create new index " + indexName + " at " + groupCollection.collectionName);
|
|
25424
|
+
}
|
|
25170
25425
|
}
|
|
25171
25426
|
}
|
|
25172
25427
|
}
|
|
@@ -25306,18 +25561,36 @@ class SetGameInformationRequestHandler extends RequestHandler_1.RequestHandler {
|
|
|
25306
25561
|
}
|
|
25307
25562
|
for (let i = 0; i < removeKeyLst.length; i++) {
|
|
25308
25563
|
let key = removeKeyLst[i];
|
|
25309
|
-
|
|
25310
|
-
|
|
25311
|
-
|
|
25564
|
+
{
|
|
25565
|
+
let indexName = "itemStatistics." + key + ".value_-1_itemStatistics." + key + ".tsLastUpdate_1";
|
|
25566
|
+
inventoryCollection.dropIndex(indexName);
|
|
25567
|
+
xDebug_1.Debug.log("[GN] [Database] drop index " + indexName + " at " + inventoryCollection.collectionName);
|
|
25568
|
+
}
|
|
25569
|
+
{
|
|
25570
|
+
let indexName = "catalogId_1_" + "itemStatistics." + key + ".value_-1_itemStatistics." + key + ".tsLastUpdate_1";
|
|
25571
|
+
inventoryCollection.dropIndex(indexName);
|
|
25572
|
+
xDebug_1.Debug.log("[GN] [Database] drop index " + indexName + " at " + inventoryCollection.collectionName);
|
|
25573
|
+
}
|
|
25312
25574
|
}
|
|
25313
25575
|
for (let i = 0; i < addKeyLst.length; i++) {
|
|
25314
25576
|
let key = addKeyLst[i];
|
|
25315
|
-
|
|
25316
|
-
|
|
25317
|
-
|
|
25318
|
-
|
|
25319
|
-
|
|
25320
|
-
|
|
25577
|
+
{
|
|
25578
|
+
let indexDoc = {};
|
|
25579
|
+
indexDoc["itemStatistics." + key + ".value"] = -1;
|
|
25580
|
+
indexDoc["itemStatistics." + key + ".tsLastUpdate"] = 1;
|
|
25581
|
+
let indexName = "itemStatistics." + key + ".value_-1_itemStatistics." + key + ".tsLastUpdate_1";
|
|
25582
|
+
inventoryCollection.createIndex(indexDoc, { background: true, sparse: true, name: indexName });
|
|
25583
|
+
xDebug_1.Debug.log("[GN] [Database] create new index " + indexName + " at " + inventoryCollection.collectionName);
|
|
25584
|
+
}
|
|
25585
|
+
{
|
|
25586
|
+
let indexDoc = {};
|
|
25587
|
+
indexDoc["catalogId"] = 1;
|
|
25588
|
+
indexDoc["itemStatistics." + key + ".value"] = -1;
|
|
25589
|
+
indexDoc["itemStatistics." + key + ".tsLastUpdate"] = 1;
|
|
25590
|
+
let indexName = "catalogId_1_" + "itemStatistics." + key + ".value_-1_itemStatistics." + key + ".tsLastUpdate_1";
|
|
25591
|
+
inventoryCollection.createIndex(indexDoc, { background: true, sparse: true, name: indexName });
|
|
25592
|
+
xDebug_1.Debug.log("[GN] [Database] create new index " + indexName + " at " + inventoryCollection.collectionName);
|
|
25593
|
+
}
|
|
25321
25594
|
}
|
|
25322
25595
|
}
|
|
25323
25596
|
{
|
|
@@ -25332,18 +25605,36 @@ class SetGameInformationRequestHandler extends RequestHandler_1.RequestHandler {
|
|
|
25332
25605
|
}
|
|
25333
25606
|
for (let i = 0; i < removeKeyAscLst.length; i++) {
|
|
25334
25607
|
let key = removeKeyAscLst[i];
|
|
25335
|
-
|
|
25336
|
-
|
|
25337
|
-
|
|
25608
|
+
{
|
|
25609
|
+
let indexName = "itemStatistics." + key + ".value_1_itemStatistics." + key + ".tsLastUpdate_1";
|
|
25610
|
+
inventoryCollection.dropIndex(indexName);
|
|
25611
|
+
xDebug_1.Debug.log("[GN] [Database] drop index " + indexName + " at " + inventoryCollection.collectionName);
|
|
25612
|
+
}
|
|
25613
|
+
{
|
|
25614
|
+
let indexName = "catalogId_1_" + "itemStatistics." + key + ".value_1_itemStatistics." + key + ".tsLastUpdate_1";
|
|
25615
|
+
inventoryCollection.dropIndex(indexName);
|
|
25616
|
+
xDebug_1.Debug.log("[GN] [Database] drop index " + indexName + " at " + inventoryCollection.collectionName);
|
|
25617
|
+
}
|
|
25338
25618
|
}
|
|
25339
25619
|
for (let i = 0; i < addKeyAscLst.length; i++) {
|
|
25340
25620
|
let key = addKeyAscLst[i];
|
|
25341
|
-
|
|
25342
|
-
|
|
25343
|
-
|
|
25344
|
-
|
|
25345
|
-
|
|
25346
|
-
|
|
25621
|
+
{
|
|
25622
|
+
let indexDoc = {};
|
|
25623
|
+
indexDoc["itemStatistics." + key + ".value"] = 1;
|
|
25624
|
+
indexDoc["itemStatistics." + key + ".tsLastUpdate"] = 1;
|
|
25625
|
+
let indexName = "itemStatistics." + key + ".value_1_itemStatistics." + key + ".tsLastUpdate_1";
|
|
25626
|
+
inventoryCollection.createIndex(indexDoc, { background: true, sparse: true, name: indexName });
|
|
25627
|
+
xDebug_1.Debug.log("[GN] [Database] create new index " + indexName + " at " + inventoryCollection.collectionName);
|
|
25628
|
+
}
|
|
25629
|
+
{
|
|
25630
|
+
let indexDoc = {};
|
|
25631
|
+
indexDoc["catalogId"] = 1;
|
|
25632
|
+
indexDoc["itemStatistics." + key + ".value"] = 1;
|
|
25633
|
+
indexDoc["itemStatistics." + key + ".tsLastUpdate"] = 1;
|
|
25634
|
+
let indexName = "catalogId_1_" + "itemStatistics." + key + ".value_1_itemStatistics." + key + ".tsLastUpdate_1";
|
|
25635
|
+
inventoryCollection.createIndex(indexDoc, { background: true, sparse: true, name: indexName });
|
|
25636
|
+
xDebug_1.Debug.log("[GN] [Database] create new index " + indexName + " at " + inventoryCollection.collectionName);
|
|
25637
|
+
}
|
|
25347
25638
|
}
|
|
25348
25639
|
}
|
|
25349
25640
|
}
|
|
@@ -31128,9 +31419,8 @@ class GetCurrencyLeaderboardRequestHandler extends GamePlayerBaseRequestHandler_
|
|
|
31128
31419
|
}
|
|
31129
31420
|
operationResponse = new OperationResponse_1.OperationResponse(operationRequest.getOperationCode(), operationRequest.getRequestId(), operationRequest.isEncrypted());
|
|
31130
31421
|
operationResponse.setReturnCode(ReturnCode_1.ReturnCode.Ok);
|
|
31131
|
-
let
|
|
31132
|
-
let
|
|
31133
|
-
let playerCurrencySettingsItem = masterPlayerSettings.playerCurrencySettings.find(x => x.key == request.key);
|
|
31422
|
+
let gamePlayerSettings = this.gnServer.getGNSettings().getGamePlayerSettings(secretInfo.getGameId());
|
|
31423
|
+
let playerCurrencySettingsItem = gamePlayerSettings.playerCurrencySettings.find(x => x.key == request.key);
|
|
31134
31424
|
if (playerCurrencySettingsItem == null) {
|
|
31135
31425
|
operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.KeyNotFound);
|
|
31136
31426
|
return operationResponse;
|
|
@@ -31162,6 +31452,7 @@ class GetCurrencyLeaderboardRequestHandler extends GamePlayerBaseRequestHandler_
|
|
|
31162
31452
|
}
|
|
31163
31453
|
}
|
|
31164
31454
|
else {
|
|
31455
|
+
let gamePlayerFindOptions = this.convertToGamePlayerFindOptions(request.infoRequestParam);
|
|
31165
31456
|
if (request.skip + request.limit <= 100) {
|
|
31166
31457
|
gamePlayerFindOptions = null;
|
|
31167
31458
|
gamePlayers = yield this.gnServer.getDatabase().loadGamePlayersLeaderboardWithCurrenciesAsync(request.key, 0, 100, secretInfo.getGameId(), gamePlayerFindOptions);
|
|
@@ -31341,11 +31632,11 @@ class GetCurrencyLogRequestHandler extends RequestHandler_1.RequestHandler {
|
|
|
31341
31632
|
}
|
|
31342
31633
|
operationResponse = new OperationResponse_1.OperationResponse(operationRequest.getOperationCode(), operationRequest.getRequestId(), operationRequest.isEncrypted());
|
|
31343
31634
|
operationResponse.setReturnCode(ReturnCode_1.ReturnCode.Ok);
|
|
31344
|
-
let
|
|
31635
|
+
let gamePlayerSettings = this.gnServer.getGNSettings().getGamePlayerSettings(secretInfo.getGameId());
|
|
31345
31636
|
let keys = [];
|
|
31346
31637
|
if (request.keys) {
|
|
31347
31638
|
for (let i = 0; i < request.keys.length; i++) {
|
|
31348
|
-
let playerCurrencySettingsItem =
|
|
31639
|
+
let playerCurrencySettingsItem = gamePlayerSettings.playerCurrencySettings.find(x => x.key == request.keys[i]);
|
|
31349
31640
|
if (playerCurrencySettingsItem != null) {
|
|
31350
31641
|
keys.push(playerCurrencySettingsItem.key);
|
|
31351
31642
|
}
|
|
@@ -31750,6 +32041,7 @@ const InfoRequestParam_1 = __webpack_require__(68350);
|
|
|
31750
32041
|
const GetFriendStatisticsLeaderboardRequestHandler_1 = __webpack_require__(28199);
|
|
31751
32042
|
const FriendStatus_1 = __webpack_require__(11259);
|
|
31752
32043
|
const xStatisticsAggregationMethod_1 = __webpack_require__(21554);
|
|
32044
|
+
const xDatetime_1 = __webpack_require__(21817);
|
|
31753
32045
|
class GetFriendStatisticsLeaderboardAroundPlayerOperationRequest extends OperationRequest_1.OperationRequest {
|
|
31754
32046
|
isValidRequest() {
|
|
31755
32047
|
if (!super.isValidRequest())
|
|
@@ -31777,6 +32069,10 @@ __decorate([
|
|
|
31777
32069
|
(0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
|
|
31778
32070
|
__metadata("design:type", Number)
|
|
31779
32071
|
], GetFriendStatisticsLeaderboardAroundPlayerOperationRequest.prototype, "limit", void 0);
|
|
32072
|
+
__decorate([
|
|
32073
|
+
(0, DataMember_1.BooleanDataMember)({ code: GNParameterCode_1.GNParameterCode.LoadFromCache, defaultValue: true, isOptional: true }),
|
|
32074
|
+
__metadata("design:type", Boolean)
|
|
32075
|
+
], GetFriendStatisticsLeaderboardAroundPlayerOperationRequest.prototype, "loadFromCache", void 0);
|
|
31780
32076
|
class ServerGetFriendStatisticsLeaderboardAroundPlayerOperationRequest extends GetFriendStatisticsLeaderboardAroundPlayerOperationRequest {
|
|
31781
32077
|
isValidRequest() {
|
|
31782
32078
|
if (!super.isValidRequest())
|
|
@@ -31830,7 +32126,8 @@ class GetFriendStatisticsLeaderboardAroundPlayerRequestHandler extends GamePlaye
|
|
|
31830
32126
|
key: request.key,
|
|
31831
32127
|
skip: request.skip,
|
|
31832
32128
|
limit: request.limit,
|
|
31833
|
-
infoRequestParam: request.infoRequestParam
|
|
32129
|
+
infoRequestParam: request.infoRequestParam,
|
|
32130
|
+
loadFromCache: request.loadFromCache,
|
|
31834
32131
|
}, secretInfo, operationRequest);
|
|
31835
32132
|
});
|
|
31836
32133
|
}
|
|
@@ -31849,7 +32146,8 @@ class GetFriendStatisticsLeaderboardAroundPlayerRequestHandler extends GamePlaye
|
|
|
31849
32146
|
key: request.key,
|
|
31850
32147
|
skip: request.skip,
|
|
31851
32148
|
limit: request.limit,
|
|
31852
|
-
infoRequestParam: request.infoRequestParam
|
|
32149
|
+
infoRequestParam: request.infoRequestParam,
|
|
32150
|
+
loadFromCache: request.loadFromCache,
|
|
31853
32151
|
}, secretInfo, operationRequest);
|
|
31854
32152
|
});
|
|
31855
32153
|
}
|
|
@@ -31868,7 +32166,8 @@ class GetFriendStatisticsLeaderboardAroundPlayerRequestHandler extends GamePlaye
|
|
|
31868
32166
|
key: request.key,
|
|
31869
32167
|
skip: request.skip,
|
|
31870
32168
|
limit: request.limit,
|
|
31871
|
-
infoRequestParam: request.infoRequestParam
|
|
32169
|
+
infoRequestParam: request.infoRequestParam,
|
|
32170
|
+
loadFromCache: request.loadFromCache,
|
|
31872
32171
|
}, secretInfo, operationRequest);
|
|
31873
32172
|
});
|
|
31874
32173
|
}
|
|
@@ -31880,33 +32179,46 @@ class GetFriendStatisticsLeaderboardAroundPlayerRequestHandler extends GamePlaye
|
|
|
31880
32179
|
}
|
|
31881
32180
|
operationResponse = new OperationResponse_1.OperationResponse(operationRequest.getOperationCode(), operationRequest.getRequestId(), operationRequest.isEncrypted());
|
|
31882
32181
|
operationResponse.setReturnCode(ReturnCode_1.ReturnCode.Ok);
|
|
31883
|
-
let
|
|
31884
|
-
let
|
|
31885
|
-
let playerStatisticsSettingsItem = masterPlayerSettings.playerStatisticsSettings.find(x => x.key == request.key);
|
|
32182
|
+
let gamePlayerSettings = this.gnServer.getGNSettings().getGamePlayerSettings(secretInfo.getGameId());
|
|
32183
|
+
let playerStatisticsSettingsItem = gamePlayerSettings.playerStatisticsSettings.find(x => x.key == request.key);
|
|
31886
32184
|
if (playerStatisticsSettingsItem == null) {
|
|
31887
32185
|
operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.KeyNotFound);
|
|
31888
32186
|
return operationResponse;
|
|
31889
32187
|
}
|
|
31890
|
-
let
|
|
31891
|
-
if (
|
|
31892
|
-
|
|
31893
|
-
|
|
32188
|
+
let cacheKey = "gamePlayerStatisticsLeaderboardFriendAround_" + request.userId;
|
|
32189
|
+
if (request.loadFromCache) {
|
|
32190
|
+
if (!this.gnServer.getCacheData().isValid(cacheKey)) {
|
|
32191
|
+
request.loadFromCache = false;
|
|
32192
|
+
}
|
|
31894
32193
|
}
|
|
31895
32194
|
let gnResults = new GNData_1.GNArray();
|
|
31896
|
-
let
|
|
31897
|
-
|
|
31898
|
-
|
|
31899
|
-
|
|
31900
|
-
|
|
31901
|
-
|
|
31902
|
-
|
|
31903
|
-
|
|
31904
|
-
|
|
31905
|
-
|
|
31906
|
-
|
|
31907
|
-
|
|
31908
|
-
|
|
31909
|
-
|
|
32195
|
+
let gamePlayers;
|
|
32196
|
+
if (request.loadFromCache) {
|
|
32197
|
+
gamePlayers = this.gnServer.getCacheData().getData(cacheKey);
|
|
32198
|
+
}
|
|
32199
|
+
else {
|
|
32200
|
+
let gamePlayer = yield this.gnServer.getDatabase().loadGamePlayerAsync(request.userId, secretInfo.getGameId(), null);
|
|
32201
|
+
if (gamePlayer == null) {
|
|
32202
|
+
operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.GamePlayerNotFound);
|
|
32203
|
+
return operationResponse;
|
|
32204
|
+
}
|
|
32205
|
+
let friendIds = [];
|
|
32206
|
+
let allPlayerFriends = gamePlayer.getAllPlayerFriends();
|
|
32207
|
+
for (let i = 0; i < allPlayerFriends.length; i++) {
|
|
32208
|
+
let playerFriendItem = allPlayerFriends[i];
|
|
32209
|
+
if (playerFriendItem.status == FriendStatus_1.FriendStatus.Friend) {
|
|
32210
|
+
friendIds.push(playerFriendItem.friendId);
|
|
32211
|
+
}
|
|
32212
|
+
}
|
|
32213
|
+
let allGamePlayers = yield this.gnServer.getDatabase().loadFriendGamePlayersLeaderboardWithStatisticsAsync(friendIds, secretInfo.getGameId(), null);
|
|
32214
|
+
allGamePlayers.push(gamePlayer);
|
|
32215
|
+
let statisticsAggregationMethod = playerStatisticsSettingsItem.statisticsAggregationMethod;
|
|
32216
|
+
gamePlayers = statisticsAggregationMethod == xStatisticsAggregationMethod_1.xStatisticsAggregationMethod.Minimum
|
|
32217
|
+
? GetFriendStatisticsLeaderboardRequestHandler_1.GetFriendStatisticsLeaderboardRequestHandler.quickSortAsc(request.key, allGamePlayers, playerStatisticsSettingsItem.initialValue)
|
|
32218
|
+
: GetFriendStatisticsLeaderboardRequestHandler_1.GetFriendStatisticsLeaderboardRequestHandler.quickSort(request.key, allGamePlayers, playerStatisticsSettingsItem.initialValue);
|
|
32219
|
+
this.gnServer.getCacheData().setData(cacheKey, gamePlayers, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
|
|
32220
|
+
}
|
|
32221
|
+
let gamePlayer = gamePlayers.find(x => x.getUserId() == request.userId);
|
|
31910
32222
|
let thisPosition = gamePlayers.indexOf(gamePlayer);
|
|
31911
32223
|
for (let i = request.skip + thisPosition; i < request.skip + thisPosition + request.limit; i++) {
|
|
31912
32224
|
if (i >= gamePlayers.length)
|
|
@@ -31995,6 +32307,10 @@ __decorate([
|
|
|
31995
32307
|
(0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
|
|
31996
32308
|
__metadata("design:type", Number)
|
|
31997
32309
|
], GetFriendStatisticsLeaderboardOperationRequest.prototype, "limit", void 0);
|
|
32310
|
+
__decorate([
|
|
32311
|
+
(0, DataMember_1.BooleanDataMember)({ code: GNParameterCode_1.GNParameterCode.LoadFromCache, defaultValue: true, isOptional: true }),
|
|
32312
|
+
__metadata("design:type", Boolean)
|
|
32313
|
+
], GetFriendStatisticsLeaderboardOperationRequest.prototype, "loadFromCache", void 0);
|
|
31998
32314
|
class ServerGetFriendStatisticsLeaderboardOperationRequest extends GetFriendStatisticsLeaderboardOperationRequest {
|
|
31999
32315
|
isValidRequest() {
|
|
32000
32316
|
if (!super.isValidRequest())
|
|
@@ -32048,7 +32364,8 @@ class GetFriendStatisticsLeaderboardRequestHandler extends GamePlayerBaseRequest
|
|
|
32048
32364
|
key: request.key,
|
|
32049
32365
|
skip: request.skip,
|
|
32050
32366
|
limit: request.limit,
|
|
32051
|
-
infoRequestParam: request.infoRequestParam
|
|
32367
|
+
infoRequestParam: request.infoRequestParam,
|
|
32368
|
+
loadFromCache: request.loadFromCache,
|
|
32052
32369
|
}, secretInfo, operationRequest);
|
|
32053
32370
|
});
|
|
32054
32371
|
}
|
|
@@ -32067,7 +32384,8 @@ class GetFriendStatisticsLeaderboardRequestHandler extends GamePlayerBaseRequest
|
|
|
32067
32384
|
key: request.key,
|
|
32068
32385
|
skip: request.skip,
|
|
32069
32386
|
limit: request.limit,
|
|
32070
|
-
infoRequestParam: request.infoRequestParam
|
|
32387
|
+
infoRequestParam: request.infoRequestParam,
|
|
32388
|
+
loadFromCache: request.loadFromCache,
|
|
32071
32389
|
}, secretInfo, operationRequest);
|
|
32072
32390
|
});
|
|
32073
32391
|
}
|
|
@@ -32086,7 +32404,8 @@ class GetFriendStatisticsLeaderboardRequestHandler extends GamePlayerBaseRequest
|
|
|
32086
32404
|
key: request.key,
|
|
32087
32405
|
skip: request.skip,
|
|
32088
32406
|
limit: request.limit,
|
|
32089
|
-
infoRequestParam: request.infoRequestParam
|
|
32407
|
+
infoRequestParam: request.infoRequestParam,
|
|
32408
|
+
loadFromCache: request.loadFromCache,
|
|
32090
32409
|
}, secretInfo, operationRequest);
|
|
32091
32410
|
});
|
|
32092
32411
|
}
|
|
@@ -32098,35 +32417,45 @@ class GetFriendStatisticsLeaderboardRequestHandler extends GamePlayerBaseRequest
|
|
|
32098
32417
|
}
|
|
32099
32418
|
operationResponse = new OperationResponse_1.OperationResponse(operationRequest.getOperationCode(), operationRequest.getRequestId(), operationRequest.isEncrypted());
|
|
32100
32419
|
operationResponse.setReturnCode(ReturnCode_1.ReturnCode.Ok);
|
|
32101
|
-
let
|
|
32102
|
-
|
|
32103
|
-
gamePlayerFindOptions.playerStatistics = true;
|
|
32104
|
-
let masterPlayerSettings = this.gnServer.getGNSettings().getGamePlayerSettings(secretInfo.getGameId());
|
|
32105
|
-
let playerStatisticsSettingsItem = masterPlayerSettings.playerStatisticsSettings.find(x => x.key == request.key);
|
|
32420
|
+
let gamePlayerSettings = this.gnServer.getGNSettings().getGamePlayerSettings(secretInfo.getGameId());
|
|
32421
|
+
let playerStatisticsSettingsItem = gamePlayerSettings.playerStatisticsSettings.find(x => x.key == request.key);
|
|
32106
32422
|
if (playerStatisticsSettingsItem == null) {
|
|
32107
32423
|
operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.KeyNotFound);
|
|
32108
32424
|
return operationResponse;
|
|
32109
32425
|
}
|
|
32110
|
-
let
|
|
32111
|
-
if (
|
|
32112
|
-
|
|
32113
|
-
|
|
32426
|
+
let cacheKey = "gamePlayerStatisticsLeaderboardFriend_" + request.userId;
|
|
32427
|
+
if (request.loadFromCache) {
|
|
32428
|
+
if (!this.gnServer.getCacheData().isValid(cacheKey)) {
|
|
32429
|
+
request.loadFromCache = false;
|
|
32430
|
+
}
|
|
32114
32431
|
}
|
|
32115
32432
|
let gnResults = new GNData_1.GNArray();
|
|
32116
|
-
let
|
|
32117
|
-
|
|
32118
|
-
|
|
32119
|
-
|
|
32120
|
-
|
|
32121
|
-
|
|
32122
|
-
|
|
32123
|
-
|
|
32124
|
-
|
|
32125
|
-
|
|
32126
|
-
|
|
32127
|
-
|
|
32128
|
-
|
|
32129
|
-
|
|
32433
|
+
let gamePlayers;
|
|
32434
|
+
if (request.loadFromCache) {
|
|
32435
|
+
gamePlayers = this.gnServer.getCacheData().getData(cacheKey);
|
|
32436
|
+
}
|
|
32437
|
+
else {
|
|
32438
|
+
let gamePlayer = yield this.gnServer.getDatabase().loadGamePlayerAsync(request.userId, secretInfo.getGameId(), null);
|
|
32439
|
+
if (gamePlayer == null) {
|
|
32440
|
+
operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.GamePlayerNotFound);
|
|
32441
|
+
return operationResponse;
|
|
32442
|
+
}
|
|
32443
|
+
let friendIds = [];
|
|
32444
|
+
let allPlayerFriends = gamePlayer.getAllPlayerFriends();
|
|
32445
|
+
for (let i = 0; i < allPlayerFriends.length; i++) {
|
|
32446
|
+
let playerFriendItem = allPlayerFriends[i];
|
|
32447
|
+
if (playerFriendItem.status == FriendStatus_1.FriendStatus.Friend) {
|
|
32448
|
+
friendIds.push(playerFriendItem.friendId);
|
|
32449
|
+
}
|
|
32450
|
+
}
|
|
32451
|
+
let allGamePlayers = yield this.gnServer.getDatabase().loadFriendGamePlayersLeaderboardWithStatisticsAsync(friendIds, secretInfo.getGameId(), null);
|
|
32452
|
+
allGamePlayers.push(gamePlayer);
|
|
32453
|
+
let statisticsAggregationMethod = playerStatisticsSettingsItem.statisticsAggregationMethod;
|
|
32454
|
+
gamePlayers = statisticsAggregationMethod == xStatisticsAggregationMethod_1.xStatisticsAggregationMethod.Minimum
|
|
32455
|
+
? GetFriendStatisticsLeaderboardRequestHandler.quickSortAsc(request.key, allGamePlayers, playerStatisticsSettingsItem.initialValue)
|
|
32456
|
+
: GetFriendStatisticsLeaderboardRequestHandler.quickSort(request.key, allGamePlayers, playerStatisticsSettingsItem.initialValue);
|
|
32457
|
+
this.gnServer.getCacheData().setData(cacheKey, gamePlayers, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
|
|
32458
|
+
}
|
|
32130
32459
|
for (let i = request.skip; i < request.skip + request.limit; i++) {
|
|
32131
32460
|
if (i >= gamePlayers.length)
|
|
32132
32461
|
break;
|
|
@@ -34971,6 +35300,7 @@ const GNErrorCode_1 = __webpack_require__(94559);
|
|
|
34971
35300
|
const GamePlayerBaseRequestHandler_1 = __webpack_require__(67811);
|
|
34972
35301
|
const InfoRequestParam_1 = __webpack_require__(68350);
|
|
34973
35302
|
const xStatisticsAggregationMethod_1 = __webpack_require__(21554);
|
|
35303
|
+
const xDatetime_1 = __webpack_require__(21817);
|
|
34974
35304
|
class GetStatisticsLeaderboardAroundPlayerOperationRequest extends OperationRequest_1.OperationRequest {
|
|
34975
35305
|
isValidRequest() {
|
|
34976
35306
|
if (!super.isValidRequest())
|
|
@@ -34998,6 +35328,10 @@ __decorate([
|
|
|
34998
35328
|
(0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
|
|
34999
35329
|
__metadata("design:type", Number)
|
|
35000
35330
|
], GetStatisticsLeaderboardAroundPlayerOperationRequest.prototype, "limit", void 0);
|
|
35331
|
+
__decorate([
|
|
35332
|
+
(0, DataMember_1.BooleanDataMember)({ code: GNParameterCode_1.GNParameterCode.LoadFromCache, defaultValue: true, isOptional: true }),
|
|
35333
|
+
__metadata("design:type", Boolean)
|
|
35334
|
+
], GetStatisticsLeaderboardAroundPlayerOperationRequest.prototype, "loadFromCache", void 0);
|
|
35001
35335
|
class ServerGetStatisticsLeaderboardAroundPlayerOperationRequest extends GetStatisticsLeaderboardAroundPlayerOperationRequest {
|
|
35002
35336
|
isValidRequest() {
|
|
35003
35337
|
if (!super.isValidRequest())
|
|
@@ -35051,7 +35385,8 @@ class GetStatisticsLeaderboardAroundPlayerRequestHandler extends GamePlayerBaseR
|
|
|
35051
35385
|
key: request.key,
|
|
35052
35386
|
skip: request.skip,
|
|
35053
35387
|
limit: request.limit,
|
|
35054
|
-
infoRequestParam: request.infoRequestParam
|
|
35388
|
+
infoRequestParam: request.infoRequestParam,
|
|
35389
|
+
loadFromCache: request.loadFromCache,
|
|
35055
35390
|
}, secretInfo, operationRequest);
|
|
35056
35391
|
});
|
|
35057
35392
|
}
|
|
@@ -35070,7 +35405,8 @@ class GetStatisticsLeaderboardAroundPlayerRequestHandler extends GamePlayerBaseR
|
|
|
35070
35405
|
key: request.key,
|
|
35071
35406
|
skip: request.skip,
|
|
35072
35407
|
limit: request.limit,
|
|
35073
|
-
infoRequestParam: request.infoRequestParam
|
|
35408
|
+
infoRequestParam: request.infoRequestParam,
|
|
35409
|
+
loadFromCache: request.loadFromCache,
|
|
35074
35410
|
}, secretInfo, operationRequest);
|
|
35075
35411
|
});
|
|
35076
35412
|
}
|
|
@@ -35089,7 +35425,8 @@ class GetStatisticsLeaderboardAroundPlayerRequestHandler extends GamePlayerBaseR
|
|
|
35089
35425
|
key: request.key,
|
|
35090
35426
|
skip: request.skip,
|
|
35091
35427
|
limit: request.limit,
|
|
35092
|
-
infoRequestParam: request.infoRequestParam
|
|
35428
|
+
infoRequestParam: request.infoRequestParam,
|
|
35429
|
+
loadFromCache: request.loadFromCache,
|
|
35093
35430
|
}, secretInfo, operationRequest);
|
|
35094
35431
|
});
|
|
35095
35432
|
}
|
|
@@ -35101,25 +35438,75 @@ class GetStatisticsLeaderboardAroundPlayerRequestHandler extends GamePlayerBaseR
|
|
|
35101
35438
|
}
|
|
35102
35439
|
operationResponse = new OperationResponse_1.OperationResponse(operationRequest.getOperationCode(), operationRequest.getRequestId(), operationRequest.isEncrypted());
|
|
35103
35440
|
operationResponse.setReturnCode(ReturnCode_1.ReturnCode.Ok);
|
|
35104
|
-
let
|
|
35105
|
-
let
|
|
35106
|
-
let playerStatisticsSettingsItem = masterPlayerSettings.playerStatisticsSettings.find(x => x.key == request.key);
|
|
35441
|
+
let gamePlayerSettings = this.gnServer.getGNSettings().getGamePlayerSettings(secretInfo.getGameId());
|
|
35442
|
+
let playerStatisticsSettingsItem = gamePlayerSettings.playerStatisticsSettings.find(x => x.key == request.key);
|
|
35107
35443
|
if (playerStatisticsSettingsItem == null) {
|
|
35108
35444
|
operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.KeyNotFound);
|
|
35109
35445
|
return operationResponse;
|
|
35110
35446
|
}
|
|
35111
|
-
let
|
|
35112
|
-
let
|
|
35447
|
+
let positionCacheKey = "gamePlayerStatisticsLeaderboardAroundPosition_" + request.userId + "_" + request.key;
|
|
35448
|
+
let cacheKey = "gamePlayerStatisticsLeaderboardAround_" + request.userId + "_" + request.key;
|
|
35449
|
+
if (request.loadFromCache) {
|
|
35450
|
+
if (request.skip + request.limit > 100) {
|
|
35451
|
+
request.loadFromCache = false;
|
|
35452
|
+
}
|
|
35453
|
+
}
|
|
35454
|
+
if (request.loadFromCache) {
|
|
35455
|
+
if (!this.gnServer.getCacheData().isValid(cacheKey) || !this.gnServer.getCacheData().isValid(positionCacheKey)) {
|
|
35456
|
+
request.loadFromCache = false;
|
|
35457
|
+
}
|
|
35458
|
+
}
|
|
35113
35459
|
let gnResults = new GNData_1.GNArray();
|
|
35114
|
-
let thisPosition
|
|
35115
|
-
let gamePlayers
|
|
35116
|
-
|
|
35117
|
-
|
|
35118
|
-
|
|
35119
|
-
|
|
35120
|
-
|
|
35121
|
-
|
|
35122
|
-
|
|
35460
|
+
let thisPosition;
|
|
35461
|
+
let gamePlayers;
|
|
35462
|
+
if (request.loadFromCache) {
|
|
35463
|
+
thisPosition = this.gnServer.getCacheData().getData(positionCacheKey);
|
|
35464
|
+
gamePlayers = this.gnServer.getCacheData().getData(cacheKey);
|
|
35465
|
+
for (let i = request.skip; i < request.skip + request.limit; i++) {
|
|
35466
|
+
if (i >= gamePlayers.length)
|
|
35467
|
+
break;
|
|
35468
|
+
let gamePlayer = gamePlayers[i];
|
|
35469
|
+
let gnResult = new GNData_1.GNHashtable();
|
|
35470
|
+
gnResult.add(GNParameterCode_1.GNParameterCode.Position, i + thisPosition);
|
|
35471
|
+
gnResult.add(GNParameterCode_1.GNParameterCode.UserId, gamePlayer.getUserId());
|
|
35472
|
+
gnResult.add(GNParameterCode_1.GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(gamePlayer, request.infoRequestParam, secretInfo.getGameId()));
|
|
35473
|
+
gnResults.add(gnResult);
|
|
35474
|
+
}
|
|
35475
|
+
}
|
|
35476
|
+
else {
|
|
35477
|
+
let statisticsAggregationMethod = playerStatisticsSettingsItem.statisticsAggregationMethod;
|
|
35478
|
+
let direction = statisticsAggregationMethod == xStatisticsAggregationMethod_1.xStatisticsAggregationMethod.Minimum ? 1 : -1;
|
|
35479
|
+
thisPosition = yield this.gnServer.getDatabase().loadPositionGamePlayerLeaderboardWithStatisticsAsync(request.key, request.userId, secretInfo.getGameId(), playerStatisticsSettingsItem.initialValue, direction);
|
|
35480
|
+
if (thisPosition != -1) {
|
|
35481
|
+
this.gnServer.getCacheData().setData(positionCacheKey, thisPosition, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
|
|
35482
|
+
let gamePlayerFindOptions = this.convertToGamePlayerFindOptions(request.infoRequestParam);
|
|
35483
|
+
if (request.skip + request.limit <= 100) {
|
|
35484
|
+
gamePlayerFindOptions = null;
|
|
35485
|
+
gamePlayers = yield this.gnServer.getDatabase().loadGamePlayersLeaderboardWithStatisticsAsync(request.key, thisPosition, 100, secretInfo.getGameId(), direction, gamePlayerFindOptions);
|
|
35486
|
+
for (let i = request.skip; i < request.skip + request.limit; i++) {
|
|
35487
|
+
if (i >= gamePlayers.length)
|
|
35488
|
+
break;
|
|
35489
|
+
let gamePlayer = gamePlayers[i];
|
|
35490
|
+
let gnResult = new GNData_1.GNHashtable();
|
|
35491
|
+
gnResult.add(GNParameterCode_1.GNParameterCode.Position, i + thisPosition);
|
|
35492
|
+
gnResult.add(GNParameterCode_1.GNParameterCode.UserId, gamePlayer.getUserId());
|
|
35493
|
+
gnResult.add(GNParameterCode_1.GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(gamePlayer, request.infoRequestParam, secretInfo.getGameId()));
|
|
35494
|
+
gnResults.add(gnResult);
|
|
35495
|
+
}
|
|
35496
|
+
this.gnServer.getCacheData().setData(cacheKey, gamePlayers, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
|
|
35497
|
+
}
|
|
35498
|
+
else {
|
|
35499
|
+
gamePlayers = yield this.gnServer.getDatabase().loadGamePlayersLeaderboardWithStatisticsAsync(request.key, thisPosition + request.skip, request.limit, secretInfo.getGameId(), direction, gamePlayerFindOptions);
|
|
35500
|
+
for (let i = 0; i < gamePlayers.length; i++) {
|
|
35501
|
+
let gamePlayer = gamePlayers[i];
|
|
35502
|
+
let gnResult = new GNData_1.GNHashtable();
|
|
35503
|
+
gnResult.add(GNParameterCode_1.GNParameterCode.Position, i + thisPosition + request.skip);
|
|
35504
|
+
gnResult.add(GNParameterCode_1.GNParameterCode.UserId, gamePlayer.getUserId());
|
|
35505
|
+
gnResult.add(GNParameterCode_1.GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(gamePlayer, request.infoRequestParam, secretInfo.getGameId()));
|
|
35506
|
+
gnResults.add(gnResult);
|
|
35507
|
+
}
|
|
35508
|
+
}
|
|
35509
|
+
}
|
|
35123
35510
|
}
|
|
35124
35511
|
operationResponse.setParameter(GNParameterCode_1.GNParameterCode.Results, gnResults);
|
|
35125
35512
|
operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.Ok);
|
|
@@ -35290,9 +35677,8 @@ class GetStatisticsLeaderboardRequestHandler extends GamePlayerBaseRequestHandle
|
|
|
35290
35677
|
}
|
|
35291
35678
|
operationResponse = new OperationResponse_1.OperationResponse(operationRequest.getOperationCode(), operationRequest.getRequestId(), operationRequest.isEncrypted());
|
|
35292
35679
|
operationResponse.setReturnCode(ReturnCode_1.ReturnCode.Ok);
|
|
35293
|
-
let
|
|
35294
|
-
let
|
|
35295
|
-
let playerStatisticsSettingsItem = masterPlayerSettings.playerStatisticsSettings.find(x => x.key == request.key);
|
|
35680
|
+
let gamePlayerSettings = this.gnServer.getGNSettings().getGamePlayerSettings(secretInfo.getGameId());
|
|
35681
|
+
let playerStatisticsSettingsItem = gamePlayerSettings.playerStatisticsSettings.find(x => x.key == request.key);
|
|
35296
35682
|
if (playerStatisticsSettingsItem == null) {
|
|
35297
35683
|
operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.KeyNotFound);
|
|
35298
35684
|
return operationResponse;
|
|
@@ -35309,8 +35695,6 @@ class GetStatisticsLeaderboardRequestHandler extends GamePlayerBaseRequestHandle
|
|
|
35309
35695
|
request.loadFromCache = false;
|
|
35310
35696
|
}
|
|
35311
35697
|
}
|
|
35312
|
-
let statisticsAggregationMethod = playerStatisticsSettingsItem.statisticsAggregationMethod;
|
|
35313
|
-
let direction = statisticsAggregationMethod == xStatisticsAggregationMethod_1.xStatisticsAggregationMethod.Minimum ? 1 : -1;
|
|
35314
35698
|
let gnResults = new GNData_1.GNArray();
|
|
35315
35699
|
let gamePlayers;
|
|
35316
35700
|
if (request.loadFromCache) {
|
|
@@ -35327,6 +35711,9 @@ class GetStatisticsLeaderboardRequestHandler extends GamePlayerBaseRequestHandle
|
|
|
35327
35711
|
}
|
|
35328
35712
|
}
|
|
35329
35713
|
else {
|
|
35714
|
+
let gamePlayerFindOptions = this.convertToGamePlayerFindOptions(request.infoRequestParam);
|
|
35715
|
+
let statisticsAggregationMethod = playerStatisticsSettingsItem.statisticsAggregationMethod;
|
|
35716
|
+
let direction = statisticsAggregationMethod == xStatisticsAggregationMethod_1.xStatisticsAggregationMethod.Minimum ? 1 : -1;
|
|
35330
35717
|
if (request.skip + request.limit <= 100) {
|
|
35331
35718
|
gamePlayerFindOptions = null;
|
|
35332
35719
|
gamePlayers = yield this.gnServer.getDatabase().loadGamePlayersLeaderboardWithStatisticsAsync(request.key, 0, 100, secretInfo.getGameId(), direction, gamePlayerFindOptions);
|
|
@@ -35543,11 +35930,11 @@ class GetStatisticsLogRequestHandler extends RequestHandler_1.RequestHandler {
|
|
|
35543
35930
|
}
|
|
35544
35931
|
operationResponse = new OperationResponse_1.OperationResponse(operationRequest.getOperationCode(), operationRequest.getRequestId(), operationRequest.isEncrypted());
|
|
35545
35932
|
operationResponse.setReturnCode(ReturnCode_1.ReturnCode.Ok);
|
|
35546
|
-
let
|
|
35933
|
+
let gamePlayerSettings = this.gnServer.getGNSettings().getGamePlayerSettings(secretInfo.getGameId());
|
|
35547
35934
|
let keys = [];
|
|
35548
35935
|
if (request.keys) {
|
|
35549
35936
|
for (let i = 0; i < request.keys.length; i++) {
|
|
35550
|
-
let playerStatisticsSettingsItem =
|
|
35937
|
+
let playerStatisticsSettingsItem = gamePlayerSettings.playerStatisticsSettings.find(x => x.key == request.keys[i]);
|
|
35551
35938
|
if (playerStatisticsSettingsItem != null) {
|
|
35552
35939
|
keys.push(playerStatisticsSettingsItem.key);
|
|
35553
35940
|
}
|
|
@@ -36586,7 +36973,7 @@ __decorate([
|
|
|
36586
36973
|
__metadata("design:type", String)
|
|
36587
36974
|
], GrantPlayerItemOperationRequest.prototype, "displayName", void 0);
|
|
36588
36975
|
__decorate([
|
|
36589
|
-
(0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Amount, defaultValue: 1, isOptional: true }),
|
|
36976
|
+
(0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Amount, defaultValue: 1, mustInt: true, isOptional: true }),
|
|
36590
36977
|
__metadata("design:type", Number)
|
|
36591
36978
|
], GrantPlayerItemOperationRequest.prototype, "amount", void 0);
|
|
36592
36979
|
class ServerGrantPlayerItemOperationRequest extends GrantPlayerItemOperationRequest {
|
|
@@ -36709,7 +37096,7 @@ class GrantPlayerItemRequestHandler extends GamePlayerBaseRequestHandler_1.GameP
|
|
|
36709
37096
|
return operationResponse;
|
|
36710
37097
|
}
|
|
36711
37098
|
let amount = request.amount;
|
|
36712
|
-
if (playerItemCatalogSettingsItem.itemType == ItemType_1.ItemType.
|
|
37099
|
+
if (playerItemCatalogSettingsItem.itemType == ItemType_1.ItemType.NonStackable) {
|
|
36713
37100
|
amount = 1;
|
|
36714
37101
|
}
|
|
36715
37102
|
let itemId = StringUtility_1.StringUtility.generateRandomString(12, this.gnServer.getIdTypeCase());
|
|
@@ -41252,11 +41639,11 @@ class GetCurrencyLogRequestHandler extends RequestHandler_1.RequestHandler {
|
|
|
41252
41639
|
}
|
|
41253
41640
|
operationResponse = new OperationResponse_1.OperationResponse(operationRequest.getOperationCode(), operationRequest.getRequestId(), operationRequest.isEncrypted());
|
|
41254
41641
|
operationResponse.setReturnCode(ReturnCode_1.ReturnCode.Ok);
|
|
41255
|
-
let
|
|
41642
|
+
let groupSettings = this.gnServer.getGNSettings().getGroupSettings(secretInfo.getGameId());
|
|
41256
41643
|
let keys = [];
|
|
41257
41644
|
if (request.keys) {
|
|
41258
41645
|
for (let i = 0; i < request.keys.length; i++) {
|
|
41259
|
-
let playerCurrencySettingsItem =
|
|
41646
|
+
let playerCurrencySettingsItem = groupSettings.groupCurrencySettings.find(x => x.key == request.keys[i]);
|
|
41260
41647
|
if (playerCurrencySettingsItem != null) {
|
|
41261
41648
|
keys.push(playerCurrencySettingsItem.key);
|
|
41262
41649
|
}
|
|
@@ -43503,6 +43890,7 @@ const GNErrorCode_1 = __webpack_require__(94559);
|
|
|
43503
43890
|
const GroupBaseRequestHandler_1 = __webpack_require__(93655);
|
|
43504
43891
|
const InfoRequestParam_1 = __webpack_require__(23228);
|
|
43505
43892
|
const xStatisticsAggregationMethod_1 = __webpack_require__(21554);
|
|
43893
|
+
const xDatetime_1 = __webpack_require__(21817);
|
|
43506
43894
|
class GetStatisticsLeaderboardAroundGroupOperationRequest extends OperationRequest_1.OperationRequest {
|
|
43507
43895
|
isValidRequest() {
|
|
43508
43896
|
if (!super.isValidRequest())
|
|
@@ -43530,6 +43918,14 @@ __decorate([
|
|
|
43530
43918
|
(0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
|
|
43531
43919
|
__metadata("design:type", Number)
|
|
43532
43920
|
], GetStatisticsLeaderboardAroundGroupOperationRequest.prototype, "limit", void 0);
|
|
43921
|
+
__decorate([
|
|
43922
|
+
(0, DataMember_1.BooleanDataMember)({ code: GNParameterCode_1.GNParameterCode.LoadFromCache, defaultValue: true, isOptional: true }),
|
|
43923
|
+
__metadata("design:type", Boolean)
|
|
43924
|
+
], GetStatisticsLeaderboardAroundGroupOperationRequest.prototype, "loadFromCache", void 0);
|
|
43925
|
+
__decorate([
|
|
43926
|
+
(0, DataMember_1.StringDataMember)({ code: GNParameterCode_1.GNParameterCode.CatalogId, minLength: 2, maxLength: 32, mustNonNull: true, isOptional: true }),
|
|
43927
|
+
__metadata("design:type", String)
|
|
43928
|
+
], GetStatisticsLeaderboardAroundGroupOperationRequest.prototype, "catalogId", void 0);
|
|
43533
43929
|
class ServerGetStatisticsLeaderboardAroundGroupOperationRequest extends GetStatisticsLeaderboardAroundGroupOperationRequest {
|
|
43534
43930
|
isValidRequest() {
|
|
43535
43931
|
if (!super.isValidRequest())
|
|
@@ -43567,7 +43963,9 @@ class GetStatisticsLeaderboardAroundGroupRequestHandler extends GroupBaseRequest
|
|
|
43567
43963
|
key: request.key,
|
|
43568
43964
|
skip: request.skip,
|
|
43569
43965
|
limit: request.limit,
|
|
43570
|
-
infoRequestParam: request.infoRequestParam
|
|
43966
|
+
infoRequestParam: request.infoRequestParam,
|
|
43967
|
+
loadFromCache: request.loadFromCache,
|
|
43968
|
+
catalogId: request.catalogId,
|
|
43571
43969
|
}, secretInfo, operationRequest);
|
|
43572
43970
|
});
|
|
43573
43971
|
}
|
|
@@ -43586,7 +43984,9 @@ class GetStatisticsLeaderboardAroundGroupRequestHandler extends GroupBaseRequest
|
|
|
43586
43984
|
key: request.key,
|
|
43587
43985
|
skip: request.skip,
|
|
43588
43986
|
limit: request.limit,
|
|
43589
|
-
infoRequestParam: request.infoRequestParam
|
|
43987
|
+
infoRequestParam: request.infoRequestParam,
|
|
43988
|
+
loadFromCache: request.loadFromCache,
|
|
43989
|
+
catalogId: request.catalogId,
|
|
43590
43990
|
}, secretInfo, operationRequest);
|
|
43591
43991
|
});
|
|
43592
43992
|
}
|
|
@@ -43605,7 +44005,9 @@ class GetStatisticsLeaderboardAroundGroupRequestHandler extends GroupBaseRequest
|
|
|
43605
44005
|
key: request.key,
|
|
43606
44006
|
skip: request.skip,
|
|
43607
44007
|
limit: request.limit,
|
|
43608
|
-
infoRequestParam: request.infoRequestParam
|
|
44008
|
+
infoRequestParam: request.infoRequestParam,
|
|
44009
|
+
loadFromCache: request.loadFromCache,
|
|
44010
|
+
catalogId: request.catalogId,
|
|
43609
44011
|
}, secretInfo, operationRequest);
|
|
43610
44012
|
});
|
|
43611
44013
|
}
|
|
@@ -43617,25 +44019,79 @@ class GetStatisticsLeaderboardAroundGroupRequestHandler extends GroupBaseRequest
|
|
|
43617
44019
|
}
|
|
43618
44020
|
operationResponse = new OperationResponse_1.OperationResponse(operationRequest.getOperationCode(), operationRequest.getRequestId(), operationRequest.isEncrypted());
|
|
43619
44021
|
operationResponse.setReturnCode(ReturnCode_1.ReturnCode.Ok);
|
|
43620
|
-
let
|
|
43621
|
-
let
|
|
43622
|
-
let groupStatisticsSettingsItem = masterGroupSettings.groupStatisticsSettings.find(x => x.key == request.key);
|
|
44022
|
+
let groupSettings = this.gnServer.getGNSettings().getGroupSettings(secretInfo.getGameId());
|
|
44023
|
+
let groupStatisticsSettingsItem = groupSettings.groupStatisticsSettings.find(x => x.key == request.key);
|
|
43623
44024
|
if (groupStatisticsSettingsItem == null) {
|
|
43624
44025
|
operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.KeyNotFound);
|
|
43625
44026
|
return operationResponse;
|
|
43626
44027
|
}
|
|
44028
|
+
let positionCacheKey = "groupStatisticsLeaderboardAroundPosition_" + request.groupId + "_" + request.key;
|
|
44029
|
+
let cacheKey = "groupStatisticsLeaderboardAround_" + request.groupId + "_" + request.key;
|
|
44030
|
+
if (request.catalogId) {
|
|
44031
|
+
cacheKey += "_" + request.catalogId;
|
|
44032
|
+
positionCacheKey += "_" + request.catalogId;
|
|
44033
|
+
}
|
|
44034
|
+
if (request.loadFromCache) {
|
|
44035
|
+
if (request.skip + request.limit > 100) {
|
|
44036
|
+
request.loadFromCache = false;
|
|
44037
|
+
}
|
|
44038
|
+
}
|
|
44039
|
+
if (request.loadFromCache) {
|
|
44040
|
+
if (!this.gnServer.getCacheData().isValid(cacheKey) || !this.gnServer.getCacheData().isValid(positionCacheKey)) {
|
|
44041
|
+
request.loadFromCache = false;
|
|
44042
|
+
}
|
|
44043
|
+
}
|
|
43627
44044
|
let gnResults = new GNData_1.GNArray();
|
|
43628
|
-
let
|
|
43629
|
-
let
|
|
43630
|
-
|
|
43631
|
-
|
|
43632
|
-
|
|
43633
|
-
let
|
|
43634
|
-
|
|
43635
|
-
|
|
43636
|
-
|
|
43637
|
-
|
|
43638
|
-
|
|
44045
|
+
let thisPosition;
|
|
44046
|
+
let groups;
|
|
44047
|
+
if (request.loadFromCache) {
|
|
44048
|
+
thisPosition = this.gnServer.getCacheData().getData(positionCacheKey);
|
|
44049
|
+
groups = this.gnServer.getCacheData().getData(cacheKey);
|
|
44050
|
+
for (let i = request.skip; i < request.skip + request.limit; i++) {
|
|
44051
|
+
if (i >= groups.length)
|
|
44052
|
+
break;
|
|
44053
|
+
let group = groups[i];
|
|
44054
|
+
let gnResult = new GNData_1.GNHashtable();
|
|
44055
|
+
gnResult.add(GNParameterCode_1.GNParameterCode.Position, i + thisPosition);
|
|
44056
|
+
gnResult.add(GNParameterCode_1.GNParameterCode.GroupId, group.getGroupId());
|
|
44057
|
+
gnResult.add(GNParameterCode_1.GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(group, request.infoRequestParam, secretInfo.getGameId()));
|
|
44058
|
+
gnResults.add(gnResult);
|
|
44059
|
+
}
|
|
44060
|
+
}
|
|
44061
|
+
else {
|
|
44062
|
+
let statisticsAggregationMethod = groupStatisticsSettingsItem.statisticsAggregationMethod;
|
|
44063
|
+
let direction = statisticsAggregationMethod == xStatisticsAggregationMethod_1.xStatisticsAggregationMethod.Minimum ? 1 : -1;
|
|
44064
|
+
thisPosition = yield this.gnServer.getDatabase().loadPositionGroupLeaderboardWithStatisticsAsync(request.key, request.groupId, request.catalogId, secretInfo.getGameId(), groupStatisticsSettingsItem.initialValue, direction);
|
|
44065
|
+
if (thisPosition != -1) {
|
|
44066
|
+
this.gnServer.getCacheData().setData(positionCacheKey, thisPosition, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
|
|
44067
|
+
let groupFindOptions = this.convertToGroupFindOptions(request.infoRequestParam);
|
|
44068
|
+
if (request.skip + request.limit <= 100) {
|
|
44069
|
+
groupFindOptions = null;
|
|
44070
|
+
groups = yield this.gnServer.getDatabase().loadGroupsLeaderboardWithStatisticsAsync(request.key, thisPosition, 100, request.catalogId, secretInfo.getGameId(), direction, groupFindOptions);
|
|
44071
|
+
for (let i = request.skip; i < request.skip + request.limit; i++) {
|
|
44072
|
+
if (i >= groups.length)
|
|
44073
|
+
break;
|
|
44074
|
+
let group = groups[i];
|
|
44075
|
+
let gnResult = new GNData_1.GNHashtable();
|
|
44076
|
+
gnResult.add(GNParameterCode_1.GNParameterCode.Position, i + thisPosition);
|
|
44077
|
+
gnResult.add(GNParameterCode_1.GNParameterCode.GroupId, group.getGroupId());
|
|
44078
|
+
gnResult.add(GNParameterCode_1.GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(group, request.infoRequestParam, secretInfo.getGameId()));
|
|
44079
|
+
gnResults.add(gnResult);
|
|
44080
|
+
}
|
|
44081
|
+
this.gnServer.getCacheData().setData(cacheKey, groups, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
|
|
44082
|
+
}
|
|
44083
|
+
else {
|
|
44084
|
+
groups = yield this.gnServer.getDatabase().loadGroupsLeaderboardWithStatisticsAsync(request.key, thisPosition + request.skip, request.limit, request.catalogId, secretInfo.getGameId(), direction, groupFindOptions);
|
|
44085
|
+
for (let i = 0; i < groups.length; i++) {
|
|
44086
|
+
let group = groups[i];
|
|
44087
|
+
let gnResult = new GNData_1.GNHashtable();
|
|
44088
|
+
gnResult.add(GNParameterCode_1.GNParameterCode.Position, i + thisPosition + request.skip);
|
|
44089
|
+
gnResult.add(GNParameterCode_1.GNParameterCode.GroupId, group.getGroupId());
|
|
44090
|
+
gnResult.add(GNParameterCode_1.GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(group, request.infoRequestParam, secretInfo.getGameId()));
|
|
44091
|
+
gnResults.add(gnResult);
|
|
44092
|
+
}
|
|
44093
|
+
}
|
|
44094
|
+
}
|
|
43639
44095
|
}
|
|
43640
44096
|
operationResponse.setParameter(GNParameterCode_1.GNParameterCode.Results, gnResults);
|
|
43641
44097
|
operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.Ok);
|
|
@@ -43717,6 +44173,10 @@ __decorate([
|
|
|
43717
44173
|
(0, DataMember_1.StringDataMember)({ code: GNParameterCode_1.GNParameterCode.Version, minLength: 2, maxLength: 32, mustNonNull: true, isOptional: true }),
|
|
43718
44174
|
__metadata("design:type", String)
|
|
43719
44175
|
], GetStatisticsLeaderboardOperationRequest.prototype, "version", void 0);
|
|
44176
|
+
__decorate([
|
|
44177
|
+
(0, DataMember_1.StringDataMember)({ code: GNParameterCode_1.GNParameterCode.CatalogId, minLength: 2, maxLength: 32, mustNonNull: true, isOptional: true }),
|
|
44178
|
+
__metadata("design:type", String)
|
|
44179
|
+
], GetStatisticsLeaderboardOperationRequest.prototype, "catalogId", void 0);
|
|
43720
44180
|
class ServerGetStatisticsLeaderboardOperationRequest extends GetStatisticsLeaderboardOperationRequest {
|
|
43721
44181
|
isValidRequest() {
|
|
43722
44182
|
if (!super.isValidRequest())
|
|
@@ -43755,6 +44215,7 @@ class GetStatisticsLeaderboardRequestHandler extends GroupBaseRequestHandler_1.G
|
|
|
43755
44215
|
infoRequestParam: request.infoRequestParam,
|
|
43756
44216
|
loadFromCache: request.loadFromCache,
|
|
43757
44217
|
version: request.version,
|
|
44218
|
+
catalogId: request.catalogId,
|
|
43758
44219
|
}, secretInfo, operationRequest);
|
|
43759
44220
|
});
|
|
43760
44221
|
}
|
|
@@ -43775,6 +44236,7 @@ class GetStatisticsLeaderboardRequestHandler extends GroupBaseRequestHandler_1.G
|
|
|
43775
44236
|
infoRequestParam: request.infoRequestParam,
|
|
43776
44237
|
loadFromCache: request.loadFromCache,
|
|
43777
44238
|
version: request.version,
|
|
44239
|
+
catalogId: request.catalogId,
|
|
43778
44240
|
}, secretInfo, operationRequest);
|
|
43779
44241
|
});
|
|
43780
44242
|
}
|
|
@@ -43795,6 +44257,7 @@ class GetStatisticsLeaderboardRequestHandler extends GroupBaseRequestHandler_1.G
|
|
|
43795
44257
|
infoRequestParam: request.infoRequestParam,
|
|
43796
44258
|
loadFromCache: request.loadFromCache,
|
|
43797
44259
|
version: request.version,
|
|
44260
|
+
catalogId: request.catalogId,
|
|
43798
44261
|
}, secretInfo, operationRequest);
|
|
43799
44262
|
});
|
|
43800
44263
|
}
|
|
@@ -43806,15 +44269,16 @@ class GetStatisticsLeaderboardRequestHandler extends GroupBaseRequestHandler_1.G
|
|
|
43806
44269
|
}
|
|
43807
44270
|
operationResponse = new OperationResponse_1.OperationResponse(operationRequest.getOperationCode(), operationRequest.getRequestId(), operationRequest.isEncrypted());
|
|
43808
44271
|
operationResponse.setReturnCode(ReturnCode_1.ReturnCode.Ok);
|
|
43809
|
-
let
|
|
43810
|
-
let
|
|
43811
|
-
let groupStatisticsSettingsItem = masterGroupSettings.groupStatisticsSettings.find(x => x.key == request.key);
|
|
44272
|
+
let groupSettings = this.gnServer.getGNSettings().getGroupSettings(secretInfo.getGameId());
|
|
44273
|
+
let groupStatisticsSettingsItem = groupSettings.groupStatisticsSettings.find(x => x.key == request.key);
|
|
43812
44274
|
if (groupStatisticsSettingsItem == null) {
|
|
43813
44275
|
operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.KeyNotFound);
|
|
43814
44276
|
return operationResponse;
|
|
43815
44277
|
}
|
|
43816
44278
|
if (!request.version) {
|
|
43817
44279
|
let cacheKey = "groupStatisticsLeaderboard_" + request.key;
|
|
44280
|
+
if (request.catalogId)
|
|
44281
|
+
cacheKey += "_" + request.catalogId;
|
|
43818
44282
|
if (request.loadFromCache) {
|
|
43819
44283
|
if (request.skip + request.limit > 100) {
|
|
43820
44284
|
request.loadFromCache = false;
|
|
@@ -43825,8 +44289,6 @@ class GetStatisticsLeaderboardRequestHandler extends GroupBaseRequestHandler_1.G
|
|
|
43825
44289
|
request.loadFromCache = false;
|
|
43826
44290
|
}
|
|
43827
44291
|
}
|
|
43828
|
-
let statisticsAggregationMethod = groupStatisticsSettingsItem.statisticsAggregationMethod;
|
|
43829
|
-
let direction = statisticsAggregationMethod == xStatisticsAggregationMethod_1.xStatisticsAggregationMethod.Minimum ? 1 : -1;
|
|
43830
44292
|
let gnResults = new GNData_1.GNArray();
|
|
43831
44293
|
let groups;
|
|
43832
44294
|
if (request.loadFromCache) {
|
|
@@ -43843,9 +44305,12 @@ class GetStatisticsLeaderboardRequestHandler extends GroupBaseRequestHandler_1.G
|
|
|
43843
44305
|
}
|
|
43844
44306
|
}
|
|
43845
44307
|
else {
|
|
44308
|
+
let groupFindOptions = this.convertToGroupFindOptions(request.infoRequestParam);
|
|
44309
|
+
let statisticsAggregationMethod = groupStatisticsSettingsItem.statisticsAggregationMethod;
|
|
44310
|
+
let direction = statisticsAggregationMethod == xStatisticsAggregationMethod_1.xStatisticsAggregationMethod.Minimum ? 1 : -1;
|
|
43846
44311
|
if (request.skip + request.limit <= 100) {
|
|
43847
44312
|
groupFindOptions = null;
|
|
43848
|
-
groups = yield this.gnServer.getDatabase().loadGroupsLeaderboardWithStatisticsAsync(request.key, 0, 100, secretInfo.getGameId(), direction, groupFindOptions);
|
|
44313
|
+
groups = yield this.gnServer.getDatabase().loadGroupsLeaderboardWithStatisticsAsync(request.key, 0, 100, request.catalogId, secretInfo.getGameId(), direction, groupFindOptions);
|
|
43849
44314
|
for (let i = request.skip; i < request.skip + request.limit; i++) {
|
|
43850
44315
|
if (i >= groups.length)
|
|
43851
44316
|
break;
|
|
@@ -43859,7 +44324,7 @@ class GetStatisticsLeaderboardRequestHandler extends GroupBaseRequestHandler_1.G
|
|
|
43859
44324
|
this.gnServer.getCacheData().setData(cacheKey, groups, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
|
|
43860
44325
|
}
|
|
43861
44326
|
else {
|
|
43862
|
-
groups = yield this.gnServer.getDatabase().loadGroupsLeaderboardWithStatisticsAsync(request.key, request.skip, request.limit, secretInfo.getGameId(), direction, groupFindOptions);
|
|
44327
|
+
groups = yield this.gnServer.getDatabase().loadGroupsLeaderboardWithStatisticsAsync(request.key, request.skip, request.limit, request.catalogId, secretInfo.getGameId(), direction, groupFindOptions);
|
|
43863
44328
|
for (let i = 0; i < groups.length; i++) {
|
|
43864
44329
|
let group = groups[i];
|
|
43865
44330
|
let gnResult = new GNData_1.GNHashtable();
|
|
@@ -44059,11 +44524,11 @@ class GetStatisticsLogRequestHandler extends RequestHandler_1.RequestHandler {
|
|
|
44059
44524
|
}
|
|
44060
44525
|
operationResponse = new OperationResponse_1.OperationResponse(operationRequest.getOperationCode(), operationRequest.getRequestId(), operationRequest.isEncrypted());
|
|
44061
44526
|
operationResponse.setReturnCode(ReturnCode_1.ReturnCode.Ok);
|
|
44062
|
-
let
|
|
44527
|
+
let groupSettings = this.gnServer.getGNSettings().getGroupSettings(secretInfo.getGameId());
|
|
44063
44528
|
let keys = [];
|
|
44064
44529
|
if (request.keys) {
|
|
44065
44530
|
for (let i = 0; i < request.keys.length; i++) {
|
|
44066
|
-
let playerStatisticsSettingsItem =
|
|
44531
|
+
let playerStatisticsSettingsItem = groupSettings.groupStatisticsSettings.find(x => x.key == request.keys[i]);
|
|
44067
44532
|
if (playerStatisticsSettingsItem != null) {
|
|
44068
44533
|
keys.push(playerStatisticsSettingsItem.key);
|
|
44069
44534
|
}
|
|
@@ -44461,7 +44926,7 @@ __decorate([
|
|
|
44461
44926
|
__metadata("design:type", String)
|
|
44462
44927
|
], GrantGroupItemOperationRequest.prototype, "displayName", void 0);
|
|
44463
44928
|
__decorate([
|
|
44464
|
-
(0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Amount, defaultValue: 1, isOptional: true }),
|
|
44929
|
+
(0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Amount, defaultValue: 1, mustInt: true, isOptional: true }),
|
|
44465
44930
|
__metadata("design:type", Number)
|
|
44466
44931
|
], GrantGroupItemOperationRequest.prototype, "amount", void 0);
|
|
44467
44932
|
class ServerGrantGroupItemOperationRequest extends GrantGroupItemOperationRequest {
|
|
@@ -44568,7 +45033,7 @@ class GrantGroupItemRequestHandler extends GroupBaseRequestHandler_1.GroupBaseRe
|
|
|
44568
45033
|
return operationResponse;
|
|
44569
45034
|
}
|
|
44570
45035
|
let amount = request.amount;
|
|
44571
|
-
if (groupItemCatalogSettingsItem.itemType == ItemType_1.ItemType.
|
|
45036
|
+
if (groupItemCatalogSettingsItem.itemType == ItemType_1.ItemType.NonStackable) {
|
|
44572
45037
|
amount = 1;
|
|
44573
45038
|
}
|
|
44574
45039
|
let itemId = StringUtility_1.StringUtility.generateRandomString(12, this.gnServer.getIdTypeCase());
|
|
@@ -50505,6 +50970,7 @@ const GNErrorCode_1 = __webpack_require__(94559);
|
|
|
50505
50970
|
const ItemBaseRequestHandler_1 = __webpack_require__(72916);
|
|
50506
50971
|
const InfoRequestParam_1 = __webpack_require__(55389);
|
|
50507
50972
|
const xStatisticsAggregationMethod_1 = __webpack_require__(21554);
|
|
50973
|
+
const xDatetime_1 = __webpack_require__(21817);
|
|
50508
50974
|
class GetStatisticsLeaderboardAroundItemOperationRequest extends OperationRequest_1.OperationRequest {
|
|
50509
50975
|
isValidRequest() {
|
|
50510
50976
|
if (!super.isValidRequest())
|
|
@@ -50532,6 +50998,14 @@ __decorate([
|
|
|
50532
50998
|
(0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
|
|
50533
50999
|
__metadata("design:type", Number)
|
|
50534
51000
|
], GetStatisticsLeaderboardAroundItemOperationRequest.prototype, "limit", void 0);
|
|
51001
|
+
__decorate([
|
|
51002
|
+
(0, DataMember_1.BooleanDataMember)({ code: GNParameterCode_1.GNParameterCode.LoadFromCache, defaultValue: true, isOptional: true }),
|
|
51003
|
+
__metadata("design:type", Boolean)
|
|
51004
|
+
], GetStatisticsLeaderboardAroundItemOperationRequest.prototype, "loadFromCache", void 0);
|
|
51005
|
+
__decorate([
|
|
51006
|
+
(0, DataMember_1.StringDataMember)({ code: GNParameterCode_1.GNParameterCode.CatalogId, minLength: 2, maxLength: 32, mustNonNull: true, isOptional: true }),
|
|
51007
|
+
__metadata("design:type", String)
|
|
51008
|
+
], GetStatisticsLeaderboardAroundItemOperationRequest.prototype, "catalogId", void 0);
|
|
50535
51009
|
class ServerGetStatisticsLeaderboardAroundItemOperationRequest extends GetStatisticsLeaderboardAroundItemOperationRequest {
|
|
50536
51010
|
isValidRequest() {
|
|
50537
51011
|
if (!super.isValidRequest())
|
|
@@ -50569,7 +51043,9 @@ class GetStatisticsLeaderboardAroundItemRequestHandler extends ItemBaseRequestHa
|
|
|
50569
51043
|
key: request.key,
|
|
50570
51044
|
skip: request.skip,
|
|
50571
51045
|
limit: request.limit,
|
|
50572
|
-
infoRequestParam: request.infoRequestParam
|
|
51046
|
+
infoRequestParam: request.infoRequestParam,
|
|
51047
|
+
loadFromCache: request.loadFromCache,
|
|
51048
|
+
catalogId: request.catalogId,
|
|
50573
51049
|
}, secretInfo, operationRequest);
|
|
50574
51050
|
});
|
|
50575
51051
|
}
|
|
@@ -50588,7 +51064,9 @@ class GetStatisticsLeaderboardAroundItemRequestHandler extends ItemBaseRequestHa
|
|
|
50588
51064
|
key: request.key,
|
|
50589
51065
|
skip: request.skip,
|
|
50590
51066
|
limit: request.limit,
|
|
50591
|
-
infoRequestParam: request.infoRequestParam
|
|
51067
|
+
infoRequestParam: request.infoRequestParam,
|
|
51068
|
+
loadFromCache: request.loadFromCache,
|
|
51069
|
+
catalogId: request.catalogId,
|
|
50592
51070
|
}, secretInfo, operationRequest);
|
|
50593
51071
|
});
|
|
50594
51072
|
}
|
|
@@ -50607,7 +51085,9 @@ class GetStatisticsLeaderboardAroundItemRequestHandler extends ItemBaseRequestHa
|
|
|
50607
51085
|
key: request.key,
|
|
50608
51086
|
skip: request.skip,
|
|
50609
51087
|
limit: request.limit,
|
|
50610
|
-
infoRequestParam: request.infoRequestParam
|
|
51088
|
+
infoRequestParam: request.infoRequestParam,
|
|
51089
|
+
loadFromCache: request.loadFromCache,
|
|
51090
|
+
catalogId: request.catalogId,
|
|
50611
51091
|
}, secretInfo, operationRequest);
|
|
50612
51092
|
});
|
|
50613
51093
|
}
|
|
@@ -50619,25 +51099,79 @@ class GetStatisticsLeaderboardAroundItemRequestHandler extends ItemBaseRequestHa
|
|
|
50619
51099
|
}
|
|
50620
51100
|
operationResponse = new OperationResponse_1.OperationResponse(operationRequest.getOperationCode(), operationRequest.getRequestId(), operationRequest.isEncrypted());
|
|
50621
51101
|
operationResponse.setReturnCode(ReturnCode_1.ReturnCode.Ok);
|
|
50622
|
-
let
|
|
50623
|
-
let
|
|
50624
|
-
let inventoryStatisticsSettingsItem = masterItemSettings.inventoryStatisticsSettings.find(x => x.key == request.key);
|
|
51102
|
+
let inventorySettings = this.gnServer.getGNSettings().getInventorySettings(secretInfo.getGameId());
|
|
51103
|
+
let inventoryStatisticsSettingsItem = inventorySettings.inventoryStatisticsSettings.find(x => x.key == request.key);
|
|
50625
51104
|
if (inventoryStatisticsSettingsItem == null) {
|
|
50626
51105
|
operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.KeyNotFound);
|
|
50627
51106
|
return operationResponse;
|
|
50628
51107
|
}
|
|
51108
|
+
let positionCacheKey = "inventoryStatisticsLeaderboardAroundPosition_" + request.itemId + "_" + request.key;
|
|
51109
|
+
let cacheKey = "inventoryStatisticsLeaderboardAround_" + request.itemId + "_" + request.key;
|
|
51110
|
+
if (request.catalogId) {
|
|
51111
|
+
cacheKey += "_" + request.catalogId;
|
|
51112
|
+
positionCacheKey += "_" + request.catalogId;
|
|
51113
|
+
}
|
|
51114
|
+
if (request.loadFromCache) {
|
|
51115
|
+
if (request.skip + request.limit > 100) {
|
|
51116
|
+
request.loadFromCache = false;
|
|
51117
|
+
}
|
|
51118
|
+
}
|
|
51119
|
+
if (request.loadFromCache) {
|
|
51120
|
+
if (!this.gnServer.getCacheData().isValid(cacheKey) || !this.gnServer.getCacheData().isValid(positionCacheKey)) {
|
|
51121
|
+
request.loadFromCache = false;
|
|
51122
|
+
}
|
|
51123
|
+
}
|
|
50629
51124
|
let gnResults = new GNData_1.GNArray();
|
|
50630
|
-
let
|
|
50631
|
-
let
|
|
50632
|
-
|
|
50633
|
-
|
|
50634
|
-
|
|
50635
|
-
let
|
|
50636
|
-
|
|
50637
|
-
|
|
50638
|
-
|
|
50639
|
-
|
|
50640
|
-
|
|
51125
|
+
let thisPosition;
|
|
51126
|
+
let inventories;
|
|
51127
|
+
if (request.loadFromCache) {
|
|
51128
|
+
thisPosition = this.gnServer.getCacheData().getData(positionCacheKey);
|
|
51129
|
+
inventories = this.gnServer.getCacheData().getData(cacheKey);
|
|
51130
|
+
for (let i = request.skip; i < request.skip + request.limit; i++) {
|
|
51131
|
+
if (i >= inventories.length)
|
|
51132
|
+
break;
|
|
51133
|
+
let inventory = inventories[i];
|
|
51134
|
+
let gnResult = new GNData_1.GNHashtable();
|
|
51135
|
+
gnResult.add(GNParameterCode_1.GNParameterCode.Position, i + thisPosition);
|
|
51136
|
+
gnResult.add(GNParameterCode_1.GNParameterCode.ItemId, inventory.getItemId());
|
|
51137
|
+
gnResult.add(GNParameterCode_1.GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(inventory, request.infoRequestParam, secretInfo.getGameId()));
|
|
51138
|
+
gnResults.add(gnResult);
|
|
51139
|
+
}
|
|
51140
|
+
}
|
|
51141
|
+
else {
|
|
51142
|
+
let statisticsAggregationMethod = inventoryStatisticsSettingsItem.statisticsAggregationMethod;
|
|
51143
|
+
let direction = statisticsAggregationMethod == xStatisticsAggregationMethod_1.xStatisticsAggregationMethod.Minimum ? 1 : -1;
|
|
51144
|
+
thisPosition = yield this.gnServer.getDatabase().loadPositionInventoryLeaderboardWithStatisticsAsync(request.key, request.itemId, request.catalogId, secretInfo.getGameId(), inventoryStatisticsSettingsItem.initialValue, direction);
|
|
51145
|
+
if (thisPosition != -1) {
|
|
51146
|
+
this.gnServer.getCacheData().setData(positionCacheKey, thisPosition, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
|
|
51147
|
+
let inventoryFindOptions = this.convertToInventoryFindOptions(request.infoRequestParam);
|
|
51148
|
+
if (request.skip + request.limit <= 100) {
|
|
51149
|
+
inventoryFindOptions = null;
|
|
51150
|
+
inventories = yield this.gnServer.getDatabase().loadInventoriesLeaderboardWithStatisticsAsync(request.key, thisPosition + request.skip, request.limit, request.catalogId, secretInfo.getGameId(), direction, inventoryFindOptions);
|
|
51151
|
+
for (let i = request.skip; i < request.skip + request.limit; i++) {
|
|
51152
|
+
if (i >= inventories.length)
|
|
51153
|
+
break;
|
|
51154
|
+
let inventory = inventories[i];
|
|
51155
|
+
let gnResult = new GNData_1.GNHashtable();
|
|
51156
|
+
gnResult.add(GNParameterCode_1.GNParameterCode.Position, i + thisPosition);
|
|
51157
|
+
gnResult.add(GNParameterCode_1.GNParameterCode.ItemId, inventory.getItemId());
|
|
51158
|
+
gnResult.add(GNParameterCode_1.GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(inventory, request.infoRequestParam, secretInfo.getGameId()));
|
|
51159
|
+
gnResults.add(gnResult);
|
|
51160
|
+
}
|
|
51161
|
+
this.gnServer.getCacheData().setData(cacheKey, inventories, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
|
|
51162
|
+
}
|
|
51163
|
+
else {
|
|
51164
|
+
inventories = yield this.gnServer.getDatabase().loadInventoriesLeaderboardWithStatisticsAsync(request.key, thisPosition + request.skip, request.limit, request.catalogId, secretInfo.getGameId(), direction, inventoryFindOptions);
|
|
51165
|
+
for (let i = 0; i < inventories.length; i++) {
|
|
51166
|
+
let inventory = inventories[i];
|
|
51167
|
+
let gnResult = new GNData_1.GNHashtable();
|
|
51168
|
+
gnResult.add(GNParameterCode_1.GNParameterCode.Position, i + thisPosition + request.skip);
|
|
51169
|
+
gnResult.add(GNParameterCode_1.GNParameterCode.ItemId, inventory.getItemId());
|
|
51170
|
+
gnResult.add(GNParameterCode_1.GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(inventory, request.infoRequestParam, secretInfo.getGameId()));
|
|
51171
|
+
gnResults.add(gnResult);
|
|
51172
|
+
}
|
|
51173
|
+
}
|
|
51174
|
+
}
|
|
50641
51175
|
}
|
|
50642
51176
|
operationResponse.setParameter(GNParameterCode_1.GNParameterCode.Results, gnResults);
|
|
50643
51177
|
operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.Ok);
|
|
@@ -50719,6 +51253,10 @@ __decorate([
|
|
|
50719
51253
|
(0, DataMember_1.StringDataMember)({ code: GNParameterCode_1.GNParameterCode.Version, minLength: 2, maxLength: 32, mustNonNull: true, isOptional: true }),
|
|
50720
51254
|
__metadata("design:type", String)
|
|
50721
51255
|
], GetStatisticsLeaderboardOperationRequest.prototype, "version", void 0);
|
|
51256
|
+
__decorate([
|
|
51257
|
+
(0, DataMember_1.StringDataMember)({ code: GNParameterCode_1.GNParameterCode.CatalogId, minLength: 2, maxLength: 32, mustNonNull: true, isOptional: true }),
|
|
51258
|
+
__metadata("design:type", String)
|
|
51259
|
+
], GetStatisticsLeaderboardOperationRequest.prototype, "catalogId", void 0);
|
|
50722
51260
|
class ServerGetStatisticsLeaderboardOperationRequest extends GetStatisticsLeaderboardOperationRequest {
|
|
50723
51261
|
isValidRequest() {
|
|
50724
51262
|
if (!super.isValidRequest())
|
|
@@ -50757,6 +51295,7 @@ class GetStatisticsLeaderboardRequestHandler extends ItemBaseRequestHandler_1.It
|
|
|
50757
51295
|
infoRequestParam: request.infoRequestParam,
|
|
50758
51296
|
loadFromCache: request.loadFromCache,
|
|
50759
51297
|
version: request.version,
|
|
51298
|
+
catalogId: request.catalogId,
|
|
50760
51299
|
}, secretInfo, operationRequest);
|
|
50761
51300
|
});
|
|
50762
51301
|
}
|
|
@@ -50777,6 +51316,7 @@ class GetStatisticsLeaderboardRequestHandler extends ItemBaseRequestHandler_1.It
|
|
|
50777
51316
|
infoRequestParam: request.infoRequestParam,
|
|
50778
51317
|
loadFromCache: request.loadFromCache,
|
|
50779
51318
|
version: request.version,
|
|
51319
|
+
catalogId: request.catalogId,
|
|
50780
51320
|
}, secretInfo, operationRequest);
|
|
50781
51321
|
});
|
|
50782
51322
|
}
|
|
@@ -50797,6 +51337,7 @@ class GetStatisticsLeaderboardRequestHandler extends ItemBaseRequestHandler_1.It
|
|
|
50797
51337
|
infoRequestParam: request.infoRequestParam,
|
|
50798
51338
|
loadFromCache: request.loadFromCache,
|
|
50799
51339
|
version: request.version,
|
|
51340
|
+
catalogId: request.catalogId,
|
|
50800
51341
|
}, secretInfo, operationRequest);
|
|
50801
51342
|
});
|
|
50802
51343
|
}
|
|
@@ -50808,15 +51349,16 @@ class GetStatisticsLeaderboardRequestHandler extends ItemBaseRequestHandler_1.It
|
|
|
50808
51349
|
}
|
|
50809
51350
|
operationResponse = new OperationResponse_1.OperationResponse(operationRequest.getOperationCode(), operationRequest.getRequestId(), operationRequest.isEncrypted());
|
|
50810
51351
|
operationResponse.setReturnCode(ReturnCode_1.ReturnCode.Ok);
|
|
50811
|
-
let
|
|
50812
|
-
let
|
|
50813
|
-
let inventoryStatisticsSettingsItem = masterItemSettings.inventoryStatisticsSettings.find(x => x.key == request.key);
|
|
51352
|
+
let inventorySettings = this.gnServer.getGNSettings().getInventorySettings(secretInfo.getGameId());
|
|
51353
|
+
let inventoryStatisticsSettingsItem = inventorySettings.inventoryStatisticsSettings.find(x => x.key == request.key);
|
|
50814
51354
|
if (inventoryStatisticsSettingsItem == null) {
|
|
50815
51355
|
operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.KeyNotFound);
|
|
50816
51356
|
return operationResponse;
|
|
50817
51357
|
}
|
|
50818
51358
|
if (!request.version) {
|
|
50819
51359
|
let cacheKey = "inventoryStatisticsLeaderboard_" + request.key;
|
|
51360
|
+
if (request.catalogId)
|
|
51361
|
+
cacheKey += "_" + request.catalogId;
|
|
50820
51362
|
if (request.loadFromCache) {
|
|
50821
51363
|
if (request.skip + request.limit > 100) {
|
|
50822
51364
|
request.loadFromCache = false;
|
|
@@ -50827,8 +51369,6 @@ class GetStatisticsLeaderboardRequestHandler extends ItemBaseRequestHandler_1.It
|
|
|
50827
51369
|
request.loadFromCache = false;
|
|
50828
51370
|
}
|
|
50829
51371
|
}
|
|
50830
|
-
let statisticsAggregationMethod = inventoryStatisticsSettingsItem.statisticsAggregationMethod;
|
|
50831
|
-
let direction = statisticsAggregationMethod == xStatisticsAggregationMethod_1.xStatisticsAggregationMethod.Minimum ? 1 : -1;
|
|
50832
51372
|
let gnResults = new GNData_1.GNArray();
|
|
50833
51373
|
let inventorys;
|
|
50834
51374
|
if (request.loadFromCache) {
|
|
@@ -50845,9 +51385,12 @@ class GetStatisticsLeaderboardRequestHandler extends ItemBaseRequestHandler_1.It
|
|
|
50845
51385
|
}
|
|
50846
51386
|
}
|
|
50847
51387
|
else {
|
|
51388
|
+
let inventoryFindOptions = this.convertToInventoryFindOptions(request.infoRequestParam);
|
|
51389
|
+
let statisticsAggregationMethod = inventoryStatisticsSettingsItem.statisticsAggregationMethod;
|
|
51390
|
+
let direction = statisticsAggregationMethod == xStatisticsAggregationMethod_1.xStatisticsAggregationMethod.Minimum ? 1 : -1;
|
|
50848
51391
|
if (request.skip + request.limit <= 100) {
|
|
50849
51392
|
inventoryFindOptions = null;
|
|
50850
|
-
inventorys = yield this.gnServer.getDatabase().loadInventoriesLeaderboardWithStatisticsAsync(request.key, 0, 100, secretInfo.getGameId(), direction, inventoryFindOptions);
|
|
51393
|
+
inventorys = yield this.gnServer.getDatabase().loadInventoriesLeaderboardWithStatisticsAsync(request.key, 0, 100, request.catalogId, secretInfo.getGameId(), direction, inventoryFindOptions);
|
|
50851
51394
|
for (let i = request.skip; i < request.skip + request.limit; i++) {
|
|
50852
51395
|
if (i >= inventorys.length)
|
|
50853
51396
|
break;
|
|
@@ -50861,7 +51404,7 @@ class GetStatisticsLeaderboardRequestHandler extends ItemBaseRequestHandler_1.It
|
|
|
50861
51404
|
this.gnServer.getCacheData().setData(cacheKey, inventorys, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
|
|
50862
51405
|
}
|
|
50863
51406
|
else {
|
|
50864
|
-
inventorys = yield this.gnServer.getDatabase().loadInventoriesLeaderboardWithStatisticsAsync(request.key, request.skip, request.limit, secretInfo.getGameId(), direction, inventoryFindOptions);
|
|
51407
|
+
inventorys = yield this.gnServer.getDatabase().loadInventoriesLeaderboardWithStatisticsAsync(request.key, request.skip, request.limit, request.catalogId, secretInfo.getGameId(), direction, inventoryFindOptions);
|
|
50865
51408
|
for (let i = 0; i < inventorys.length; i++) {
|
|
50866
51409
|
let inventory = inventorys[i];
|
|
50867
51410
|
let gnResult = new GNData_1.GNHashtable();
|
|
@@ -51061,11 +51604,11 @@ class GetStatisticsLogRequestHandler extends RequestHandler_1.RequestHandler {
|
|
|
51061
51604
|
}
|
|
51062
51605
|
operationResponse = new OperationResponse_1.OperationResponse(operationRequest.getOperationCode(), operationRequest.getRequestId(), operationRequest.isEncrypted());
|
|
51063
51606
|
operationResponse.setReturnCode(ReturnCode_1.ReturnCode.Ok);
|
|
51064
|
-
let
|
|
51607
|
+
let inventorySettings = this.gnServer.getGNSettings().getInventorySettings(secretInfo.getGameId());
|
|
51065
51608
|
let keys = [];
|
|
51066
51609
|
if (request.keys) {
|
|
51067
51610
|
for (let i = 0; i < request.keys.length; i++) {
|
|
51068
|
-
let playerStatisticsSettingsItem =
|
|
51611
|
+
let playerStatisticsSettingsItem = inventorySettings.inventoryStatisticsSettings.find(x => x.key == request.keys[i]);
|
|
51069
51612
|
if (playerStatisticsSettingsItem != null) {
|
|
51070
51613
|
keys.push(playerStatisticsSettingsItem.key);
|
|
51071
51614
|
}
|
|
@@ -52268,8 +52811,8 @@ class SetAmountRequestHandler extends ItemBaseRequestHandler_1.ItemBaseRequestHa
|
|
|
52268
52811
|
return operationResponse;
|
|
52269
52812
|
}
|
|
52270
52813
|
let itemType = inventory.getItemType();
|
|
52271
|
-
if (itemType == ItemType_1.ItemType.
|
|
52272
|
-
operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.
|
|
52814
|
+
if (itemType == ItemType_1.ItemType.NonStackable) {
|
|
52815
|
+
operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.ItemNotStackable);
|
|
52273
52816
|
return operationResponse;
|
|
52274
52817
|
}
|
|
52275
52818
|
inventory.setAmount(inventory.getAmount() + request.amount);
|
|
@@ -55125,7 +55668,6 @@ class GetCurrencyLeaderboardRequestHandler extends MasterPlayerBaseRequestHandle
|
|
|
55125
55668
|
}
|
|
55126
55669
|
operationResponse = new OperationResponse_1.OperationResponse(operationRequest.getOperationCode(), operationRequest.getRequestId(), operationRequest.isEncrypted());
|
|
55127
55670
|
operationResponse.setReturnCode(ReturnCode_1.ReturnCode.Ok);
|
|
55128
|
-
let masterPlayerFindOptions = this.convertToMasterPlayerFindOptions(request.infoRequestParam);
|
|
55129
55671
|
let masterPlayerSettings = this.gnServer.getGNSettings().getMasterPlayerSettings();
|
|
55130
55672
|
let playerCurrencySettingsItem = masterPlayerSettings.playerCurrencySettings.find(x => x.key == request.key);
|
|
55131
55673
|
if (playerCurrencySettingsItem == null) {
|
|
@@ -55159,6 +55701,7 @@ class GetCurrencyLeaderboardRequestHandler extends MasterPlayerBaseRequestHandle
|
|
|
55159
55701
|
}
|
|
55160
55702
|
}
|
|
55161
55703
|
else {
|
|
55704
|
+
let masterPlayerFindOptions = this.convertToMasterPlayerFindOptions(request.infoRequestParam);
|
|
55162
55705
|
if (request.skip + request.limit <= 100) {
|
|
55163
55706
|
masterPlayerFindOptions = null;
|
|
55164
55707
|
masterPlayers = yield this.gnServer.getDatabase().loadMasterPlayersLeaderboardWithCurrenciesAsync(request.key, 0, 100, masterPlayerFindOptions);
|
|
@@ -58955,6 +59498,7 @@ const GNErrorCode_1 = __webpack_require__(94559);
|
|
|
58955
59498
|
const MasterPlayerBaseRequestHandler_1 = __webpack_require__(28575);
|
|
58956
59499
|
const InfoRequestParam_1 = __webpack_require__(17818);
|
|
58957
59500
|
const xStatisticsAggregationMethod_1 = __webpack_require__(21554);
|
|
59501
|
+
const xDatetime_1 = __webpack_require__(21817);
|
|
58958
59502
|
class GetStatisticsLeaderboardAroundPlayerOperationRequest extends OperationRequest_1.OperationRequest {
|
|
58959
59503
|
isValidRequest() {
|
|
58960
59504
|
if (!super.isValidRequest())
|
|
@@ -58982,6 +59526,10 @@ __decorate([
|
|
|
58982
59526
|
(0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
|
|
58983
59527
|
__metadata("design:type", Number)
|
|
58984
59528
|
], GetStatisticsLeaderboardAroundPlayerOperationRequest.prototype, "limit", void 0);
|
|
59529
|
+
__decorate([
|
|
59530
|
+
(0, DataMember_1.BooleanDataMember)({ code: GNParameterCode_1.GNParameterCode.LoadFromCache, defaultValue: true, isOptional: true }),
|
|
59531
|
+
__metadata("design:type", Boolean)
|
|
59532
|
+
], GetStatisticsLeaderboardAroundPlayerOperationRequest.prototype, "loadFromCache", void 0);
|
|
58985
59533
|
class ServerGetStatisticsLeaderboardAroundPlayerOperationRequest extends GetStatisticsLeaderboardAroundPlayerOperationRequest {
|
|
58986
59534
|
isValidRequest() {
|
|
58987
59535
|
if (!super.isValidRequest())
|
|
@@ -59035,7 +59583,8 @@ class GetStatisticsLeaderboardAroundPlayerRequestHandler extends MasterPlayerBas
|
|
|
59035
59583
|
key: request.key,
|
|
59036
59584
|
skip: request.skip,
|
|
59037
59585
|
limit: request.limit,
|
|
59038
|
-
infoRequestParam: request.infoRequestParam
|
|
59586
|
+
infoRequestParam: request.infoRequestParam,
|
|
59587
|
+
loadFromCache: request.loadFromCache,
|
|
59039
59588
|
}, secretInfo, operationRequest);
|
|
59040
59589
|
});
|
|
59041
59590
|
}
|
|
@@ -59054,7 +59603,8 @@ class GetStatisticsLeaderboardAroundPlayerRequestHandler extends MasterPlayerBas
|
|
|
59054
59603
|
key: request.key,
|
|
59055
59604
|
skip: request.skip,
|
|
59056
59605
|
limit: request.limit,
|
|
59057
|
-
infoRequestParam: request.infoRequestParam
|
|
59606
|
+
infoRequestParam: request.infoRequestParam,
|
|
59607
|
+
loadFromCache: request.loadFromCache,
|
|
59058
59608
|
}, secretInfo, operationRequest);
|
|
59059
59609
|
});
|
|
59060
59610
|
}
|
|
@@ -59073,7 +59623,8 @@ class GetStatisticsLeaderboardAroundPlayerRequestHandler extends MasterPlayerBas
|
|
|
59073
59623
|
key: request.key,
|
|
59074
59624
|
skip: request.skip,
|
|
59075
59625
|
limit: request.limit,
|
|
59076
|
-
infoRequestParam: request.infoRequestParam
|
|
59626
|
+
infoRequestParam: request.infoRequestParam,
|
|
59627
|
+
loadFromCache: request.loadFromCache,
|
|
59077
59628
|
}, secretInfo, operationRequest);
|
|
59078
59629
|
});
|
|
59079
59630
|
}
|
|
@@ -59085,25 +59636,75 @@ class GetStatisticsLeaderboardAroundPlayerRequestHandler extends MasterPlayerBas
|
|
|
59085
59636
|
}
|
|
59086
59637
|
operationResponse = new OperationResponse_1.OperationResponse(operationRequest.getOperationCode(), operationRequest.getRequestId(), operationRequest.isEncrypted());
|
|
59087
59638
|
operationResponse.setReturnCode(ReturnCode_1.ReturnCode.Ok);
|
|
59088
|
-
let masterPlayerFindOptions = this.convertToMasterPlayerFindOptions(request.infoRequestParam);
|
|
59089
59639
|
let masterPlayerSettings = this.gnServer.getGNSettings().getMasterPlayerSettings();
|
|
59090
59640
|
let playerStatisticsSettingsItem = masterPlayerSettings.playerStatisticsSettings.find(x => x.key == request.key);
|
|
59091
59641
|
if (playerStatisticsSettingsItem == null) {
|
|
59092
59642
|
operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.KeyNotFound);
|
|
59093
59643
|
return operationResponse;
|
|
59094
59644
|
}
|
|
59095
|
-
let
|
|
59096
|
-
let
|
|
59645
|
+
let positionCacheKey = "masterPlayerStatisticsLeaderboardAroundPosition_" + request.userId + "_" + request.key;
|
|
59646
|
+
let cacheKey = "masterPlayerStatisticsLeaderboardAround_" + request.userId + "_" + request.key;
|
|
59647
|
+
if (request.loadFromCache) {
|
|
59648
|
+
if (request.skip + request.limit > 100) {
|
|
59649
|
+
request.loadFromCache = false;
|
|
59650
|
+
}
|
|
59651
|
+
}
|
|
59652
|
+
if (request.loadFromCache) {
|
|
59653
|
+
if (!this.gnServer.getCacheData().isValid(cacheKey) || !this.gnServer.getCacheData().isValid(positionCacheKey)) {
|
|
59654
|
+
request.loadFromCache = false;
|
|
59655
|
+
}
|
|
59656
|
+
}
|
|
59097
59657
|
let gnResults = new GNData_1.GNArray();
|
|
59098
|
-
let thisPosition
|
|
59099
|
-
let masterPlayers
|
|
59100
|
-
|
|
59101
|
-
|
|
59102
|
-
|
|
59103
|
-
|
|
59104
|
-
|
|
59105
|
-
|
|
59106
|
-
|
|
59658
|
+
let thisPosition;
|
|
59659
|
+
let masterPlayers;
|
|
59660
|
+
if (request.loadFromCache) {
|
|
59661
|
+
thisPosition = this.gnServer.getCacheData().getData(positionCacheKey);
|
|
59662
|
+
masterPlayers = this.gnServer.getCacheData().getData(cacheKey);
|
|
59663
|
+
for (let i = request.skip; i < request.skip + request.limit; i++) {
|
|
59664
|
+
if (i >= masterPlayers.length)
|
|
59665
|
+
break;
|
|
59666
|
+
let masterPlayer = masterPlayers[i];
|
|
59667
|
+
let gnResult = new GNData_1.GNHashtable();
|
|
59668
|
+
gnResult.add(GNParameterCode_1.GNParameterCode.Position, i + thisPosition);
|
|
59669
|
+
gnResult.add(GNParameterCode_1.GNParameterCode.UserId, masterPlayer.getUserId());
|
|
59670
|
+
gnResult.add(GNParameterCode_1.GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(masterPlayer, request.infoRequestParam));
|
|
59671
|
+
gnResults.add(gnResult);
|
|
59672
|
+
}
|
|
59673
|
+
}
|
|
59674
|
+
else {
|
|
59675
|
+
let statisticsAggregationMethod = playerStatisticsSettingsItem.statisticsAggregationMethod;
|
|
59676
|
+
let direction = statisticsAggregationMethod == xStatisticsAggregationMethod_1.xStatisticsAggregationMethod.Minimum ? 1 : -1;
|
|
59677
|
+
thisPosition = yield this.gnServer.getDatabase().loadPositionMasterPlayerLeaderboardWithStatisticsAsync(request.key, request.userId, playerStatisticsSettingsItem.initialValue, direction);
|
|
59678
|
+
if (thisPosition != -1) {
|
|
59679
|
+
this.gnServer.getCacheData().setData(positionCacheKey, thisPosition, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
|
|
59680
|
+
let masterPlayerFindOptions = this.convertToMasterPlayerFindOptions(request.infoRequestParam);
|
|
59681
|
+
if (request.skip + request.limit <= 100) {
|
|
59682
|
+
masterPlayerFindOptions = null;
|
|
59683
|
+
masterPlayers = yield this.gnServer.getDatabase().loadMasterPlayersLeaderboardWithStatisticsAsync(request.key, thisPosition, 100, direction, masterPlayerFindOptions);
|
|
59684
|
+
for (let i = request.skip; i < request.skip + request.limit; i++) {
|
|
59685
|
+
if (i >= masterPlayers.length)
|
|
59686
|
+
break;
|
|
59687
|
+
let masterPlayer = masterPlayers[i];
|
|
59688
|
+
let gnResult = new GNData_1.GNHashtable();
|
|
59689
|
+
gnResult.add(GNParameterCode_1.GNParameterCode.Position, i + thisPosition);
|
|
59690
|
+
gnResult.add(GNParameterCode_1.GNParameterCode.UserId, masterPlayer.getUserId());
|
|
59691
|
+
gnResult.add(GNParameterCode_1.GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(masterPlayer, request.infoRequestParam));
|
|
59692
|
+
gnResults.add(gnResult);
|
|
59693
|
+
}
|
|
59694
|
+
this.gnServer.getCacheData().setData(cacheKey, masterPlayers, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
|
|
59695
|
+
}
|
|
59696
|
+
else {
|
|
59697
|
+
masterPlayers = yield this.gnServer.getDatabase().loadMasterPlayersLeaderboardWithStatisticsAsync(request.key, thisPosition + request.skip, request.limit, direction, masterPlayerFindOptions);
|
|
59698
|
+
for (let i = 0; i < masterPlayers.length; i++) {
|
|
59699
|
+
let masterPlayer = masterPlayers[i];
|
|
59700
|
+
let gnResult = new GNData_1.GNHashtable();
|
|
59701
|
+
gnResult.add(GNParameterCode_1.GNParameterCode.Position, i + thisPosition + request.skip);
|
|
59702
|
+
gnResult.add(GNParameterCode_1.GNParameterCode.UserId, masterPlayer.getUserId());
|
|
59703
|
+
gnResult.add(GNParameterCode_1.GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(masterPlayer, request.infoRequestParam));
|
|
59704
|
+
gnResults.add(gnResult);
|
|
59705
|
+
}
|
|
59706
|
+
}
|
|
59707
|
+
}
|
|
59107
59708
|
}
|
|
59108
59709
|
operationResponse.setParameter(GNParameterCode_1.GNParameterCode.Results, gnResults);
|
|
59109
59710
|
operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.Ok);
|
|
@@ -59274,7 +59875,6 @@ class GetStatisticsLeaderboardRequestHandler extends MasterPlayerBaseRequestHand
|
|
|
59274
59875
|
}
|
|
59275
59876
|
operationResponse = new OperationResponse_1.OperationResponse(operationRequest.getOperationCode(), operationRequest.getRequestId(), operationRequest.isEncrypted());
|
|
59276
59877
|
operationResponse.setReturnCode(ReturnCode_1.ReturnCode.Ok);
|
|
59277
|
-
let masterPlayerFindOptions = this.convertToMasterPlayerFindOptions(request.infoRequestParam);
|
|
59278
59878
|
let masterPlayerSettings = this.gnServer.getGNSettings().getMasterPlayerSettings();
|
|
59279
59879
|
let playerStatisticsSettingsItem = masterPlayerSettings.playerStatisticsSettings.find(x => x.key == request.key);
|
|
59280
59880
|
if (playerStatisticsSettingsItem == null) {
|
|
@@ -59293,8 +59893,6 @@ class GetStatisticsLeaderboardRequestHandler extends MasterPlayerBaseRequestHand
|
|
|
59293
59893
|
request.loadFromCache = false;
|
|
59294
59894
|
}
|
|
59295
59895
|
}
|
|
59296
|
-
let statisticsAggregationMethod = playerStatisticsSettingsItem.statisticsAggregationMethod;
|
|
59297
|
-
let direction = statisticsAggregationMethod == xStatisticsAggregationMethod_1.xStatisticsAggregationMethod.Minimum ? 1 : -1;
|
|
59298
59896
|
let gnResults = new GNData_1.GNArray();
|
|
59299
59897
|
let masterPlayers;
|
|
59300
59898
|
if (request.loadFromCache) {
|
|
@@ -59311,6 +59909,9 @@ class GetStatisticsLeaderboardRequestHandler extends MasterPlayerBaseRequestHand
|
|
|
59311
59909
|
}
|
|
59312
59910
|
}
|
|
59313
59911
|
else {
|
|
59912
|
+
let masterPlayerFindOptions = this.convertToMasterPlayerFindOptions(request.infoRequestParam);
|
|
59913
|
+
let statisticsAggregationMethod = playerStatisticsSettingsItem.statisticsAggregationMethod;
|
|
59914
|
+
let direction = statisticsAggregationMethod == xStatisticsAggregationMethod_1.xStatisticsAggregationMethod.Minimum ? 1 : -1;
|
|
59314
59915
|
if (request.skip + request.limit <= 100) {
|
|
59315
59916
|
masterPlayerFindOptions = null;
|
|
59316
59917
|
masterPlayers = yield this.gnServer.getDatabase().loadMasterPlayersLeaderboardWithStatisticsAsync(request.key, 0, 100, direction, masterPlayerFindOptions);
|
|
@@ -76980,6 +77581,8 @@ class AnalyticsService {
|
|
|
76980
77581
|
operationSystem: this.currentOperationSystem,
|
|
76981
77582
|
requestComplete: this.currentRequestComplete,
|
|
76982
77583
|
databaseSystem: this.currentDatabaseSystem,
|
|
77584
|
+
cost: this.currentCost,
|
|
77585
|
+
monthlyCost: this.currentMonthlyCost,
|
|
76983
77586
|
};
|
|
76984
77587
|
}
|
|
76985
77588
|
else {
|
|
@@ -77005,6 +77608,8 @@ class AnalyticsService {
|
|
|
77005
77608
|
operationSystem: null,
|
|
77006
77609
|
requestComplete: null,
|
|
77007
77610
|
databaseSystem: null,
|
|
77611
|
+
cost: null,
|
|
77612
|
+
monthlyCost: null,
|
|
77008
77613
|
};
|
|
77009
77614
|
}
|
|
77010
77615
|
else {
|
|
@@ -77027,6 +77632,8 @@ class AnalyticsService {
|
|
|
77027
77632
|
operationSystem: result["operationSystem"],
|
|
77028
77633
|
requestComplete: result["requestComplete"],
|
|
77029
77634
|
databaseSystem: result["databaseSystem"],
|
|
77635
|
+
cost: result["cost"],
|
|
77636
|
+
monthlyCost: result["monthlyCost"],
|
|
77030
77637
|
};
|
|
77031
77638
|
}
|
|
77032
77639
|
}
|
|
@@ -77053,6 +77660,7 @@ class AnalyticsService {
|
|
|
77053
77660
|
}
|
|
77054
77661
|
getAnalytics() {
|
|
77055
77662
|
return __awaiter(this, void 0, void 0, function* () {
|
|
77663
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
77056
77664
|
let currentMilliseconds = xDatetime_1.xDatetime.getCurrentMilliseconds();
|
|
77057
77665
|
let millisecondsSince0h = xDatetime_1.xDatetime.getToday0hMilliseconds();
|
|
77058
77666
|
let playerCollection = this.gnServer.getDatabase().systemCollection("MasterPlayer");
|
|
@@ -77224,41 +77832,41 @@ class AnalyticsService {
|
|
|
77224
77832
|
storageUsage: storageUsage
|
|
77225
77833
|
};
|
|
77226
77834
|
}
|
|
77227
|
-
{
|
|
77228
|
-
|
|
77229
|
-
|
|
77230
|
-
|
|
77231
|
-
|
|
77232
|
-
|
|
77233
|
-
|
|
77234
|
-
|
|
77235
|
-
|
|
77236
|
-
|
|
77237
|
-
|
|
77238
|
-
|
|
77239
|
-
|
|
77240
|
-
|
|
77241
|
-
|
|
77242
|
-
|
|
77243
|
-
|
|
77244
|
-
|
|
77245
|
-
|
|
77246
|
-
|
|
77247
|
-
|
|
77248
|
-
|
|
77249
|
-
|
|
77250
|
-
|
|
77251
|
-
|
|
77252
|
-
|
|
77253
|
-
|
|
77254
|
-
|
|
77255
|
-
|
|
77256
|
-
|
|
77257
|
-
|
|
77258
|
-
|
|
77259
|
-
|
|
77260
|
-
|
|
77261
|
-
}
|
|
77835
|
+
// {
|
|
77836
|
+
// let eventCallbackPostCollection = this.gnServer.getDatabase().systemCollection("EventCallback.Post");
|
|
77837
|
+
// let results = await eventCallbackPostCollection.aggregate([
|
|
77838
|
+
// {
|
|
77839
|
+
// $match: {
|
|
77840
|
+
// _id: { $gt: mongoDB.ObjectId.createFromTime(millisecondsAt15MinutesAgo / 1000 - 1) }
|
|
77841
|
+
// }
|
|
77842
|
+
// },
|
|
77843
|
+
// {
|
|
77844
|
+
// $group: {
|
|
77845
|
+
// _id: { eventName: "$eventName", E: "$operationResponse.parameters.E" },
|
|
77846
|
+
// count: { $sum: 1 } // Đếm số lần xuất hiện
|
|
77847
|
+
// }
|
|
77848
|
+
// },
|
|
77849
|
+
// {
|
|
77850
|
+
// $group: {
|
|
77851
|
+
// _id: "$_id.eventName",
|
|
77852
|
+
// results: {
|
|
77853
|
+
// $push: {
|
|
77854
|
+
// errorCode: "$_id.E",
|
|
77855
|
+
// count: "$count"
|
|
77856
|
+
// }
|
|
77857
|
+
// }
|
|
77858
|
+
// }
|
|
77859
|
+
// }
|
|
77860
|
+
// ]);
|
|
77861
|
+
// this.currentRequestComplete = [];
|
|
77862
|
+
// while (await results.hasNext()) {
|
|
77863
|
+
// let result = await results.next();
|
|
77864
|
+
// this.currentRequestComplete.push({
|
|
77865
|
+
// eventName: result["_id"],
|
|
77866
|
+
// results: result.results,
|
|
77867
|
+
// });
|
|
77868
|
+
// }
|
|
77869
|
+
// }
|
|
77262
77870
|
{
|
|
77263
77871
|
let stats = yield this.gnServer.getDatabase().getDb().stats();
|
|
77264
77872
|
if (stats.ok == 1) {
|
|
@@ -77272,6 +77880,101 @@ class AnalyticsService {
|
|
|
77272
77880
|
};
|
|
77273
77881
|
}
|
|
77274
77882
|
}
|
|
77883
|
+
{
|
|
77884
|
+
let eventCallbackPostCollection = this.gnServer.getDatabase().systemCollection("EventCallback.Post");
|
|
77885
|
+
let now = xDatetime_1.xDatetime.getCurrentDate();
|
|
77886
|
+
let month0h = new Date(now.getFullYear(), now.getMonth(), 1);
|
|
77887
|
+
let results = yield eventCallbackPostCollection.find({ _id: { $gt: mongoDB.ObjectId.createFromTime(month0h.getTime() / 1000 - 1) } });
|
|
77888
|
+
this.currentCost = {
|
|
77889
|
+
requestCount: 0,
|
|
77890
|
+
matchmakingRequestCount: 0,
|
|
77891
|
+
cloudScriptGBs: 0,
|
|
77892
|
+
storageSizeInBytes: (_b = (_a = this.currentDatabaseSystem) === null || _a === void 0 ? void 0 : _a.totalSizeInBytes) !== null && _b !== void 0 ? _b : 0,
|
|
77893
|
+
dataTransferSizeInBytes: 0,
|
|
77894
|
+
};
|
|
77895
|
+
this.currentMonthlyCost = {
|
|
77896
|
+
requestCount: 0,
|
|
77897
|
+
matchmakingRequestCount: 0,
|
|
77898
|
+
cloudScriptGBs: 0,
|
|
77899
|
+
storageSizeInBytes: (_d = (_c = this.currentDatabaseSystem) === null || _c === void 0 ? void 0 : _c.totalSizeInBytes) !== null && _d !== void 0 ? _d : 0,
|
|
77900
|
+
dataTransferSizeInBytes: 0,
|
|
77901
|
+
};
|
|
77902
|
+
this.currentRequestComplete = [];
|
|
77903
|
+
while (yield results.hasNext()) {
|
|
77904
|
+
let result = yield results.next();
|
|
77905
|
+
let tsCreate = result["tsCreate"];
|
|
77906
|
+
let eventName = result["eventName"];
|
|
77907
|
+
let operationResponse = result["operationResponse"];
|
|
77908
|
+
if (tsCreate > millisecondsAt15MinutesAgo) {
|
|
77909
|
+
let thisCurrentRequestComplete = this.currentRequestComplete.find(x => x.eventName == eventName);
|
|
77910
|
+
if (thisCurrentRequestComplete == null) {
|
|
77911
|
+
thisCurrentRequestComplete = {
|
|
77912
|
+
eventName: eventName,
|
|
77913
|
+
results: [],
|
|
77914
|
+
};
|
|
77915
|
+
this.currentRequestComplete.push(thisCurrentRequestComplete);
|
|
77916
|
+
}
|
|
77917
|
+
let errorCode = (_e = operationResponse === null || operationResponse === void 0 ? void 0 : operationResponse.parameters) === null || _e === void 0 ? void 0 : _e.E;
|
|
77918
|
+
if (errorCode) {
|
|
77919
|
+
let thisCurrentRequestCompleteErrorCode = thisCurrentRequestComplete.results.find(x => x.errorCode == errorCode);
|
|
77920
|
+
if (thisCurrentRequestCompleteErrorCode == null) {
|
|
77921
|
+
thisCurrentRequestCompleteErrorCode = {
|
|
77922
|
+
errorCode: errorCode,
|
|
77923
|
+
count: 0,
|
|
77924
|
+
};
|
|
77925
|
+
thisCurrentRequestComplete.results.push(thisCurrentRequestCompleteErrorCode);
|
|
77926
|
+
}
|
|
77927
|
+
thisCurrentRequestCompleteErrorCode.count += 1;
|
|
77928
|
+
}
|
|
77929
|
+
if (!eventName.startsWith("dashboard_")) {
|
|
77930
|
+
if (!eventName.startWith("system_")) {
|
|
77931
|
+
this.currentCost.requestCount += 1;
|
|
77932
|
+
this.currentMonthlyCost.requestCount += 1;
|
|
77933
|
+
if (eventName.startWith("multiplayer_")) {
|
|
77934
|
+
this.currentCost.matchmakingRequestCount += 1;
|
|
77935
|
+
this.currentMonthlyCost.matchmakingRequestCount += 1;
|
|
77936
|
+
}
|
|
77937
|
+
else if (eventName.startWith("cloudScript_")) {
|
|
77938
|
+
let parameters = operationResponse === null || operationResponse === void 0 ? void 0 : operationResponse.parameters;
|
|
77939
|
+
if (parameters) {
|
|
77940
|
+
let executionTimeInMs = parameters.executionTimeInMs;
|
|
77941
|
+
let memoryUsedInBytes = parameters.memoryUsedInBytes;
|
|
77942
|
+
if (executionTimeInMs != null && memoryUsedInBytes != null) {
|
|
77943
|
+
let cloudScriptGBs = (executionTimeInMs / 1000) * (memoryUsedInBytes / 1024 / 1024 / 1024);
|
|
77944
|
+
this.currentCost.cloudScriptGBs += cloudScriptGBs;
|
|
77945
|
+
this.currentMonthlyCost.cloudScriptGBs += cloudScriptGBs;
|
|
77946
|
+
}
|
|
77947
|
+
}
|
|
77948
|
+
}
|
|
77949
|
+
}
|
|
77950
|
+
this.currentCost.dataTransferSizeInBytes += (_f = result.responseSize) !== null && _f !== void 0 ? _f : 0;
|
|
77951
|
+
this.currentMonthlyCost.dataTransferSizeInBytes += (_g = result.responseSize) !== null && _g !== void 0 ? _g : 0;
|
|
77952
|
+
}
|
|
77953
|
+
}
|
|
77954
|
+
else {
|
|
77955
|
+
if (!eventName.startsWith("dashboard_")) {
|
|
77956
|
+
if (!eventName.startWith("system_")) {
|
|
77957
|
+
this.currentMonthlyCost.requestCount += 1;
|
|
77958
|
+
if (eventName.startWith("multiplayer_")) {
|
|
77959
|
+
this.currentMonthlyCost.matchmakingRequestCount += 1;
|
|
77960
|
+
}
|
|
77961
|
+
else if (eventName.startWith("cloudScript_")) {
|
|
77962
|
+
let parameters = operationResponse === null || operationResponse === void 0 ? void 0 : operationResponse.parameters;
|
|
77963
|
+
if (parameters) {
|
|
77964
|
+
let executionTimeInMs = parameters.executionTimeInMs;
|
|
77965
|
+
let memoryUsedInBytes = parameters.memoryUsedInBytes;
|
|
77966
|
+
if (executionTimeInMs != null && memoryUsedInBytes != null) {
|
|
77967
|
+
let cloudScriptGBs = (executionTimeInMs / 1000) * (memoryUsedInBytes / 1024 / 1024 / 1024);
|
|
77968
|
+
this.currentMonthlyCost.cloudScriptGBs += cloudScriptGBs;
|
|
77969
|
+
}
|
|
77970
|
+
}
|
|
77971
|
+
}
|
|
77972
|
+
}
|
|
77973
|
+
this.currentMonthlyCost.dataTransferSizeInBytes += (_h = result.responseSize) !== null && _h !== void 0 ? _h : 0;
|
|
77974
|
+
}
|
|
77975
|
+
}
|
|
77976
|
+
}
|
|
77977
|
+
}
|
|
77275
77978
|
});
|
|
77276
77979
|
}
|
|
77277
77980
|
saveAnalytics() {
|
|
@@ -77300,6 +78003,8 @@ class AnalyticsService {
|
|
|
77300
78003
|
operationSystem: this.currentOperationSystem,
|
|
77301
78004
|
requestComplete: this.currentRequestComplete,
|
|
77302
78005
|
databaseSystem: this.currentDatabaseSystem,
|
|
78006
|
+
cost: this.currentCost,
|
|
78007
|
+
monthlyCost: this.currentMonthlyCost,
|
|
77303
78008
|
tsCreate: currentDate.getTime()
|
|
77304
78009
|
});
|
|
77305
78010
|
});
|
|
@@ -78072,6 +78777,7 @@ var EventCallbackType;
|
|
|
78072
78777
|
EventCallbackType[EventCallbackType["Pre"] = 0] = "Pre";
|
|
78073
78778
|
EventCallbackType[EventCallbackType["Post"] = 1] = "Post";
|
|
78074
78779
|
EventCallbackType[EventCallbackType["System"] = 2] = "System";
|
|
78780
|
+
EventCallbackType[EventCallbackType["Event"] = 3] = "Event";
|
|
78075
78781
|
})(EventCallbackType || (EventCallbackType = {}));
|
|
78076
78782
|
var CloudScriptEventType;
|
|
78077
78783
|
(function (CloudScriptEventType) {
|
|
@@ -78268,6 +78974,76 @@ class EventCallbackCloudScriptService {
|
|
|
78268
78974
|
};
|
|
78269
78975
|
});
|
|
78270
78976
|
}
|
|
78977
|
+
executeEvent(eventName, request, operationEvent) {
|
|
78978
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
78979
|
+
let cloudFunction = this.cloudScriptFunctionDict.get("system");
|
|
78980
|
+
if (cloudFunction == null) {
|
|
78981
|
+
xDebug_1.Debug.logError("[GN] [SystemEventCallback] system not found");
|
|
78982
|
+
return;
|
|
78983
|
+
}
|
|
78984
|
+
let cloudScriptWorker = this.loadCloudScriptFunctionWorkerFromCache(cloudFunction.type, eventName);
|
|
78985
|
+
if (cloudScriptWorker == null) {
|
|
78986
|
+
xDebug_1.Debug.logError("[GN] [SystemEventCallback] worker not found at " + cloudFunction.type);
|
|
78987
|
+
return;
|
|
78988
|
+
}
|
|
78989
|
+
let requestId = StringUtility_1.StringUtility.generateRandomString(10, 0);
|
|
78990
|
+
let cloudScriptRequest = {
|
|
78991
|
+
requestId: requestId,
|
|
78992
|
+
eventName: eventName,
|
|
78993
|
+
eventType: EventCallbackType.Event,
|
|
78994
|
+
operationRequest: {
|
|
78995
|
+
operationCode: operationEvent.getEventCode(),
|
|
78996
|
+
encrypted: operationEvent.isEncrypted(),
|
|
78997
|
+
parameters: operationEvent.getParameters(),
|
|
78998
|
+
requestId: 0,
|
|
78999
|
+
},
|
|
79000
|
+
request: request,
|
|
79001
|
+
secretInfo: null,
|
|
79002
|
+
};
|
|
79003
|
+
cloudScriptWorker.postMessage(cloudScriptRequest);
|
|
79004
|
+
let thiz = this;
|
|
79005
|
+
let isResolved = false;
|
|
79006
|
+
let cloudScriptResponse = yield new Promise((resolve) => {
|
|
79007
|
+
let timeout = setTimeout(() => {
|
|
79008
|
+
if (isResolved)
|
|
79009
|
+
return;
|
|
79010
|
+
isResolved = true;
|
|
79011
|
+
resolve({
|
|
79012
|
+
responseId: requestId,
|
|
79013
|
+
response: {
|
|
79014
|
+
status: ICloudScriptService_1.ExecuteResponseStatus.Timeout,
|
|
79015
|
+
errorMessage: "function execute timeout",
|
|
79016
|
+
result: null,
|
|
79017
|
+
request: null,
|
|
79018
|
+
},
|
|
79019
|
+
stats: null,
|
|
79020
|
+
logs: [],
|
|
79021
|
+
});
|
|
79022
|
+
}, EventCallbackCloudScriptService.SystemExecuteTimeoutInMs);
|
|
79023
|
+
thiz.cloudScriptWaitingResponseCallbackDict.set(requestId, (cloudScriptResponse) => {
|
|
79024
|
+
if (isResolved)
|
|
79025
|
+
return;
|
|
79026
|
+
isResolved = true;
|
|
79027
|
+
clearTimeout(timeout);
|
|
79028
|
+
resolve(cloudScriptResponse);
|
|
79029
|
+
});
|
|
79030
|
+
});
|
|
79031
|
+
this.cloudScriptWaitingResponseCallbackDict.delete(requestId);
|
|
79032
|
+
if (cloudScriptResponse.logs.length != 0)
|
|
79033
|
+
xDebug_1.Debug.log(JSON.stringify(cloudScriptResponse.logs));
|
|
79034
|
+
if (cloudScriptResponse.response.status == ICloudScriptService_1.ExecuteResponseStatus.Ok) {
|
|
79035
|
+
operationEvent.setParameters(cloudScriptResponse.response.result.parameters ? GNData_1.GNHashtable.builder().addAll(cloudScriptResponse.response.result.parameters).build() : null);
|
|
79036
|
+
operationEvent.setEncrypted(cloudScriptResponse.response.result.encrypted);
|
|
79037
|
+
operationEvent.eventCode = cloudScriptResponse.response.result.returnCode;
|
|
79038
|
+
if (cloudScriptResponse.response.request.userId)
|
|
79039
|
+
request.userId = cloudScriptResponse.response.request.userId;
|
|
79040
|
+
if (cloudScriptResponse.response.request.userIds)
|
|
79041
|
+
request.userIds = cloudScriptResponse.response.request.userIds;
|
|
79042
|
+
if (cloudScriptResponse.response.request.roomId)
|
|
79043
|
+
request.roomId = cloudScriptResponse.response.request.roomId;
|
|
79044
|
+
}
|
|
79045
|
+
});
|
|
79046
|
+
}
|
|
78271
79047
|
executePre(eventName, request, secretInfo, operationRequest) {
|
|
78272
79048
|
return __awaiter(this, void 0, void 0, function* () {
|
|
78273
79049
|
var _a;
|
|
@@ -78662,14 +79438,16 @@ class PostEventCallbackService {
|
|
|
78662
79438
|
if (this.cloudScriptService) {
|
|
78663
79439
|
this.cloudScriptService.executePost(eventName, request, secretInfo, operationRequest, operationResponse);
|
|
78664
79440
|
}
|
|
79441
|
+
let operationResponseToData = OperationHelper_1.OperationHelper.toDataOperationResponse(operationResponse);
|
|
78665
79442
|
this.eventCallbackCollection.insertOne({
|
|
78666
79443
|
eventName: eventName,
|
|
78667
79444
|
tsCreate: xDatetime_1.xDatetime.getCurrentMilliseconds(),
|
|
78668
79445
|
request: request,
|
|
78669
79446
|
operationRequest: OperationHelper_1.OperationHelper.toDataOperationRequest(operationRequest),
|
|
78670
79447
|
originRequest: OperationHelper_1.OperationHelper.toDataFromRequest(operationRequest.originRequest),
|
|
78671
|
-
operationResponse:
|
|
79448
|
+
operationResponse: operationResponseToData,
|
|
78672
79449
|
customTags: operationRequest.getParameters().getGNHashtable("CustomTags"),
|
|
79450
|
+
responseSize: Buffer.byteLength(JSON.stringify(operationResponseToData), "utf-8"),
|
|
78673
79451
|
});
|
|
78674
79452
|
if (!this.eventLstDict.has(eventName)) {
|
|
78675
79453
|
return;
|
|
@@ -80824,12 +81602,13 @@ exports.RequestConverterService = RequestConverterService;
|
|
|
80824
81602
|
|
|
80825
81603
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
80826
81604
|
exports.TimerService = void 0;
|
|
81605
|
+
const xDatetime_1 = __webpack_require__(21817);
|
|
80827
81606
|
const xDebug_1 = __webpack_require__(32501);
|
|
80828
81607
|
class TimerService {
|
|
80829
81608
|
run() {
|
|
80830
81609
|
setInterval(() => {
|
|
80831
81610
|
this.onEverySecond();
|
|
80832
|
-
let now =
|
|
81611
|
+
let now = xDatetime_1.xDatetime.getCurrentDate();
|
|
80833
81612
|
if (now.getSeconds() == 0) {
|
|
80834
81613
|
this.onEveryMinute();
|
|
80835
81614
|
if (now.getMinutes() == 0) {
|
|
@@ -81538,8 +82317,8 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
81538
82317
|
exports.ItemType = void 0;
|
|
81539
82318
|
var ItemType;
|
|
81540
82319
|
(function (ItemType) {
|
|
81541
|
-
ItemType[ItemType["
|
|
81542
|
-
ItemType[ItemType["
|
|
82320
|
+
ItemType[ItemType["NonStackable"] = 1] = "NonStackable";
|
|
82321
|
+
ItemType[ItemType["Stackable"] = 2] = "Stackable";
|
|
81543
82322
|
})(ItemType || (exports.ItemType = ItemType = {}));
|
|
81544
82323
|
|
|
81545
82324
|
|
|
@@ -81715,7 +82494,7 @@ GNErrorCode.GamePlayerNotFound = 17;
|
|
|
81715
82494
|
GNErrorCode.FileNotFound = 18;
|
|
81716
82495
|
GNErrorCode.FileNotUpload = 19;
|
|
81717
82496
|
GNErrorCode.OwnerTypeNotSupport = 20;
|
|
81718
|
-
GNErrorCode.
|
|
82497
|
+
GNErrorCode.ItemNotStackable = 21;
|
|
81719
82498
|
GNErrorCode.GameNotFound = 22;
|
|
81720
82499
|
GNErrorCode.GameIsExists = 23;
|
|
81721
82500
|
GNErrorCode.SecretInfoNotFound = 24;
|
|
@@ -82336,6 +83115,13 @@ GNParameterCode.Collections = "collections";
|
|
|
82336
83115
|
GNParameterCode.Objects = "objects";
|
|
82337
83116
|
GNParameterCode.Indexes = "indexes";
|
|
82338
83117
|
GNParameterCode.DatabaseSystem = "databaseSystem";
|
|
83118
|
+
GNParameterCode.Cost = "cost";
|
|
83119
|
+
GNParameterCode.MonthlyCost = "monthlyCost";
|
|
83120
|
+
GNParameterCode.RequestCount = "requestCount";
|
|
83121
|
+
GNParameterCode.MatchmakingRequestCount = "matchmakingRequestCount";
|
|
83122
|
+
GNParameterCode.CloudScriptGBs = "cloudScriptGBs";
|
|
83123
|
+
GNParameterCode.StorageSizeInBytes = "storageSizeInBytes";
|
|
83124
|
+
GNParameterCode.DataTransferSizeInBytes = "dataTransferSizeInBytes";
|
|
82339
83125
|
|
|
82340
83126
|
|
|
82341
83127
|
/***/ }),
|
|
@@ -83671,6 +84457,18 @@ class xCacheData {
|
|
|
83671
84457
|
return false;
|
|
83672
84458
|
return true;
|
|
83673
84459
|
}
|
|
84460
|
+
removeInvalidData() {
|
|
84461
|
+
let removeCount = 0;
|
|
84462
|
+
let keys = this.dataDic.keys();
|
|
84463
|
+
for (let key in keys) {
|
|
84464
|
+
let cacheItem = this.dataDic.get(key);
|
|
84465
|
+
if (cacheItem == null || cacheItem.isExpired()) {
|
|
84466
|
+
this.dataDic.delete(key);
|
|
84467
|
+
removeCount++;
|
|
84468
|
+
}
|
|
84469
|
+
}
|
|
84470
|
+
return removeCount;
|
|
84471
|
+
}
|
|
83674
84472
|
constructor() {
|
|
83675
84473
|
this.dataDic = new Map();
|
|
83676
84474
|
}
|
|
@@ -86130,9 +86928,9 @@ class xDatabase {
|
|
|
86130
86928
|
loadMasterPlayersWithGenericServiceAsync(genericService, genericIds, masterPlayerFindOptions) {
|
|
86131
86929
|
return __awaiter(this, void 0, void 0, function* () {
|
|
86132
86930
|
let collection = this.systemCollection("MasterPlayer");
|
|
86133
|
-
let filter = {};
|
|
86134
|
-
filter["external.genericService.genericServices." + genericService] = { $in: { "genericId": genericIds } };
|
|
86135
|
-
let results = yield collection.find(filter, {
|
|
86931
|
+
let $filter = {};
|
|
86932
|
+
$filter["external.genericService.genericServices." + genericService] = { $in: { "genericId": genericIds } };
|
|
86933
|
+
let results = yield collection.find($filter, {
|
|
86136
86934
|
projection: this.getFindOptions(masterPlayerFindOptions)
|
|
86137
86935
|
});
|
|
86138
86936
|
return this.convertToMasterPlayers(results, collection);
|
|
@@ -86253,14 +87051,14 @@ class xDatabase {
|
|
|
86253
87051
|
score = playerStatistics.value;
|
|
86254
87052
|
tsLastUpdate = playerStatistics.tsLastUpdate;
|
|
86255
87053
|
}
|
|
86256
|
-
let filter = {};
|
|
87054
|
+
let $filter = {};
|
|
86257
87055
|
if (direction == -1) {
|
|
86258
87056
|
let condition1 = {};
|
|
86259
87057
|
let condition2 = {};
|
|
86260
87058
|
condition1["playerStatistics." + key + ".value"] = { $gt: score };
|
|
86261
87059
|
condition2["playerStatistics." + key + ".value"] = score;
|
|
86262
87060
|
condition2["playerStatistics." + key + ".tsLastUpdate"] = { $lt: tsLastUpdate };
|
|
86263
|
-
filter.$or = [condition1, condition2];
|
|
87061
|
+
$filter.$or = [condition1, condition2];
|
|
86264
87062
|
}
|
|
86265
87063
|
else {
|
|
86266
87064
|
let condition1 = {};
|
|
@@ -86268,9 +87066,9 @@ class xDatabase {
|
|
|
86268
87066
|
condition1["playerStatistics." + key + ".value"] = { $lt: score };
|
|
86269
87067
|
condition2["playerStatistics." + key + ".value"] = score;
|
|
86270
87068
|
condition2["playerStatistics." + key + ".tsLastUpdate"] = { $lt: tsLastUpdate };
|
|
86271
|
-
filter.$or = [condition1, condition2];
|
|
87069
|
+
$filter.$or = [condition1, condition2];
|
|
86272
87070
|
}
|
|
86273
|
-
return yield collection.countDocuments(filter);
|
|
87071
|
+
return yield collection.countDocuments($filter);
|
|
86274
87072
|
});
|
|
86275
87073
|
}
|
|
86276
87074
|
loadPositionMasterPlayerLeaderboardWithCurrencies(key, userId) {
|
|
@@ -86287,13 +87085,13 @@ class xDatabase {
|
|
|
86287
87085
|
if (playerCurrencies != null) {
|
|
86288
87086
|
score = playerCurrencies.value;
|
|
86289
87087
|
}
|
|
86290
|
-
let filter = {};
|
|
86291
|
-
filter["playerCurrencies." + key] = {
|
|
87088
|
+
let $filter = {};
|
|
87089
|
+
$filter["playerCurrencies." + key] = {
|
|
86292
87090
|
$gt: {
|
|
86293
87091
|
value: score,
|
|
86294
87092
|
}
|
|
86295
87093
|
};
|
|
86296
|
-
return yield collection.countDocuments(filter);
|
|
87094
|
+
return yield collection.countDocuments($filter);
|
|
86297
87095
|
});
|
|
86298
87096
|
}
|
|
86299
87097
|
loadMasterPlayerAsync(userId, masterPlayerFindOptions) {
|
|
@@ -86492,9 +87290,9 @@ class xDatabase {
|
|
|
86492
87290
|
loadMasterPlayerByGenericServiceAsync(serviceName, serviceId, masterPlayerFindOptions) {
|
|
86493
87291
|
return __awaiter(this, void 0, void 0, function* () {
|
|
86494
87292
|
let collection = this.systemCollection("MasterPlayer");
|
|
86495
|
-
let filter = {};
|
|
86496
|
-
filter["external.genericService.genericServices." + serviceName + ".serviceId"] = serviceId;
|
|
86497
|
-
let result = yield collection.findOne(filter, {
|
|
87293
|
+
let $filter = {};
|
|
87294
|
+
$filter["external.genericService.genericServices." + serviceName + ".serviceId"] = serviceId;
|
|
87295
|
+
let result = yield collection.findOne($filter, {
|
|
86498
87296
|
projection: this.getFindOptions(masterPlayerFindOptions)
|
|
86499
87297
|
});
|
|
86500
87298
|
if (result) {
|
|
@@ -86648,14 +87446,14 @@ class xDatabase {
|
|
|
86648
87446
|
score = playerStatistics.value;
|
|
86649
87447
|
tsLastUpdate = playerStatistics.tsLastUpdate;
|
|
86650
87448
|
}
|
|
86651
|
-
let filter = {};
|
|
87449
|
+
let $filter = {};
|
|
86652
87450
|
if (direction == -1) {
|
|
86653
87451
|
let condition1 = {};
|
|
86654
87452
|
let condition2 = {};
|
|
86655
87453
|
condition1["playerStatistics." + key + ".value"] = { $gt: score };
|
|
86656
87454
|
condition2["playerStatistics." + key + ".value"] = score;
|
|
86657
87455
|
condition2["playerStatistics." + key + ".tsLastUpdate"] = { $lt: tsLastUpdate };
|
|
86658
|
-
filter.$or = [condition1, condition2];
|
|
87456
|
+
$filter.$or = [condition1, condition2];
|
|
86659
87457
|
}
|
|
86660
87458
|
else {
|
|
86661
87459
|
let condition1 = {};
|
|
@@ -86663,9 +87461,9 @@ class xDatabase {
|
|
|
86663
87461
|
condition1["playerStatistics." + key + ".value"] = { $lt: score };
|
|
86664
87462
|
condition2["playerStatistics." + key + ".value"] = score;
|
|
86665
87463
|
condition2["playerStatistics." + key + ".tsLastUpdate"] = { $lt: tsLastUpdate };
|
|
86666
|
-
filter.$or = [condition1, condition2];
|
|
87464
|
+
$filter.$or = [condition1, condition2];
|
|
86667
87465
|
}
|
|
86668
|
-
return yield collection.countDocuments(filter);
|
|
87466
|
+
return yield collection.countDocuments($filter);
|
|
86669
87467
|
});
|
|
86670
87468
|
}
|
|
86671
87469
|
loadPositionGamePlayerLeaderboardWithCurrenciesAsync(key, userId, gameId) {
|
|
@@ -86682,13 +87480,13 @@ class xDatabase {
|
|
|
86682
87480
|
if (playerCurrencies != null) {
|
|
86683
87481
|
score = playerCurrencies.value;
|
|
86684
87482
|
}
|
|
86685
|
-
let filter = {};
|
|
86686
|
-
filter["playerCurrencies." + key] = {
|
|
87483
|
+
let $filter = {};
|
|
87484
|
+
$filter["playerCurrencies." + key] = {
|
|
86687
87485
|
$gt: {
|
|
86688
87486
|
value: score,
|
|
86689
87487
|
}
|
|
86690
87488
|
};
|
|
86691
|
-
return yield collection.countDocuments(filter);
|
|
87489
|
+
return yield collection.countDocuments($filter);
|
|
86692
87490
|
});
|
|
86693
87491
|
}
|
|
86694
87492
|
loadGamePlayerAsync(userId, gameId, gamePlayerFindOptions) {
|
|
@@ -86840,23 +87638,29 @@ class xDatabase {
|
|
|
86840
87638
|
return this.convertToCharacterPlayers(results, collection);
|
|
86841
87639
|
});
|
|
86842
87640
|
}
|
|
86843
|
-
loadCharacterPlayersLeaderboardWithStatisticsAsync(key, skip, limit, gameId, direction, characterPlayerFindOptions) {
|
|
87641
|
+
loadCharacterPlayersLeaderboardWithStatisticsAsync(key, skip, limit, catalogId, gameId, direction, characterPlayerFindOptions) {
|
|
86844
87642
|
return __awaiter(this, void 0, void 0, function* () {
|
|
86845
87643
|
let collection = this.systemGameCollection("CharacterPlayer", gameId);
|
|
86846
87644
|
let $sort = {};
|
|
86847
87645
|
$sort["playerStatistics." + key + ".value"] = direction;
|
|
86848
87646
|
$sort["playerStatistics." + key + ".tsLastUpdate"] = 1;
|
|
86849
|
-
let
|
|
87647
|
+
let $filter = {};
|
|
87648
|
+
if (catalogId) {
|
|
87649
|
+
$filter["catalogId"] = catalogId;
|
|
87650
|
+
}
|
|
87651
|
+
let results = yield collection.find($filter, {
|
|
86850
87652
|
projection: this.getFindOptions(characterPlayerFindOptions)
|
|
86851
87653
|
}).sort($sort).skip(skip).limit(limit);
|
|
86852
87654
|
return this.convertToCharacterPlayers(results, collection);
|
|
86853
87655
|
});
|
|
86854
87656
|
}
|
|
86855
|
-
loadCharacterPlayersLeaderboardWithStatisticsAllAsync(key, gameId, direction, characterPlayerFindOptions) {
|
|
87657
|
+
loadCharacterPlayersLeaderboardWithStatisticsAllAsync(key, catalogId, gameId, direction, characterPlayerFindOptions) {
|
|
86856
87658
|
return __awaiter(this, void 0, void 0, function* () {
|
|
86857
87659
|
let collection = this.systemGameCollection("CharacterPlayer", gameId);
|
|
86858
87660
|
let $filter = {};
|
|
86859
87661
|
$filter["playerStatistics." + key + ".value"] = { $ne: null };
|
|
87662
|
+
if (catalogId)
|
|
87663
|
+
$filter["catalogId"] = catalogId;
|
|
86860
87664
|
let $sort = {};
|
|
86861
87665
|
$sort["playerStatistics." + key + ".value"] = direction;
|
|
86862
87666
|
$sort["playerStatistics." + key + ".tsLastUpdate"] = 1;
|
|
@@ -86877,26 +87681,33 @@ class xDatabase {
|
|
|
86877
87681
|
return this.convertToCharacterPlayers(results, collection);
|
|
86878
87682
|
});
|
|
86879
87683
|
}
|
|
86880
|
-
loadCharacterPlayersLeaderboardWithCurrenciesAsync(key, skip, limit, gameId, characterPlayerFindOptions) {
|
|
87684
|
+
loadCharacterPlayersLeaderboardWithCurrenciesAsync(key, skip, limit, catalogId, gameId, characterPlayerFindOptions) {
|
|
86881
87685
|
return __awaiter(this, void 0, void 0, function* () {
|
|
86882
87686
|
let collection = this.systemGameCollection("CharacterPlayer", gameId);
|
|
86883
87687
|
let $sort = {};
|
|
86884
87688
|
$sort["playerCurrencies." + key + ".value"] = -1;
|
|
86885
|
-
let
|
|
87689
|
+
let $filter = {};
|
|
87690
|
+
if (catalogId) {
|
|
87691
|
+
$filter["catalogId"] = catalogId;
|
|
87692
|
+
}
|
|
87693
|
+
let results = yield collection.find($filter, {
|
|
86886
87694
|
projection: this.getFindOptions(characterPlayerFindOptions)
|
|
86887
87695
|
}).sort($sort).skip(skip).limit(limit);
|
|
86888
87696
|
return this.convertToCharacterPlayers(results, collection);
|
|
86889
87697
|
});
|
|
86890
87698
|
}
|
|
86891
|
-
loadPositionCharacterPlayerLeaderboardWithStatisticsAsync(key,
|
|
87699
|
+
loadPositionCharacterPlayerLeaderboardWithStatisticsAsync(key, characterId, catalogId, gameId, initialValue, direction) {
|
|
86892
87700
|
return __awaiter(this, void 0, void 0, function* () {
|
|
86893
87701
|
let collection = this.systemGameCollection("CharacterPlayer", gameId);
|
|
86894
87702
|
let characterPlayerFindOptions = {
|
|
86895
|
-
|
|
87703
|
+
catalogId: true,
|
|
87704
|
+
playerStatistics: true,
|
|
86896
87705
|
};
|
|
86897
|
-
let thisPlayer = yield this.loadCharacterPlayerAsync(
|
|
87706
|
+
let thisPlayer = yield this.loadCharacterPlayerAsync(characterId, gameId, characterPlayerFindOptions);
|
|
86898
87707
|
if (thisPlayer == null)
|
|
86899
87708
|
return -1;
|
|
87709
|
+
if (catalogId && thisPlayer.getCatalogId() != catalogId)
|
|
87710
|
+
return -1;
|
|
86900
87711
|
let score = initialValue;
|
|
86901
87712
|
let tsLastUpdate = xDatetime_1.xDatetime.getCurrentMilliseconds();
|
|
86902
87713
|
let playerStatistics = thisPlayer.getPlayerStatistics(key);
|
|
@@ -86904,14 +87715,17 @@ class xDatabase {
|
|
|
86904
87715
|
score = playerStatistics.value;
|
|
86905
87716
|
tsLastUpdate = playerStatistics.tsLastUpdate;
|
|
86906
87717
|
}
|
|
86907
|
-
let filter = {};
|
|
87718
|
+
let $filter = {};
|
|
87719
|
+
if (catalogId) {
|
|
87720
|
+
$filter["catalogId"] = catalogId;
|
|
87721
|
+
}
|
|
86908
87722
|
if (direction == -1) {
|
|
86909
87723
|
let condition1 = {};
|
|
86910
87724
|
let condition2 = {};
|
|
86911
87725
|
condition1["playerStatistics." + key + ".value"] = { $gt: score };
|
|
86912
87726
|
condition2["playerStatistics." + key + ".value"] = score;
|
|
86913
87727
|
condition2["playerStatistics." + key + ".tsLastUpdate"] = { $lt: tsLastUpdate };
|
|
86914
|
-
filter.$or = [condition1, condition2];
|
|
87728
|
+
$filter.$or = [condition1, condition2];
|
|
86915
87729
|
}
|
|
86916
87730
|
else {
|
|
86917
87731
|
let condition1 = {};
|
|
@@ -86919,38 +87733,41 @@ class xDatabase {
|
|
|
86919
87733
|
condition1["playerStatistics." + key + ".value"] = { $lt: score };
|
|
86920
87734
|
condition2["playerStatistics." + key + ".value"] = score;
|
|
86921
87735
|
condition2["playerStatistics." + key + ".tsLastUpdate"] = { $lt: tsLastUpdate };
|
|
86922
|
-
filter.$or = [condition1, condition2];
|
|
87736
|
+
$filter.$or = [condition1, condition2];
|
|
86923
87737
|
}
|
|
86924
|
-
return yield collection.countDocuments(filter);
|
|
87738
|
+
return yield collection.countDocuments($filter);
|
|
86925
87739
|
});
|
|
86926
87740
|
}
|
|
86927
|
-
loadPositionCharacterPlayerLeaderboardWithCurrenciesAsync(key, userId, gameId) {
|
|
87741
|
+
loadPositionCharacterPlayerLeaderboardWithCurrenciesAsync(key, userId, catalogId, gameId) {
|
|
86928
87742
|
return __awaiter(this, void 0, void 0, function* () {
|
|
86929
87743
|
let collection = this.systemGameCollection("CharacterPlayer", gameId);
|
|
86930
87744
|
let characterPlayerFindOptions = {
|
|
86931
|
-
playerCurrencies: true
|
|
87745
|
+
playerCurrencies: true,
|
|
87746
|
+
catalogId: true,
|
|
86932
87747
|
};
|
|
86933
87748
|
let thisPlayer = yield this.loadCharacterPlayerAsync(userId, gameId, characterPlayerFindOptions);
|
|
86934
87749
|
if (thisPlayer == null)
|
|
86935
87750
|
return -1;
|
|
87751
|
+
if (catalogId && thisPlayer.getCatalogId() != catalogId)
|
|
87752
|
+
return -1;
|
|
86936
87753
|
let score = 0;
|
|
86937
87754
|
let playerCurrencies = thisPlayer.getPlayerCurrency(key);
|
|
86938
87755
|
if (playerCurrencies != null) {
|
|
86939
87756
|
score = playerCurrencies.value;
|
|
86940
87757
|
}
|
|
86941
|
-
let filter = {};
|
|
86942
|
-
filter["playerCurrencies." + key] = {
|
|
87758
|
+
let $filter = {};
|
|
87759
|
+
$filter["playerCurrencies." + key] = {
|
|
86943
87760
|
$gt: {
|
|
86944
87761
|
value: score,
|
|
86945
87762
|
}
|
|
86946
87763
|
};
|
|
86947
|
-
return yield collection.countDocuments(filter);
|
|
87764
|
+
return yield collection.countDocuments($filter);
|
|
86948
87765
|
});
|
|
86949
87766
|
}
|
|
86950
87767
|
loadFriendCharacterPlayersLeaderboardWithStatisticsAsync(friendIds, gameId, characterPlayerFindOptions) {
|
|
86951
87768
|
return __awaiter(this, void 0, void 0, function* () {
|
|
86952
87769
|
let collection = this.systemGameCollection("CharacterPlayer", gameId);
|
|
86953
|
-
let results = yield collection.find({
|
|
87770
|
+
let results = yield collection.find({ characterId: { $in: friendIds } }, {
|
|
86954
87771
|
projection: this.getFindOptions(characterPlayerFindOptions)
|
|
86955
87772
|
});
|
|
86956
87773
|
let answer = [];
|
|
@@ -87091,23 +87908,28 @@ class xDatabase {
|
|
|
87091
87908
|
return this.convertToGroups(results, collection);
|
|
87092
87909
|
});
|
|
87093
87910
|
}
|
|
87094
|
-
loadGroupsLeaderboardWithStatisticsAsync(key, skip, limit, gameId, direction, groupFindOptions) {
|
|
87911
|
+
loadGroupsLeaderboardWithStatisticsAsync(key, skip, limit, catalogId, gameId, direction, groupFindOptions) {
|
|
87095
87912
|
return __awaiter(this, void 0, void 0, function* () {
|
|
87096
87913
|
let collection = this.systemGameCollection("Group", gameId);
|
|
87097
87914
|
let $sort = {};
|
|
87098
87915
|
$sort["groupStatistics." + key + ".value"] = direction;
|
|
87099
87916
|
$sort["groupStatistics." + key + ".tsLastUpdate"] = 1;
|
|
87100
|
-
let
|
|
87917
|
+
let $filter = {};
|
|
87918
|
+
if (catalogId)
|
|
87919
|
+
$filter["catalogId"] = catalogId;
|
|
87920
|
+
let results = yield collection.find($filter, {
|
|
87101
87921
|
projection: this.getFindOptions(groupFindOptions)
|
|
87102
87922
|
}).sort($sort).skip(skip).limit(limit);
|
|
87103
87923
|
return this.convertToGroups(results, collection);
|
|
87104
87924
|
});
|
|
87105
87925
|
}
|
|
87106
|
-
loadGroupsLeaderboardWithStatisticsAllAsync(key, gameId, direction, groupFindOptions) {
|
|
87926
|
+
loadGroupsLeaderboardWithStatisticsAllAsync(key, catalogId, gameId, direction, groupFindOptions) {
|
|
87107
87927
|
return __awaiter(this, void 0, void 0, function* () {
|
|
87108
87928
|
let collection = this.systemGameCollection("Group", gameId);
|
|
87109
87929
|
let $filter = {};
|
|
87110
87930
|
$filter["groupStatistics." + key + ".value"] = { $ne: null };
|
|
87931
|
+
if (catalogId)
|
|
87932
|
+
$filter["catalogId"] = catalogId;
|
|
87111
87933
|
let $sort = {};
|
|
87112
87934
|
$sort["groupStatistics." + key + ".value"] = direction;
|
|
87113
87935
|
$sort["groupStatistics." + key + ".tsLastUpdate"] = 1;
|
|
@@ -87128,26 +87950,32 @@ class xDatabase {
|
|
|
87128
87950
|
return this.convertToGroups(results, collection);
|
|
87129
87951
|
});
|
|
87130
87952
|
}
|
|
87131
|
-
loadGroupsLeaderboardWithCurrenciesAsync(key, skip, limit, gameId, groupFindOptions) {
|
|
87953
|
+
loadGroupsLeaderboardWithCurrenciesAsync(key, skip, limit, catalogId, gameId, groupFindOptions) {
|
|
87132
87954
|
return __awaiter(this, void 0, void 0, function* () {
|
|
87133
87955
|
let collection = this.systemGameCollection("Group", gameId);
|
|
87134
87956
|
let $sort = {};
|
|
87135
87957
|
$sort["groupCurrencies." + key + ".value"] = -1;
|
|
87136
|
-
let
|
|
87958
|
+
let $filter = {};
|
|
87959
|
+
if (catalogId)
|
|
87960
|
+
$filter["catalogId"] = catalogId;
|
|
87961
|
+
let results = yield collection.find($filter, {
|
|
87137
87962
|
projection: this.getFindOptions(groupFindOptions)
|
|
87138
87963
|
}).sort($sort).skip(skip).limit(limit);
|
|
87139
87964
|
return this.convertToGroups(results, collection);
|
|
87140
87965
|
});
|
|
87141
87966
|
}
|
|
87142
|
-
loadPositionGroupLeaderboardWithStatisticsAsync(key, groupId, gameId, initialValue, direction) {
|
|
87967
|
+
loadPositionGroupLeaderboardWithStatisticsAsync(key, groupId, catalogId, gameId, initialValue, direction) {
|
|
87143
87968
|
return __awaiter(this, void 0, void 0, function* () {
|
|
87144
87969
|
let collection = this.systemGameCollection("Group", gameId);
|
|
87145
87970
|
let groupFindOptions = {
|
|
87146
|
-
groupStatistics: true
|
|
87971
|
+
groupStatistics: true,
|
|
87972
|
+
catalogId: true,
|
|
87147
87973
|
};
|
|
87148
87974
|
let thisGroup = yield this.loadGroupAsync(groupId, gameId, groupFindOptions);
|
|
87149
87975
|
if (thisGroup == null)
|
|
87150
87976
|
return -1;
|
|
87977
|
+
if (catalogId && thisGroup.getCatalogId() != catalogId)
|
|
87978
|
+
return -1;
|
|
87151
87979
|
let score = initialValue;
|
|
87152
87980
|
let tsLastUpdate = xDatetime_1.xDatetime.getCurrentMilliseconds();
|
|
87153
87981
|
let groupStatistics = thisGroup.getGroupStatistics(key);
|
|
@@ -87155,14 +87983,16 @@ class xDatabase {
|
|
|
87155
87983
|
score = groupStatistics.value;
|
|
87156
87984
|
tsLastUpdate = groupStatistics.tsLastUpdate;
|
|
87157
87985
|
}
|
|
87158
|
-
let filter = {};
|
|
87986
|
+
let $filter = {};
|
|
87987
|
+
if (catalogId)
|
|
87988
|
+
$filter["catalogId"] = catalogId;
|
|
87159
87989
|
if (direction == -1) {
|
|
87160
87990
|
let condition1 = {};
|
|
87161
87991
|
let condition2 = {};
|
|
87162
87992
|
condition1["groupStatistics." + key + ".value"] = { $gt: score };
|
|
87163
87993
|
condition2["groupStatistics." + key + ".value"] = score;
|
|
87164
87994
|
condition2["groupStatistics." + key + ".tsLastUpdate"] = { $lt: tsLastUpdate };
|
|
87165
|
-
filter.$or = [condition1, condition2];
|
|
87995
|
+
$filter.$or = [condition1, condition2];
|
|
87166
87996
|
}
|
|
87167
87997
|
else {
|
|
87168
87998
|
let condition1 = {};
|
|
@@ -87170,9 +88000,9 @@ class xDatabase {
|
|
|
87170
88000
|
condition1["groupStatistics." + key + ".value"] = { $lt: score };
|
|
87171
88001
|
condition2["groupStatistics." + key + ".value"] = score;
|
|
87172
88002
|
condition2["groupStatistics." + key + ".tsLastUpdate"] = { $lt: tsLastUpdate };
|
|
87173
|
-
filter.$or = [condition1, condition2];
|
|
88003
|
+
$filter.$or = [condition1, condition2];
|
|
87174
88004
|
}
|
|
87175
|
-
return yield collection.countDocuments(filter);
|
|
88005
|
+
return yield collection.countDocuments($filter);
|
|
87176
88006
|
});
|
|
87177
88007
|
}
|
|
87178
88008
|
loadPositionGroupLeaderboardWithCurrenciesAsync(key, groupId, gameId) {
|
|
@@ -87189,13 +88019,13 @@ class xDatabase {
|
|
|
87189
88019
|
if (groupCurrency != null) {
|
|
87190
88020
|
score = groupCurrency.value;
|
|
87191
88021
|
}
|
|
87192
|
-
let filter = {};
|
|
87193
|
-
filter["groupCurrencies." + key] = {
|
|
88022
|
+
let $filter = {};
|
|
88023
|
+
$filter["groupCurrencies." + key] = {
|
|
87194
88024
|
$gt: {
|
|
87195
88025
|
value: score,
|
|
87196
88026
|
}
|
|
87197
88027
|
};
|
|
87198
|
-
return yield collection.countDocuments(filter);
|
|
88028
|
+
return yield collection.countDocuments($filter);
|
|
87199
88029
|
});
|
|
87200
88030
|
}
|
|
87201
88031
|
loadGroupAsync(groupId, gameId, groupFindOptions) {
|
|
@@ -87255,23 +88085,27 @@ class xDatabase {
|
|
|
87255
88085
|
return this.convertToInventories(results, collection);
|
|
87256
88086
|
});
|
|
87257
88087
|
}
|
|
87258
|
-
loadInventoriesLeaderboardWithStatisticsAsync(key, skip, limit, gameId, direction, inventoryFindOptions) {
|
|
88088
|
+
loadInventoriesLeaderboardWithStatisticsAsync(key, skip, limit, catalogId, gameId, direction, inventoryFindOptions) {
|
|
87259
88089
|
return __awaiter(this, void 0, void 0, function* () {
|
|
87260
88090
|
let collection = this.systemGameCollection("Inventory", gameId);
|
|
87261
88091
|
let $sort = {};
|
|
87262
88092
|
$sort["itemStatistics." + key + ".value"] = direction;
|
|
87263
88093
|
$sort["itemStatistics." + key + ".tsLastUpdate"] = 1;
|
|
87264
|
-
let
|
|
88094
|
+
let $filter = {};
|
|
88095
|
+
$filter["catalogId"] = catalogId;
|
|
88096
|
+
let results = yield collection.find($filter, {
|
|
87265
88097
|
projection: this.getFindOptions(inventoryFindOptions)
|
|
87266
88098
|
}).sort($sort).skip(skip).limit(limit);
|
|
87267
88099
|
return this.convertToInventories(results, collection);
|
|
87268
88100
|
});
|
|
87269
88101
|
}
|
|
87270
|
-
loadInventoriesLeaderboardWithStatisticsAllAsync(key, gameId, direction, inventoryFindOptions) {
|
|
88102
|
+
loadInventoriesLeaderboardWithStatisticsAllAsync(key, catalogId, gameId, direction, inventoryFindOptions) {
|
|
87271
88103
|
return __awaiter(this, void 0, void 0, function* () {
|
|
87272
88104
|
let collection = this.systemGameCollection("Inventory", gameId);
|
|
87273
88105
|
let $filter = {};
|
|
87274
88106
|
$filter["itemStatistics." + key + ".value"] = { $ne: null };
|
|
88107
|
+
if (catalogId)
|
|
88108
|
+
$filter["catalogId"] = catalogId;
|
|
87275
88109
|
let $sort = {};
|
|
87276
88110
|
$sort["itemStatistics." + key + ".value"] = direction;
|
|
87277
88111
|
$sort["itemStatistics." + key + ".tsLastUpdate"] = 1;
|
|
@@ -87292,15 +88126,18 @@ class xDatabase {
|
|
|
87292
88126
|
return this.convertToInventories(results, collection);
|
|
87293
88127
|
});
|
|
87294
88128
|
}
|
|
87295
|
-
loadPositionInventoryLeaderboardWithStatisticsAsync(key, itemId, gameId, initialValue, direction) {
|
|
88129
|
+
loadPositionInventoryLeaderboardWithStatisticsAsync(key, itemId, catalogId, gameId, initialValue, direction) {
|
|
87296
88130
|
return __awaiter(this, void 0, void 0, function* () {
|
|
87297
88131
|
let collection = this.systemGameCollection("Inventory", gameId);
|
|
87298
88132
|
let inventoryFindOptions = {
|
|
87299
|
-
itemStatistics: true
|
|
88133
|
+
itemStatistics: true,
|
|
88134
|
+
catalogId: true,
|
|
87300
88135
|
};
|
|
87301
88136
|
let thisInventory = yield this.loadInventoryAsync(itemId, gameId, inventoryFindOptions);
|
|
87302
88137
|
if (thisInventory == null)
|
|
87303
88138
|
return -1;
|
|
88139
|
+
if (catalogId && thisInventory.getCatalogId() != catalogId)
|
|
88140
|
+
return -1;
|
|
87304
88141
|
let score = initialValue;
|
|
87305
88142
|
let tsLastUpdate = xDatetime_1.xDatetime.getCurrentMilliseconds();
|
|
87306
88143
|
let itemStatistics = thisInventory.getItemStatistics(key);
|
|
@@ -87308,14 +88145,16 @@ class xDatabase {
|
|
|
87308
88145
|
score = itemStatistics.value;
|
|
87309
88146
|
tsLastUpdate = itemStatistics.tsLastUpdate;
|
|
87310
88147
|
}
|
|
87311
|
-
let filter = {};
|
|
88148
|
+
let $filter = {};
|
|
88149
|
+
if (catalogId)
|
|
88150
|
+
$filter["catalogId"] = catalogId;
|
|
87312
88151
|
if (direction == -1) {
|
|
87313
88152
|
let condition1 = {};
|
|
87314
88153
|
let condition2 = {};
|
|
87315
88154
|
condition1["itemStatistics." + key + ".value"] = { $gt: score };
|
|
87316
88155
|
condition2["itemStatistics." + key + ".value"] = score;
|
|
87317
88156
|
condition2["itemStatistics." + key + ".tsLastUpdate"] = { $lt: tsLastUpdate };
|
|
87318
|
-
filter.$or = [condition1, condition2];
|
|
88157
|
+
$filter.$or = [condition1, condition2];
|
|
87319
88158
|
}
|
|
87320
88159
|
else {
|
|
87321
88160
|
let condition1 = {};
|
|
@@ -87323,9 +88162,9 @@ class xDatabase {
|
|
|
87323
88162
|
condition1["itemStatistics." + key + ".value"] = { $lt: score };
|
|
87324
88163
|
condition2["itemStatistics." + key + ".value"] = score;
|
|
87325
88164
|
condition2["itemStatistics." + key + ".tsLastUpdate"] = { $lt: tsLastUpdate };
|
|
87326
|
-
filter.$or = [condition1, condition2];
|
|
88165
|
+
$filter.$or = [condition1, condition2];
|
|
87327
88166
|
}
|
|
87328
|
-
return yield collection.countDocuments(filter);
|
|
88167
|
+
return yield collection.countDocuments($filter);
|
|
87329
88168
|
});
|
|
87330
88169
|
}
|
|
87331
88170
|
loadInventoryAsync(itemId, gameId, inventoryFindOptions) {
|
|
@@ -93213,9 +94052,14 @@ class GNServer {
|
|
|
93213
94052
|
let thiz = this;
|
|
93214
94053
|
this.timerService.subscriberEverySecond(() => {
|
|
93215
94054
|
let currentDate = xDatetime_1.xDatetime.getCurrentDate();
|
|
93216
|
-
if (currentDate.getSeconds() %
|
|
94055
|
+
if (currentDate.getSeconds() % 10 == 0)
|
|
93217
94056
|
thiz.handleMatchmaking();
|
|
93218
94057
|
});
|
|
94058
|
+
this.timerService.subscriberEveryMinute(() => {
|
|
94059
|
+
let currentDate = xDatetime_1.xDatetime.getCurrentDate();
|
|
94060
|
+
if (currentDate.getMinutes() % 10 == 0)
|
|
94061
|
+
thiz.xCacheData.removeInvalidData();
|
|
94062
|
+
});
|
|
93219
94063
|
}
|
|
93220
94064
|
init() {
|
|
93221
94065
|
{
|
|
@@ -93608,6 +94452,7 @@ class GNServer {
|
|
|
93608
94452
|
tempAnalyticsService.setGNServer(this);
|
|
93609
94453
|
tempAnalyticsService.run();
|
|
93610
94454
|
this.analyticsService = tempAnalyticsService;
|
|
94455
|
+
this.postEventCallbackCollection = this.xDatabase.systemCollection("EventCallback.Post");
|
|
93611
94456
|
if (onRunSuccess != null)
|
|
93612
94457
|
onRunSuccess();
|
|
93613
94458
|
}
|
|
@@ -93721,21 +94566,83 @@ class GNServer {
|
|
|
93721
94566
|
}
|
|
93722
94567
|
sendEventTo(userId, operationEvent) {
|
|
93723
94568
|
return __awaiter(this, void 0, void 0, function* () {
|
|
94569
|
+
var _a;
|
|
94570
|
+
yield this.eventCallbackCloudScriptService.executeEvent("system_SendEventTo", { userId: userId }, operationEvent);
|
|
94571
|
+
let operationEventToData = {
|
|
94572
|
+
eventCode: operationEvent.getEventCode(),
|
|
94573
|
+
encrypted: operationEvent.isEncrypted(),
|
|
94574
|
+
parameters: (_a = operationEvent.getParameters()) === null || _a === void 0 ? void 0 : _a.toData()
|
|
94575
|
+
};
|
|
94576
|
+
this.postEventCallbackCollection.insertOne({
|
|
94577
|
+
eventName: "system_SendEventTo",
|
|
94578
|
+
tsCreate: xDatetime_1.xDatetime.getCurrentMilliseconds(),
|
|
94579
|
+
request: {
|
|
94580
|
+
userId: userId
|
|
94581
|
+
},
|
|
94582
|
+
operationEvent: operationEventToData,
|
|
94583
|
+
responseSize: Buffer.byteLength(JSON.stringify(operationEventToData), "utf-8"),
|
|
94584
|
+
});
|
|
93724
94585
|
return yield this.socketApp.getSocketAppHandler().sendEventTo(userId, operationEvent);
|
|
93725
94586
|
});
|
|
93726
94587
|
}
|
|
93727
94588
|
sendEventToRoom(roomId, operationEvent) {
|
|
93728
94589
|
return __awaiter(this, void 0, void 0, function* () {
|
|
94590
|
+
var _a;
|
|
94591
|
+
yield this.eventCallbackCloudScriptService.executeEvent("system_SendEventToRoom", { roomId: roomId }, operationEvent);
|
|
94592
|
+
let operationEventToData = {
|
|
94593
|
+
eventCode: operationEvent.getEventCode(),
|
|
94594
|
+
encrypted: operationEvent.isEncrypted(),
|
|
94595
|
+
parameters: (_a = operationEvent.getParameters()) === null || _a === void 0 ? void 0 : _a.toData()
|
|
94596
|
+
};
|
|
94597
|
+
this.postEventCallbackCollection.insertOne({
|
|
94598
|
+
eventName: "system_SendEventToRoom",
|
|
94599
|
+
tsCreate: xDatetime_1.xDatetime.getCurrentMilliseconds(),
|
|
94600
|
+
request: {
|
|
94601
|
+
roomId: roomId
|
|
94602
|
+
},
|
|
94603
|
+
operationEvent: operationEventToData,
|
|
94604
|
+
responseSize: Buffer.byteLength(JSON.stringify(operationEventToData), "utf-8"),
|
|
94605
|
+
});
|
|
93729
94606
|
return yield this.socketApp.getSocketAppHandler().sendEventToRoom(roomId, operationEvent);
|
|
93730
94607
|
});
|
|
93731
94608
|
}
|
|
93732
94609
|
sendEventToMoreUser(userIds, operationEvent) {
|
|
93733
94610
|
return __awaiter(this, void 0, void 0, function* () {
|
|
94611
|
+
var _a;
|
|
94612
|
+
yield this.eventCallbackCloudScriptService.executeEvent("system_SendEventToMoreUser", { userIds: userIds }, operationEvent);
|
|
94613
|
+
let operationEventToData = {
|
|
94614
|
+
eventCode: operationEvent.getEventCode(),
|
|
94615
|
+
encrypted: operationEvent.isEncrypted(),
|
|
94616
|
+
parameters: (_a = operationEvent.getParameters()) === null || _a === void 0 ? void 0 : _a.toData()
|
|
94617
|
+
};
|
|
94618
|
+
this.postEventCallbackCollection.insertOne({
|
|
94619
|
+
eventName: "system_SendEventToMoreUser",
|
|
94620
|
+
tsCreate: xDatetime_1.xDatetime.getCurrentMilliseconds(),
|
|
94621
|
+
request: {
|
|
94622
|
+
userIds: userIds
|
|
94623
|
+
},
|
|
94624
|
+
operationEvent: operationEventToData,
|
|
94625
|
+
responseSize: Buffer.byteLength(JSON.stringify(operationEventToData), "utf-8") * userIds.length,
|
|
94626
|
+
});
|
|
93734
94627
|
return yield this.socketApp.getSocketAppHandler().sendEventToMoreUser(userIds, operationEvent);
|
|
93735
94628
|
});
|
|
93736
94629
|
}
|
|
93737
94630
|
sendEventToAllPlayer(operationEvent) {
|
|
93738
94631
|
return __awaiter(this, void 0, void 0, function* () {
|
|
94632
|
+
var _a;
|
|
94633
|
+
yield this.eventCallbackCloudScriptService.executeEvent("system_SendEventToAllPlayer", {}, operationEvent);
|
|
94634
|
+
let operationEventToData = {
|
|
94635
|
+
eventCode: operationEvent.getEventCode(),
|
|
94636
|
+
encrypted: operationEvent.isEncrypted(),
|
|
94637
|
+
parameters: (_a = operationEvent.getParameters()) === null || _a === void 0 ? void 0 : _a.toData()
|
|
94638
|
+
};
|
|
94639
|
+
this.postEventCallbackCollection.insertOne({
|
|
94640
|
+
eventName: "system_SendEventToAllPlayer",
|
|
94641
|
+
tsCreate: xDatetime_1.xDatetime.getCurrentMilliseconds(),
|
|
94642
|
+
request: {},
|
|
94643
|
+
operationEvent: operationEventToData,
|
|
94644
|
+
responseSize: Buffer.byteLength(JSON.stringify(operationEventToData), "utf-8"),
|
|
94645
|
+
});
|
|
93739
94646
|
return yield this.socketApp.getSocketAppHandler().sendEventToAllPlayer(operationEvent);
|
|
93740
94647
|
});
|
|
93741
94648
|
}
|