@xmobitea/gn-server 2.4.10 → 2.4.12

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/index.js CHANGED
@@ -1625,19 +1625,19 @@ __decorate([
1625
1625
  __metadata("design:type", String)
1626
1626
  ], LoginByGameCenterOperationRequest.prototype, "playerId", void 0);
1627
1627
  __decorate([
1628
- (0, DataMember_1.StringDataMember)({ code: GNParameterCode_1.GNParameterCode.Name, minLength: 2, maxLength: 64, mustNonNull: true }),
1628
+ (0, DataMember_1.StringDataMember)({ code: GNParameterCode_1.GNParameterCode.Name, minLength: 2, maxLength: 128, mustNonNull: true }),
1629
1629
  __metadata("design:type", String)
1630
1630
  ], LoginByGameCenterOperationRequest.prototype, "name", void 0);
1631
1631
  __decorate([
1632
- (0, DataMember_1.StringDataMember)({ code: GNParameterCode_1.GNParameterCode.PublicKeyUrl, minLength: 2, maxLength: 256, mustNonNull: true }),
1632
+ (0, DataMember_1.StringDataMember)({ code: GNParameterCode_1.GNParameterCode.PublicKeyUrl, minLength: 2, maxLength: 2048, mustNonNull: true }),
1633
1633
  __metadata("design:type", String)
1634
1634
  ], LoginByGameCenterOperationRequest.prototype, "publicKeyUrl", void 0);
1635
1635
  __decorate([
1636
- (0, DataMember_1.StringDataMember)({ code: GNParameterCode_1.GNParameterCode.Signature, minLength: 2, maxLength: 512, mustNonNull: true }),
1636
+ (0, DataMember_1.StringDataMember)({ code: GNParameterCode_1.GNParameterCode.Signature, minLength: 2, maxLength: 2048, mustNonNull: true }),
1637
1637
  __metadata("design:type", String)
1638
1638
  ], LoginByGameCenterOperationRequest.prototype, "signature", void 0);
1639
1639
  __decorate([
1640
- (0, DataMember_1.StringDataMember)({ code: GNParameterCode_1.GNParameterCode.Salt, minLength: 2, maxLength: 128, mustNonNull: true }),
1640
+ (0, DataMember_1.StringDataMember)({ code: GNParameterCode_1.GNParameterCode.Salt, minLength: 2, maxLength: 256, mustNonNull: true }),
1641
1641
  __metadata("design:type", String)
1642
1642
  ], LoginByGameCenterOperationRequest.prototype, "salt", void 0);
1643
1643
  __decorate([
@@ -4934,7 +4934,7 @@ __decorate([
4934
4934
  __metadata("design:type", Number)
4935
4935
  ], GetCreateLeaderboardOperationRequest.prototype, "skip", void 0);
4936
4936
  __decorate([
4937
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
4937
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
4938
4938
  __metadata("design:type", Number)
4939
4939
  ], GetCreateLeaderboardOperationRequest.prototype, "limit", void 0);
4940
4940
  __decorate([
@@ -5150,7 +5150,7 @@ __decorate([
5150
5150
  __metadata("design:type", Number)
5151
5151
  ], GetCurrencyLeaderboardOperationRequest.prototype, "skip", void 0);
5152
5152
  __decorate([
5153
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
5153
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
5154
5154
  __metadata("design:type", Number)
5155
5155
  ], GetCurrencyLeaderboardOperationRequest.prototype, "limit", void 0);
5156
5156
  __decorate([
@@ -5369,7 +5369,7 @@ __decorate([
5369
5369
  __metadata("design:type", String)
5370
5370
  ], GetCurrencyLogOperationRequest.prototype, "characterId", void 0);
5371
5371
  __decorate([
5372
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
5372
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
5373
5373
  __metadata("design:type", Number)
5374
5374
  ], GetCurrencyLogOperationRequest.prototype, "limit", void 0);
5375
5375
  __decorate([
@@ -5862,7 +5862,7 @@ __decorate([
5862
5862
  __metadata("design:type", Number)
5863
5863
  ], GetFriendStatisticsLeaderboardAroundPlayerOperationRequest.prototype, "skip", void 0);
5864
5864
  __decorate([
5865
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
5865
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
5866
5866
  __metadata("design:type", Number)
5867
5867
  ], GetFriendStatisticsLeaderboardAroundPlayerOperationRequest.prototype, "limit", void 0);
5868
5868
  class ServerGetFriendStatisticsLeaderboardAroundPlayerOperationRequest extends GetFriendStatisticsLeaderboardAroundPlayerOperationRequest {
@@ -6063,7 +6063,7 @@ __decorate([
6063
6063
  __metadata("design:type", Number)
6064
6064
  ], GetFriendStatisticsLeaderboardOperationRequest.prototype, "skip", void 0);
6065
6065
  __decorate([
6066
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
6066
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
6067
6067
  __metadata("design:type", Number)
6068
6068
  ], GetFriendStatisticsLeaderboardOperationRequest.prototype, "limit", void 0);
6069
6069
  class ServerGetFriendStatisticsLeaderboardOperationRequest extends GetFriendStatisticsLeaderboardOperationRequest {
@@ -7811,7 +7811,7 @@ __decorate([
7811
7811
  __metadata("design:type", Number)
7812
7812
  ], GetPlayersWithDisplayNameOperationRequest.prototype, "skip", void 0);
7813
7813
  __decorate([
7814
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
7814
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
7815
7815
  __metadata("design:type", Number)
7816
7816
  ], GetPlayersWithDisplayNameOperationRequest.prototype, "limit", void 0);
7817
7817
  class ServerGetPlayersWithDisplayNameOperationRequest extends GetPlayersWithDisplayNameOperationRequest {
@@ -7974,7 +7974,7 @@ __decorate([
7974
7974
  __metadata("design:type", Number)
7975
7975
  ], GetPlayersWithSegmentOperationRequest.prototype, "skip", void 0);
7976
7976
  __decorate([
7977
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
7977
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
7978
7978
  __metadata("design:type", Number)
7979
7979
  ], GetPlayersWithSegmentOperationRequest.prototype, "limit", void 0);
7980
7980
  class ServerGetPlayersWithSegmentOperationRequest extends GetPlayersWithSegmentOperationRequest {
@@ -8141,7 +8141,7 @@ __decorate([
8141
8141
  __metadata("design:type", Number)
8142
8142
  ], GetPlayersWithTagOperationRequest.prototype, "skip", void 0);
8143
8143
  __decorate([
8144
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
8144
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
8145
8145
  __metadata("design:type", Number)
8146
8146
  ], GetPlayersWithTagOperationRequest.prototype, "limit", void 0);
8147
8147
  class ServerGetPlayersWithTagOperationRequest extends GetPlayersWithTagOperationRequest {
@@ -8596,7 +8596,7 @@ __decorate([
8596
8596
  __metadata("design:type", Number)
8597
8597
  ], GetStatisticsLeaderboardAroundPlayerOperationRequest.prototype, "skip", void 0);
8598
8598
  __decorate([
8599
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
8599
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
8600
8600
  __metadata("design:type", Number)
8601
8601
  ], GetStatisticsLeaderboardAroundPlayerOperationRequest.prototype, "limit", void 0);
8602
8602
  class ServerGetStatisticsLeaderboardAroundPlayerOperationRequest extends GetStatisticsLeaderboardAroundPlayerOperationRequest {
@@ -8775,7 +8775,7 @@ __decorate([
8775
8775
  __metadata("design:type", Number)
8776
8776
  ], GetStatisticsLeaderboardOperationRequest.prototype, "skip", void 0);
8777
8777
  __decorate([
8778
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
8778
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
8779
8779
  __metadata("design:type", Number)
8780
8780
  ], GetStatisticsLeaderboardOperationRequest.prototype, "limit", void 0);
8781
8781
  __decorate([
@@ -8946,7 +8946,7 @@ class GetStatisticsLeaderboardRequestHandler extends CharacterPlayerBaseRequestH
8946
8946
  }
8947
8947
  else {
8948
8948
  let gameId = secretInfo.getGameId();
8949
- let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().systemGameCollection("CharacterPlayer.StatisticsBackup", gameId);
8949
+ let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().runtimeGameCollection("CharacterPlayer.StatisticsBackup", gameId);
8950
8950
  let key = request.key;
8951
8951
  let version = request.version;
8952
8952
  let cacheKey = "characterPlayerStatisticsLeaderboard_" + key + "_" + version;
@@ -8956,7 +8956,7 @@ class GetStatisticsLeaderboardRequestHandler extends CharacterPlayerBaseRequestH
8956
8956
  operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.VersionInvalid);
8957
8957
  return operationResponse;
8958
8958
  }
8959
- this.gnServer.getCacheData().setData(cacheKey, result, xDatetime_1.xDatetime.ONE_DAY_MILLISECOND * 7);
8959
+ this.gnServer.getCacheData().setData(cacheKey, result, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
8960
8960
  }
8961
8961
  let backupData = this.gnServer.getCacheData().getData(cacheKey);
8962
8962
  let gnResults = new GNData_1.GNArray();
@@ -9041,7 +9041,7 @@ __decorate([
9041
9041
  __metadata("design:type", String)
9042
9042
  ], GetStatisticsLogOperationRequest.prototype, "characterId", void 0);
9043
9043
  __decorate([
9044
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
9044
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
9045
9045
  __metadata("design:type", Number)
9046
9046
  ], GetStatisticsLogOperationRequest.prototype, "limit", void 0);
9047
9047
  __decorate([
@@ -13429,6 +13429,11 @@ class AddFunctionRequestHandler extends RequestHandler_1.RequestHandler {
13429
13429
  operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.GameNotFound);
13430
13430
  return operationResponse;
13431
13431
  }
13432
+ if (request.script.includes("GNNetwork")) {
13433
+ operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.ExecuteError);
13434
+ operationResponse.setParameter(GNParameterCode_1.GNParameterCode.Message, "Can not use keywork GNNetwork on cloudscript");
13435
+ return operationResponse;
13436
+ }
13432
13437
  let response = yield cloudScriptService.addCloudScriptFunction(request.script, request.isLive, request.canExecute);
13433
13438
  if (response.success) {
13434
13439
  operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.Ok);
@@ -14380,7 +14385,7 @@ __decorate([
14380
14385
  __metadata("design:type", Number)
14381
14386
  ], GetFileUploadInfoListOperationRequest.prototype, "skip", void 0);
14382
14387
  __decorate([
14383
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
14388
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
14384
14389
  __metadata("design:type", Number)
14385
14390
  ], GetFileUploadInfoListOperationRequest.prototype, "limit", void 0);
14386
14391
  class ServerGetFileUploadInfoListOperationRequest extends GetFileUploadInfoListOperationRequest {
@@ -15219,6 +15224,729 @@ class ChangePasswordAdminAccountRequestHandler extends RequestHandler_1.RequestH
15219
15224
  exports.ChangePasswordAdminAccountRequestHandler = ChangePasswordAdminAccountRequestHandler;
15220
15225
 
15221
15226
 
15227
+ /***/ }),
15228
+
15229
+ /***/ 21595:
15230
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
15231
+
15232
+
15233
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
15234
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
15235
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
15236
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
15237
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
15238
+ };
15239
+ var __metadata = (this && this.__metadata) || function (k, v) {
15240
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
15241
+ };
15242
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
15243
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15244
+ return new (P || (P = Promise))(function (resolve, reject) {
15245
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
15246
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
15247
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
15248
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
15249
+ });
15250
+ };
15251
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
15252
+ exports.DeleteInDatabaseRequestHandler = void 0;
15253
+ const OperationRequest_1 = __webpack_require__(25885);
15254
+ const OperationResponse_1 = __webpack_require__(27623);
15255
+ const OperationCode_1 = __webpack_require__(10675);
15256
+ const ParameterCode_1 = __webpack_require__(35284);
15257
+ const ReturnCode_1 = __webpack_require__(99060);
15258
+ const DataMember_1 = __webpack_require__(42364);
15259
+ const GNParameterCode_1 = __webpack_require__(38343);
15260
+ const GNErrorCode_1 = __webpack_require__(94559);
15261
+ const RequestHandler_1 = __webpack_require__(47239);
15262
+ const OwnerType_1 = __webpack_require__(90062);
15263
+ const xDatetime_1 = __webpack_require__(21817);
15264
+ class DeleteInDatabaseOperationRequest extends OperationRequest_1.OperationRequest {
15265
+ isValidRequest() {
15266
+ if (!super.isValidRequest())
15267
+ return false;
15268
+ return true;
15269
+ }
15270
+ }
15271
+ __decorate([
15272
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.OwnerType, mustInt: true }),
15273
+ __metadata("design:type", Number)
15274
+ ], DeleteInDatabaseOperationRequest.prototype, "type", void 0);
15275
+ __decorate([
15276
+ (0, DataMember_1.StringDataMember)({ code: GNParameterCode_1.GNParameterCode.Id, minLength: 2, maxLength: 15 }),
15277
+ __metadata("design:type", String)
15278
+ ], DeleteInDatabaseOperationRequest.prototype, "id", void 0);
15279
+ __decorate([
15280
+ (0, DataMember_1.StringDataMember)({ code: GNParameterCode_1.GNParameterCode.GameId, minLength: 2, maxLength: 32, mustNonNull: true }),
15281
+ __metadata("design:type", String)
15282
+ ], DeleteInDatabaseOperationRequest.prototype, "gameId", void 0);
15283
+ __decorate([
15284
+ (0, DataMember_1.StringDataMember)({ code: GNParameterCode_1.GNParameterCode.Log, minLength: 1, maxLength: 256, mustNonNull: true, isOptional: true }),
15285
+ __metadata("design:type", String)
15286
+ ], DeleteInDatabaseOperationRequest.prototype, "log", void 0);
15287
+ class DeleteInDatabaseRequestHandler extends RequestHandler_1.RequestHandler {
15288
+ getCode() {
15289
+ return OperationCode_1.OperationCode.DeleteInDatabase;
15290
+ }
15291
+ getCommonOperationRequest() {
15292
+ return DeleteInDatabaseOperationRequest;
15293
+ }
15294
+ handle(authInfo, secretInfo, operationRequest) {
15295
+ return __awaiter(this, void 0, void 0, function* () {
15296
+ let request = this.requestConverterService.createTOperationRequest(operationRequest, this.getCommonOperationRequest());
15297
+ if (!request.isValidRequest()) {
15298
+ return this.newInvalidRequestParameters(operationRequest);
15299
+ }
15300
+ if (!secretInfo.getPermission().masterAdmin.deleteInDatabase.selfEnable) {
15301
+ return this.newOperationNotAllowError(request);
15302
+ }
15303
+ return this.execute({
15304
+ id: request.id,
15305
+ type: request.type,
15306
+ gameId: request.gameId,
15307
+ log: request.log,
15308
+ }, secretInfo, operationRequest);
15309
+ });
15310
+ }
15311
+ execute(request, secretInfo, operationRequest) {
15312
+ return __awaiter(this, void 0, void 0, function* () {
15313
+ let operationResponse = yield this.gnServer.getPreEventCallbackService().onEvent("dashboard_DeleteInDatabase", request, secretInfo, operationRequest);
15314
+ if (operationResponse != null) {
15315
+ return operationResponse;
15316
+ }
15317
+ operationResponse = new OperationResponse_1.OperationResponse(operationRequest.getOperationCode(), operationRequest.getRequestId(), operationRequest.isEncrypted());
15318
+ operationResponse.setReturnCode(ReturnCode_1.ReturnCode.Ok);
15319
+ if (request.type == OwnerType_1.OwnerType.MasterPlayer) {
15320
+ // Xoa toan bo du lieu nguoi choi, gom data co trong game data
15321
+ let masterPlayer = yield this.gnServer.getDatabase().loadMasterPlayerAsync(request.id);
15322
+ if (masterPlayer == null) {
15323
+ operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.ItemNotFound);
15324
+ return operationResponse;
15325
+ }
15326
+ let result = {
15327
+ type: "MasterPlayer",
15328
+ log: request.log,
15329
+ tsCreate: xDatetime_1.xDatetime.getCurrentMilliseconds(),
15330
+ objs: yield this.deleteMasterPlayer(masterPlayer),
15331
+ };
15332
+ this.gnServer.getDatabase().systemCollection("MasterPlayer").deleteOne({ userId: masterPlayer.getUserId() });
15333
+ this.gnServer.getDatabase().runtimeCollection("DeleteInDatabaseLog").insertOne(result);
15334
+ }
15335
+ else if (request.type == OwnerType_1.OwnerType.GamePlayer) {
15336
+ let gamePlayer = yield this.gnServer.getDatabase().loadGamePlayerAsync(request.id, request.gameId);
15337
+ if (gamePlayer == null) {
15338
+ operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.ItemNotFound);
15339
+ return operationResponse;
15340
+ }
15341
+ let result = {
15342
+ type: "GamePlayer",
15343
+ gameId: request.gameId,
15344
+ log: request.log,
15345
+ tsCreate: xDatetime_1.xDatetime.getCurrentMilliseconds(),
15346
+ objs: yield this.deleteGamePlayer(gamePlayer, request.gameId),
15347
+ };
15348
+ this.gnServer.getDatabase().systemGameCollection("GamePlayer", request.gameId).deleteOne({ userId: gamePlayer.getUserId() });
15349
+ this.gnServer.getDatabase().runtimeCollection("DeleteInDatabaseLog").insertOne(result);
15350
+ }
15351
+ else if (request.type == OwnerType_1.OwnerType.CharacterPlayer) {
15352
+ let characterPlayer = yield this.gnServer.getDatabase().loadCharacterPlayerAsync(request.id, request.gameId);
15353
+ if (characterPlayer == null) {
15354
+ operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.ItemNotFound);
15355
+ return operationResponse;
15356
+ }
15357
+ let result = {
15358
+ type: "CharacterPlayer",
15359
+ gameId: request.gameId,
15360
+ log: request.log,
15361
+ tsCreate: xDatetime_1.xDatetime.getCurrentMilliseconds(),
15362
+ objs: yield this.deleteCharacterPlayer(characterPlayer, request.gameId),
15363
+ };
15364
+ this.gnServer.getDatabase().systemGameCollection("CharacterPlayer", request.gameId).deleteOne({ characterId: characterPlayer.getCharacterId() });
15365
+ this.gnServer.getDatabase().runtimeCollection("DeleteInDatabaseLog").insertOne(result);
15366
+ let gamePlayer = yield this.gnServer.getDatabase().loadGamePlayerAsync(characterPlayer.getOwner().id, request.gameId);
15367
+ if (gamePlayer != null) {
15368
+ gamePlayer.removePlayerCharacter(characterPlayer.getCharacterId());
15369
+ gamePlayer.saveAsync();
15370
+ }
15371
+ }
15372
+ else if (request.type == OwnerType_1.OwnerType.Inventory) {
15373
+ let inventory = yield this.gnServer.getDatabase().loadInventoryAsync(request.id, request.gameId);
15374
+ if (inventory == null) {
15375
+ operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.ItemNotFound);
15376
+ return operationResponse;
15377
+ }
15378
+ let result = {
15379
+ type: "Inventory",
15380
+ gameId: request.gameId,
15381
+ log: request.log,
15382
+ tsCreate: xDatetime_1.xDatetime.getCurrentMilliseconds(),
15383
+ objs: yield this.deleteInventory(inventory, request.gameId),
15384
+ };
15385
+ this.gnServer.getDatabase().systemGameCollection("Inventory", request.gameId).deleteOne({ itemId: inventory.getItemId() });
15386
+ this.gnServer.getDatabase().runtimeCollection("DeleteInDatabaseLog").insertOne(result);
15387
+ let owner = inventory.getOwner();
15388
+ if (owner.type == OwnerType_1.OwnerType.GamePlayer) {
15389
+ let gamePlayer = yield this.gnServer.getDatabase().loadGamePlayerAsync(inventory.getOwner().id, request.gameId);
15390
+ if (gamePlayer != null) {
15391
+ gamePlayer.removePlayerInventory(inventory.getItemId());
15392
+ gamePlayer.saveAsync();
15393
+ }
15394
+ }
15395
+ else if (owner.type == OwnerType_1.OwnerType.CharacterPlayer) {
15396
+ let characterPlayer = yield this.gnServer.getDatabase().loadCharacterPlayerAsync(inventory.getOwner().id, request.gameId);
15397
+ if (characterPlayer != null) {
15398
+ characterPlayer.removePlayerInventory(inventory.getItemId());
15399
+ characterPlayer.saveAsync();
15400
+ }
15401
+ }
15402
+ else if (owner.type == OwnerType_1.OwnerType.Group) {
15403
+ let group = yield this.gnServer.getDatabase().loadGroupAsync(inventory.getOwner().id, request.gameId);
15404
+ if (group != null) {
15405
+ group.removeGroupInventory(inventory.getItemId());
15406
+ group.saveAsync();
15407
+ }
15408
+ }
15409
+ }
15410
+ else if (request.type == OwnerType_1.OwnerType.Group) {
15411
+ let group = yield this.gnServer.getDatabase().loadGroupAsync(request.id, request.gameId);
15412
+ if (group == null) {
15413
+ operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.ItemNotFound);
15414
+ return operationResponse;
15415
+ }
15416
+ let result = {
15417
+ type: "Group",
15418
+ gameId: request.gameId,
15419
+ log: request.log,
15420
+ tsCreate: xDatetime_1.xDatetime.getCurrentMilliseconds(),
15421
+ objs: yield this.deleteGroup(group, request.gameId),
15422
+ };
15423
+ let groupId = group.getGroupId();
15424
+ this.gnServer.getDatabase().systemGameCollection("Group", request.gameId).deleteOne({ groupId: groupId });
15425
+ this.gnServer.getDatabase().runtimeCollection("DeleteInDatabaseLog").insertOne(result);
15426
+ let allMembers = group.getAllMembers();
15427
+ for (let i = 0; i < allMembers.length; i++) {
15428
+ let member = allMembers[i];
15429
+ let memberId = member.memberId;
15430
+ if (memberId.length == 11) {
15431
+ let characterPlayer = yield this.gnServer.getDatabase().loadCharacterPlayerAsync(memberId, request.gameId);
15432
+ if (characterPlayer != null) {
15433
+ characterPlayer.removePlayerGroup(groupId);
15434
+ characterPlayer.saveAsync();
15435
+ }
15436
+ }
15437
+ else if (memberId.length == 10) {
15438
+ let gamePlayer = yield this.gnServer.getDatabase().loadGamePlayerAsync(memberId, request.gameId);
15439
+ if (gamePlayer != null) {
15440
+ gamePlayer.removePlayerGroup(groupId);
15441
+ gamePlayer.saveAsync();
15442
+ }
15443
+ }
15444
+ }
15445
+ }
15446
+ else {
15447
+ operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.ItemNotFound);
15448
+ return operationResponse;
15449
+ }
15450
+ operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.Ok);
15451
+ yield this.gnServer.getPostEventCallbackService().onEvent("dashboard_DeleteInDatabase", request, secretInfo, operationRequest, operationResponse);
15452
+ return operationResponse;
15453
+ });
15454
+ }
15455
+ deleteMasterPlayer(masterPlayer) {
15456
+ return __awaiter(this, void 0, void 0, function* () {
15457
+ let answer = [];
15458
+ let gameIds = this.gnServer.getGameIds();
15459
+ let userId = masterPlayer.getUserId();
15460
+ for (let i = 0; i < gameIds.length; i++) {
15461
+ let gameId = gameIds[i];
15462
+ let gamePlayer = yield this.gnServer.getDatabase().loadGamePlayerAsync(userId, gameId);
15463
+ if (gamePlayer != null) {
15464
+ let results = yield this.deleteGamePlayer(gamePlayer, gameId);
15465
+ answer.push(...results);
15466
+ this.gnServer.getDatabase().systemGameCollection("GamePlayer", gameId).deleteOne({ userId: userId });
15467
+ }
15468
+ }
15469
+ {
15470
+ let currencyLogCollection = this.gnServer.getDatabase().runtimeCollection("MasterPlayer.CurrencyLog");
15471
+ let results = yield currencyLogCollection.find({ userId: userId });
15472
+ while (yield results.hasNext()) {
15473
+ let result = yield results.next();
15474
+ answer.push({
15475
+ type: "MasterPlayer.CurrencyLog",
15476
+ obj: result,
15477
+ });
15478
+ }
15479
+ currencyLogCollection.deleteMany({ userId: userId });
15480
+ }
15481
+ {
15482
+ let statisticsLogCollection = this.gnServer.getDatabase().runtimeCollection("MasterPlayer.StatisticsLog");
15483
+ let results = yield statisticsLogCollection.find({ userId: userId });
15484
+ while (yield results.hasNext()) {
15485
+ let result = yield results.next();
15486
+ answer.push({
15487
+ type: "MasterPlayer.StatisticsLog",
15488
+ obj: result,
15489
+ });
15490
+ }
15491
+ statisticsLogCollection.deleteMany({ userId: userId });
15492
+ }
15493
+ {
15494
+ let backupStatisticsCollection = this.gnServer.getDatabase().runtimeCollection("MasterPlayer.StatisticsBackup");
15495
+ let results = yield backupStatisticsCollection.find({});
15496
+ while (yield results.hasNext()) {
15497
+ let result = yield results.next();
15498
+ let backupResults = result.results;
15499
+ let backupResult = backupResults.find(x => x.userId == userId);
15500
+ if (backupResult != null) {
15501
+ backupResults.splice(backupResult.position, 1);
15502
+ for (let i = backupResult.position; i < backupResults.length; i++) {
15503
+ backupResults[i].position -= 1;
15504
+ }
15505
+ backupStatisticsCollection.updateOne({ _id: result._id }, { $set: { results: backupResults } });
15506
+ answer.push({
15507
+ type: "MasterPlayer.StatisticsBackup",
15508
+ obj: {
15509
+ key: result.key,
15510
+ version: result.version,
15511
+ result: backupResult
15512
+ },
15513
+ });
15514
+ }
15515
+ }
15516
+ }
15517
+ return answer;
15518
+ });
15519
+ }
15520
+ deleteGamePlayer(gamePlayer, gameId) {
15521
+ return __awaiter(this, void 0, void 0, function* () {
15522
+ let answer = [];
15523
+ let userId = gamePlayer.getUserId();
15524
+ {
15525
+ let playerCharacters = gamePlayer.getAllPlayerCharacters();
15526
+ for (let i = 0; i < playerCharacters.length; i++) {
15527
+ let playerCharacter = playerCharacters[i];
15528
+ let characterPlayer = yield this.gnServer.getDatabase().loadCharacterPlayerAsync(playerCharacter.characterId, gameId);
15529
+ if (characterPlayer != null) {
15530
+ let results = yield this.deleteCharacterPlayer(characterPlayer, gameId);
15531
+ answer.push(...results);
15532
+ }
15533
+ }
15534
+ this.gnServer.getDatabase().systemGameCollection("CharacterPlayer", gameId).deleteMany({ "owner.id": userId });
15535
+ }
15536
+ {
15537
+ let playerFriends = gamePlayer.getAllPlayerFriends();
15538
+ for (let i = 0; i < playerFriends.length; i++) {
15539
+ let playerFriend = playerFriends[i];
15540
+ let friendPlayer = yield this.gnServer.getDatabase().loadGamePlayerAsync(playerFriend.friendId, gameId);
15541
+ if (friendPlayer != null) {
15542
+ let results = yield this.deleteFriendPlayerInGamePlayer(gamePlayer, gameId, friendPlayer);
15543
+ answer.push(...results);
15544
+ friendPlayer.saveAsync();
15545
+ }
15546
+ }
15547
+ }
15548
+ {
15549
+ let groupMessageCollection = this.gnServer.getDatabase().runtimeGameCollection("Group.Message", gameId);
15550
+ let results = yield groupMessageCollection.find({ senderId: userId });
15551
+ while (yield results.hasNext()) {
15552
+ let result = yield results.next();
15553
+ answer.push({
15554
+ type: "Group.Message",
15555
+ gameId: gameId,
15556
+ obj: result,
15557
+ });
15558
+ }
15559
+ yield groupMessageCollection.deleteMany({ senderId: userId });
15560
+ let playerGroups = gamePlayer.getAllPlayerGroups();
15561
+ for (let i = 0; i < playerGroups.length; i++) {
15562
+ let playerGroup = playerGroups[i];
15563
+ let group = yield this.gnServer.getDatabase().loadGroupAsync(playerGroup.groupId, gameId);
15564
+ if (group != null) {
15565
+ let results = yield this.deleteGroupInGamePlayer(gamePlayer, gameId, group);
15566
+ answer.push(...results);
15567
+ group.saveAsync();
15568
+ }
15569
+ }
15570
+ }
15571
+ {
15572
+ let playerInventories = gamePlayer.getAllPlayerInventories();
15573
+ for (let i = 0; i < playerInventories.length; i++) {
15574
+ let playerInventory = playerInventories[i];
15575
+ let inventory = yield this.gnServer.getDatabase().loadInventoryAsync(playerInventory.itemId, gameId);
15576
+ if (inventory != null) {
15577
+ let results = yield this.deleteInventory(inventory, gameId);
15578
+ answer.push(...results);
15579
+ }
15580
+ }
15581
+ this.gnServer.getDatabase().systemGameCollection("Inventory", gameId).deleteMany({ "owner.id": userId });
15582
+ }
15583
+ {
15584
+ let currencyLogCollection = this.gnServer.getDatabase().runtimeGameCollection("GamePlayer.CurrencyLog", gameId);
15585
+ let results = yield currencyLogCollection.find({ userId: userId });
15586
+ while (yield results.hasNext()) {
15587
+ let result = yield results.next();
15588
+ answer.push({
15589
+ type: "GamePlayer.CurrencyLog",
15590
+ gameId: gameId,
15591
+ obj: result,
15592
+ });
15593
+ }
15594
+ currencyLogCollection.deleteMany({ userId: userId });
15595
+ }
15596
+ {
15597
+ let statisticsLogCollection = this.gnServer.getDatabase().runtimeGameCollection("GamePlayer.StatisticsLog", gameId);
15598
+ let results = yield statisticsLogCollection.find({ userId: userId });
15599
+ while (yield results.hasNext()) {
15600
+ let result = yield results.next();
15601
+ answer.push({
15602
+ type: "GamePlayer.StatisticsLog",
15603
+ gameId: gameId,
15604
+ obj: result,
15605
+ });
15606
+ }
15607
+ statisticsLogCollection.deleteMany({ userId: userId });
15608
+ }
15609
+ {
15610
+ let backupStatisticsCollection = this.gnServer.getDatabase().runtimeGameCollection("GamePlayer.StatisticsBackup", gameId);
15611
+ let results = yield backupStatisticsCollection.find({});
15612
+ while (yield results.hasNext()) {
15613
+ let result = yield results.next();
15614
+ let backupResults = result.results;
15615
+ let backupResult = backupResults.find(x => x.userId == userId);
15616
+ if (backupResult != null) {
15617
+ backupResults.splice(backupResult.position, 1);
15618
+ for (let i = backupResult.position; i < backupResults.length; i++) {
15619
+ backupResults[i].position -= 1;
15620
+ }
15621
+ backupStatisticsCollection.updateOne({ _id: result._id }, { $set: { results: backupResults } });
15622
+ answer.push({
15623
+ type: "GamePlayer.StatisticsBackup",
15624
+ gameId: gameId,
15625
+ obj: {
15626
+ key: result.key,
15627
+ version: result.version,
15628
+ result: backupResult
15629
+ },
15630
+ });
15631
+ }
15632
+ }
15633
+ }
15634
+ {
15635
+ let backupStoreLogCollection = this.gnServer.getDatabase().runtimeGameCollection("StoreInventory.StoreLog", gameId);
15636
+ let results = yield backupStoreLogCollection.find({ id: userId });
15637
+ while (yield results.hasNext()) {
15638
+ let result = yield results.next();
15639
+ answer.push({
15640
+ type: "StoreInventory.StoreLog",
15641
+ gameId: gameId,
15642
+ obj: result,
15643
+ });
15644
+ }
15645
+ backupStoreLogCollection.deleteMany({ id: userId });
15646
+ }
15647
+ return answer;
15648
+ });
15649
+ }
15650
+ deleteCharacterPlayer(characterPlayer, gameId) {
15651
+ return __awaiter(this, void 0, void 0, function* () {
15652
+ let answer = [];
15653
+ let characterId = characterPlayer.getCharacterId();
15654
+ {
15655
+ let playerFriends = characterPlayer.getAllPlayerFriends();
15656
+ for (let i = 0; i < playerFriends.length; i++) {
15657
+ let playerFriend = playerFriends[i];
15658
+ let friendPlayer = yield this.gnServer.getDatabase().loadCharacterPlayerAsync(playerFriend.friendId, gameId);
15659
+ if (friendPlayer != null) {
15660
+ let results = yield this.deleteFriendPlayerInCharacterPlayer(characterPlayer, gameId, friendPlayer);
15661
+ answer.push(...results);
15662
+ friendPlayer.saveAsync();
15663
+ }
15664
+ }
15665
+ }
15666
+ {
15667
+ let groupMessageCollection = this.gnServer.getDatabase().runtimeGameCollection("Group.Message", gameId);
15668
+ let results = yield groupMessageCollection.find({ senderId: characterId });
15669
+ while (yield results.hasNext()) {
15670
+ let result = yield results.next();
15671
+ answer.push({
15672
+ type: "Group.Message",
15673
+ gameId: gameId,
15674
+ obj: result,
15675
+ });
15676
+ }
15677
+ yield groupMessageCollection.deleteMany({ senderId: characterId });
15678
+ let playerGroups = characterPlayer.getAllPlayerGroups();
15679
+ for (let i = 0; i < playerGroups.length; i++) {
15680
+ let playerGroup = playerGroups[i];
15681
+ let group = yield this.gnServer.getDatabase().loadGroupAsync(playerGroup.groupId, gameId);
15682
+ if (group != null) {
15683
+ let results = yield this.deleteGroupInCharacterPlayer(characterPlayer, gameId, group);
15684
+ answer.push(...results);
15685
+ group.saveAsync();
15686
+ }
15687
+ }
15688
+ }
15689
+ {
15690
+ let playerInventories = characterPlayer.getAllPlayerInventories();
15691
+ for (let i = 0; i < playerInventories.length; i++) {
15692
+ let playerInventory = playerInventories[i];
15693
+ let inventory = yield this.gnServer.getDatabase().loadInventoryAsync(playerInventory.itemId, gameId);
15694
+ if (inventory != null) {
15695
+ let results = yield this.deleteInventory(inventory, gameId);
15696
+ answer.push(...results);
15697
+ }
15698
+ }
15699
+ this.gnServer.getDatabase().systemGameCollection("Inventory", gameId).deleteMany({ "owner.id": characterId });
15700
+ }
15701
+ {
15702
+ let currencyLogCollection = this.gnServer.getDatabase().runtimeGameCollection("CharacterPlayer.CurrencyLog", gameId);
15703
+ let results = yield currencyLogCollection.find({ characterId: characterId });
15704
+ while (yield results.hasNext()) {
15705
+ let result = yield results.next();
15706
+ answer.push({
15707
+ type: "CharacterPlayer.CurrencyLog",
15708
+ gameId: gameId,
15709
+ obj: result,
15710
+ });
15711
+ }
15712
+ currencyLogCollection.deleteMany({ characterId: characterId });
15713
+ }
15714
+ {
15715
+ let statisticsLogCollection = this.gnServer.getDatabase().runtimeGameCollection("CharacterPlayer.StatisticsLog", gameId);
15716
+ let results = yield statisticsLogCollection.find({ characterId: characterId });
15717
+ while (yield results.hasNext()) {
15718
+ let result = yield results.next();
15719
+ answer.push({
15720
+ type: "CharacterPlayer.StatisticsLog",
15721
+ gameId: gameId,
15722
+ obj: result,
15723
+ });
15724
+ }
15725
+ statisticsLogCollection.deleteMany({ characterId: characterId });
15726
+ }
15727
+ {
15728
+ let backupStatisticsCollection = this.gnServer.getDatabase().runtimeGameCollection("CharacterPlayer.StatisticsBackup", gameId);
15729
+ let results = yield backupStatisticsCollection.find({});
15730
+ while (yield results.hasNext()) {
15731
+ let result = yield results.next();
15732
+ let backupResults = result.results;
15733
+ let backupResult = backupResults.find(x => x.characterId == characterId);
15734
+ if (backupResult != null) {
15735
+ backupResults.splice(backupResult.position, 1);
15736
+ for (let i = backupResult.position; i < backupResults.length; i++) {
15737
+ backupResults[i].position -= 1;
15738
+ }
15739
+ backupStatisticsCollection.updateOne({ _id: result._id }, { $set: { results: backupResults } });
15740
+ answer.push({
15741
+ type: "CharacterPlayer.StatisticsBackup",
15742
+ gameId: gameId,
15743
+ obj: {
15744
+ key: result.key,
15745
+ version: result.version,
15746
+ result: backupResult
15747
+ },
15748
+ });
15749
+ }
15750
+ }
15751
+ }
15752
+ {
15753
+ let backupStoreLogCollection = this.gnServer.getDatabase().runtimeGameCollection("StoreInventory.StoreLog", gameId);
15754
+ let results = yield backupStoreLogCollection.find({ id: characterId });
15755
+ while (yield results.hasNext()) {
15756
+ let result = yield results.next();
15757
+ answer.push({
15758
+ type: "StoreInventory.StoreLog",
15759
+ gameId: gameId,
15760
+ obj: result,
15761
+ });
15762
+ }
15763
+ backupStoreLogCollection.deleteMany({ id: characterId });
15764
+ }
15765
+ return answer;
15766
+ });
15767
+ }
15768
+ deleteInventory(inventory, gameId) {
15769
+ return __awaiter(this, void 0, void 0, function* () {
15770
+ let answer = [];
15771
+ let itemId = inventory.getItemId();
15772
+ {
15773
+ let statisticsLogCollection = this.gnServer.getDatabase().runtimeGameCollection("Inventory.StatisticsLog", gameId);
15774
+ let results = yield statisticsLogCollection.find({ itemId: itemId });
15775
+ while (yield results.hasNext()) {
15776
+ let result = yield results.next();
15777
+ answer.push({
15778
+ type: "Inventory.StatisticsLog",
15779
+ gameId: gameId,
15780
+ obj: result,
15781
+ });
15782
+ }
15783
+ statisticsLogCollection.deleteMany({ itemId: itemId });
15784
+ }
15785
+ {
15786
+ let backupStatisticsCollection = this.gnServer.getDatabase().runtimeGameCollection("Inventory.StatisticsBackup", gameId);
15787
+ let results = yield backupStatisticsCollection.find({});
15788
+ while (yield results.hasNext()) {
15789
+ let result = yield results.next();
15790
+ let backupResults = result.results;
15791
+ let backupResult = backupResults.find(x => x.itemId == itemId);
15792
+ if (backupResult != null) {
15793
+ backupResults.splice(backupResult.position, 1);
15794
+ for (let i = backupResult.position; i < backupResults.length; i++) {
15795
+ backupResults[i].position -= 1;
15796
+ }
15797
+ backupStatisticsCollection.updateOne({ _id: result._id }, { $set: { results: backupResults } });
15798
+ answer.push({
15799
+ type: "Inventory.StatisticsBackup",
15800
+ gameId: gameId,
15801
+ obj: {
15802
+ key: result.key,
15803
+ version: result.version,
15804
+ result: backupResult
15805
+ },
15806
+ });
15807
+ }
15808
+ }
15809
+ }
15810
+ return answer;
15811
+ });
15812
+ }
15813
+ deleteGroup(group, gameId) {
15814
+ return __awaiter(this, void 0, void 0, function* () {
15815
+ let answer = [];
15816
+ let groupId = group.getGroupId();
15817
+ {
15818
+ let groupMessageCollection = this.gnServer.getDatabase().runtimeGameCollection("Group.Message", gameId);
15819
+ let results = yield groupMessageCollection.find({ groupId: groupId });
15820
+ while (yield results.hasNext()) {
15821
+ let result = yield results.next();
15822
+ answer.push({
15823
+ type: "Group.Message",
15824
+ gameId: gameId,
15825
+ obj: result,
15826
+ });
15827
+ }
15828
+ yield this.gnServer.getDatabase().runtimeGameCollection("Group.Message", gameId).deleteMany({ groupId: groupId });
15829
+ this.gnServer.getCacheData().removeData("GroupMessages_" + groupId);
15830
+ }
15831
+ {
15832
+ let groupInventories = group.getAllGroupInventories();
15833
+ for (let i = 0; i < groupInventories.length; i++) {
15834
+ let groupInventory = groupInventories[i];
15835
+ let inventory = yield this.gnServer.getDatabase().loadInventoryAsync(groupInventory.itemId, gameId);
15836
+ if (inventory != null) {
15837
+ let results = yield this.deleteInventory(inventory, gameId);
15838
+ answer.push(...results);
15839
+ }
15840
+ }
15841
+ this.gnServer.getDatabase().systemGameCollection("Inventory", gameId).deleteMany({ "owner.id": groupId });
15842
+ }
15843
+ {
15844
+ let currencyLogCollection = this.gnServer.getDatabase().runtimeGameCollection("Group.CurrencyLog", gameId);
15845
+ let results = yield currencyLogCollection.find({ groupId: groupId });
15846
+ while (yield results.hasNext()) {
15847
+ let result = yield results.next();
15848
+ answer.push({
15849
+ type: "Group.CurrencyLog",
15850
+ gameId: gameId,
15851
+ obj: result,
15852
+ });
15853
+ }
15854
+ currencyLogCollection.deleteMany({ groupId: groupId });
15855
+ }
15856
+ {
15857
+ let statisticsLogCollection = this.gnServer.getDatabase().runtimeGameCollection("Group.StatisticsLog", gameId);
15858
+ let results = yield statisticsLogCollection.find({ groupId: groupId });
15859
+ while (yield results.hasNext()) {
15860
+ let result = yield results.next();
15861
+ answer.push({
15862
+ type: "Group.StatisticsLog",
15863
+ gameId: gameId,
15864
+ obj: result,
15865
+ });
15866
+ }
15867
+ statisticsLogCollection.deleteMany({ groupId: groupId });
15868
+ }
15869
+ {
15870
+ let backupStatisticsCollection = this.gnServer.getDatabase().runtimeGameCollection("Group.StatisticsBackup", gameId);
15871
+ let results = yield backupStatisticsCollection.find({});
15872
+ while (yield results.hasNext()) {
15873
+ let result = yield results.next();
15874
+ let backupResults = result.results;
15875
+ let backupResult = backupResults.find(x => x.groupId == groupId);
15876
+ if (backupResult != null) {
15877
+ backupResults.splice(backupResult.position, 1);
15878
+ for (let i = backupResult.position; i < backupResults.length; i++) {
15879
+ backupResults[i].position -= 1;
15880
+ }
15881
+ backupStatisticsCollection.updateOne({ _id: result._id }, { $set: { results: backupResults } });
15882
+ answer.push({
15883
+ type: "Group.StatisticsBackup",
15884
+ gameId: gameId,
15885
+ obj: {
15886
+ key: result.key,
15887
+ version: result.version,
15888
+ result: backupResult
15889
+ },
15890
+ });
15891
+ }
15892
+ }
15893
+ }
15894
+ {
15895
+ let backupStoreLogCollection = this.gnServer.getDatabase().runtimeGameCollection("StoreInventory.StoreLog", gameId);
15896
+ let results = yield backupStoreLogCollection.find({ id: groupId });
15897
+ while (yield results.hasNext()) {
15898
+ let result = yield results.next();
15899
+ answer.push({
15900
+ type: "StoreInventory.StoreLog",
15901
+ gameId: gameId,
15902
+ obj: result,
15903
+ });
15904
+ }
15905
+ backupStoreLogCollection.deleteMany({ id: groupId });
15906
+ }
15907
+ return answer;
15908
+ });
15909
+ }
15910
+ deleteFriendPlayerInGamePlayer(gamePlayer, gameId, friendPlayer) {
15911
+ return __awaiter(this, void 0, void 0, function* () {
15912
+ let answer = [];
15913
+ let userId = gamePlayer.getUserId();
15914
+ friendPlayer.removePlayerFriend(userId);
15915
+ return answer;
15916
+ });
15917
+ }
15918
+ deleteFriendPlayerInCharacterPlayer(characterPlayer, gameId, friendPlayer) {
15919
+ return __awaiter(this, void 0, void 0, function* () {
15920
+ let answer = [];
15921
+ let characterId = characterPlayer.getCharacterId();
15922
+ friendPlayer.removePlayerFriend(characterId);
15923
+ return answer;
15924
+ });
15925
+ }
15926
+ deleteGroupInGamePlayer(gamePlayer, gameId, group) {
15927
+ return __awaiter(this, void 0, void 0, function* () {
15928
+ let answer = [];
15929
+ let userId = gamePlayer.getUserId();
15930
+ group.removeMember(userId);
15931
+ let groupId = group.getGroupId();
15932
+ this.gnServer.getCacheData().removeData("GroupMessages_" + groupId);
15933
+ return answer;
15934
+ });
15935
+ }
15936
+ deleteGroupInCharacterPlayer(characterPlayer, gameId, group) {
15937
+ return __awaiter(this, void 0, void 0, function* () {
15938
+ let answer = [];
15939
+ let characterId = characterPlayer.getCharacterId();
15940
+ group.removeMember(characterId);
15941
+ let groupId = group.getGroupId();
15942
+ this.gnServer.getCacheData().removeData("GroupMessages_" + groupId);
15943
+ return answer;
15944
+ });
15945
+ }
15946
+ }
15947
+ exports.DeleteInDatabaseRequestHandler = DeleteInDatabaseRequestHandler;
15948
+
15949
+
15222
15950
  /***/ }),
15223
15951
 
15224
15952
  /***/ 66888:
@@ -15611,21 +16339,21 @@ class GetBackupStatisticsLeaderboardVersionRequestHandler extends RequestHandler
15611
16339
  let type = request.type;
15612
16340
  let backupStatisticsLeaderboardCollection;
15613
16341
  if (type == OwnerType_1.OwnerType.MasterPlayer) {
15614
- backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().systemCollection("MasterPlayer.StatisticsBackup");
16342
+ backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().runtimeCollection("MasterPlayer.StatisticsBackup");
15615
16343
  }
15616
16344
  else {
15617
16345
  let gameId = request.gameId;
15618
16346
  if (type == OwnerType_1.OwnerType.GamePlayer) {
15619
- backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().systemGameCollection("GamePlayer.StatisticsBackup", gameId);
16347
+ backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().runtimeGameCollection("GamePlayer.StatisticsBackup", gameId);
15620
16348
  }
15621
16349
  else if (type == OwnerType_1.OwnerType.CharacterPlayer) {
15622
- backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().systemGameCollection("CharacterPlayer.StatisticsBackup", gameId);
16350
+ backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().runtimeGameCollection("CharacterPlayer.StatisticsBackup", gameId);
15623
16351
  }
15624
16352
  else if (type == OwnerType_1.OwnerType.Inventory) {
15625
- backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().systemGameCollection("Inventory.StatisticsBackup", gameId);
16353
+ backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().runtimeGameCollection("Inventory.StatisticsBackup", gameId);
15626
16354
  }
15627
16355
  else if (type == OwnerType_1.OwnerType.Group) {
15628
- backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().systemGameCollection("Group.StatisticsBackup", gameId);
16356
+ backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().runtimeGameCollection("Group.StatisticsBackup", gameId);
15629
16357
  }
15630
16358
  else {
15631
16359
  operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.OwnerNotFound);
@@ -18260,6 +18988,23 @@ class GetSecretInfoInformationRequestHandler extends RequestHandler_1.RequestHan
18260
18988
  gnPermissionRules.add(GNParameterCode_1.GNParameterCode.AdminSelfEnable, permissionRules.adminSelfEnable);
18261
18989
  gnGamePlayer.add(GNParameterCode_1.GNParameterCode.GetCreateLeaderboard, gnPermissionRules);
18262
18990
  }
18991
+ {
18992
+ let permissionRules = gamePlayer.getLastLoginLeaderboard;
18993
+ if (permissionRules == null) {
18994
+ permissionRules = {
18995
+ selfEnable: false,
18996
+ otherSelfEnable: false,
18997
+ serverSelfEnable: false,
18998
+ adminSelfEnable: false,
18999
+ };
19000
+ }
19001
+ let gnPermissionRules = new GNData_1.GNHashtable();
19002
+ gnPermissionRules.add(GNParameterCode_1.GNParameterCode.SelfEnable, permissionRules.selfEnable);
19003
+ gnPermissionRules.add(GNParameterCode_1.GNParameterCode.OtherSelfEnable, permissionRules.otherSelfEnable);
19004
+ gnPermissionRules.add(GNParameterCode_1.GNParameterCode.ServerSelfEnable, permissionRules.serverSelfEnable);
19005
+ gnPermissionRules.add(GNParameterCode_1.GNParameterCode.AdminSelfEnable, permissionRules.adminSelfEnable);
19006
+ gnGamePlayer.add(GNParameterCode_1.GNParameterCode.GetLastLoginLeaderboard, gnPermissionRules);
19007
+ }
18263
19008
  {
18264
19009
  let permissionRules = gamePlayer.getStatisticsLog;
18265
19010
  let gnPermissionRules = new GNData_1.GNHashtable();
@@ -19829,6 +20574,23 @@ class GetSecretInfoInformationRequestHandler extends RequestHandler_1.RequestHan
19829
20574
  gnPermissionRules.add(GNParameterCode_1.GNParameterCode.AdminSelfEnable, permissionRules.adminSelfEnable);
19830
20575
  gnMasterAdmin.add(GNParameterCode_1.GNParameterCode.GetServerGameData, gnPermissionRules);
19831
20576
  }
20577
+ {
20578
+ let permissionRules = masterAdmin.deleteInDatabase;
20579
+ if (permissionRules == null) {
20580
+ permissionRules = {
20581
+ selfEnable: false,
20582
+ otherSelfEnable: false,
20583
+ serverSelfEnable: false,
20584
+ adminSelfEnable: false,
20585
+ };
20586
+ }
20587
+ let gnPermissionRules = new GNData_1.GNHashtable();
20588
+ gnPermissionRules.add(GNParameterCode_1.GNParameterCode.SelfEnable, permissionRules.selfEnable);
20589
+ gnPermissionRules.add(GNParameterCode_1.GNParameterCode.OtherSelfEnable, permissionRules.otherSelfEnable);
20590
+ gnPermissionRules.add(GNParameterCode_1.GNParameterCode.ServerSelfEnable, permissionRules.serverSelfEnable);
20591
+ gnPermissionRules.add(GNParameterCode_1.GNParameterCode.AdminSelfEnable, permissionRules.adminSelfEnable);
20592
+ gnMasterAdmin.add(GNParameterCode_1.GNParameterCode.ChangePasswordAdminAccount, gnPermissionRules);
20593
+ }
19832
20594
  gnPermission.add(GNParameterCode_1.GNParameterCode.MasterAdmin, gnMasterAdmin);
19833
20595
  }
19834
20596
  {
@@ -21257,6 +22019,7 @@ class GrantSecretInfoRequestHandler extends RequestHandler_1.RequestHandler {
21257
22019
  getFriendStatisticsLeaderboard: { selfEnable: selfEnable, otherSelfEnable: otherSelfEnable, adminSelfEnable: adminSelfEnable, serverSelfEnable: serverSelfEnable, },
21258
22020
  getCurrencyLeaderboard: { selfEnable: selfEnable, otherSelfEnable: otherSelfEnable, adminSelfEnable: adminSelfEnable, serverSelfEnable: serverSelfEnable, },
21259
22021
  getCreateLeaderboard: { selfEnable: selfEnable, otherSelfEnable: otherSelfEnable, adminSelfEnable: adminSelfEnable, serverSelfEnable: serverSelfEnable, },
22022
+ getLastLoginLeaderboard: { selfEnable: selfEnable, otherSelfEnable: otherSelfEnable, adminSelfEnable: adminSelfEnable, serverSelfEnable: serverSelfEnable, },
21260
22023
  getStatisticsLog: { selfEnable: selfEnable, otherSelfEnable: otherSelfEnable, adminSelfEnable: adminSelfEnable, serverSelfEnable: serverSelfEnable, },
21261
22024
  getCurrencyLog: { selfEnable: selfEnable, otherSelfEnable: otherSelfEnable, adminSelfEnable: adminSelfEnable, serverSelfEnable: serverSelfEnable, },
21262
22025
  },
@@ -21440,6 +22203,7 @@ class GrantSecretInfoRequestHandler extends RequestHandler_1.RequestHandler {
21440
22203
  resetStatisticsLeaderboard: { selfEnable: selfEnable, otherSelfEnable: otherSelfEnable, adminSelfEnable: adminSelfEnable, serverSelfEnable: serverSelfEnable, },
21441
22204
  getBackupStatisticsLeaderboardVersion: { selfEnable: selfEnable, otherSelfEnable: otherSelfEnable, adminSelfEnable: adminSelfEnable, serverSelfEnable: serverSelfEnable, },
21442
22205
  getServerGameData: { selfEnable: selfEnable, otherSelfEnable: otherSelfEnable, adminSelfEnable: adminSelfEnable, serverSelfEnable: serverSelfEnable, },
22206
+ deleteInDatabase: { selfEnable: selfEnable, otherSelfEnable: otherSelfEnable, adminSelfEnable: adminSelfEnable, serverSelfEnable: serverSelfEnable, },
21443
22207
  },
21444
22208
  multiplayer: {
21445
22209
  cancelAllMatchmakingTicket: { selfEnable: selfEnable, otherSelfEnable: otherSelfEnable, adminSelfEnable: adminSelfEnable, serverSelfEnable: serverSelfEnable, },
@@ -21623,6 +22387,7 @@ class GrantSecretInfoRequestHandler extends RequestHandler_1.RequestHandler {
21623
22387
  getFriendStatisticsLeaderboard: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: true, },
21624
22388
  getCurrencyLeaderboard: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: true, },
21625
22389
  getCreateLeaderboard: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: true, },
22390
+ getLastLoginLeaderboard: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: true, },
21626
22391
  getStatisticsLog: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: true, },
21627
22392
  getCurrencyLog: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: true, },
21628
22393
  },
@@ -21806,6 +22571,7 @@ class GrantSecretInfoRequestHandler extends RequestHandler_1.RequestHandler {
21806
22571
  resetStatisticsLeaderboard: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
21807
22572
  getBackupStatisticsLeaderboardVersion: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
21808
22573
  getServerGameData: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
22574
+ deleteInDatabase: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
21809
22575
  },
21810
22576
  multiplayer: {
21811
22577
  cancelAllMatchmakingTicket: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: true, },
@@ -21989,6 +22755,7 @@ class GrantSecretInfoRequestHandler extends RequestHandler_1.RequestHandler {
21989
22755
  getFriendStatisticsLeaderboard: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: true, serverSelfEnable: false, },
21990
22756
  getCurrencyLeaderboard: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: true, serverSelfEnable: false, },
21991
22757
  getCreateLeaderboard: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: true, serverSelfEnable: false, },
22758
+ getLastLoginLeaderboard: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: true, serverSelfEnable: false, },
21992
22759
  getStatisticsLog: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: true, serverSelfEnable: false, },
21993
22760
  getCurrencyLog: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: true, serverSelfEnable: false, },
21994
22761
  },
@@ -22172,6 +22939,7 @@ class GrantSecretInfoRequestHandler extends RequestHandler_1.RequestHandler {
22172
22939
  resetStatisticsLeaderboard: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: true, serverSelfEnable: false, },
22173
22940
  getBackupStatisticsLeaderboardVersion: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: true, serverSelfEnable: false, },
22174
22941
  getServerGameData: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: true, serverSelfEnable: false, },
22942
+ deleteInDatabase: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
22175
22943
  },
22176
22944
  multiplayer: {
22177
22945
  cancelAllMatchmakingTicket: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: true, serverSelfEnable: false, },
@@ -22356,6 +23124,7 @@ class GrantSecretInfoRequestHandler extends RequestHandler_1.RequestHandler {
22356
23124
  getFriendStatisticsLeaderboard: { selfEnable: true, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
22357
23125
  getCurrencyLeaderboard: { selfEnable: true, otherSelfEnable: true, adminSelfEnable: false, serverSelfEnable: false, },
22358
23126
  getCreateLeaderboard: { selfEnable: true, otherSelfEnable: true, adminSelfEnable: false, serverSelfEnable: false, },
23127
+ getLastLoginLeaderboard: { selfEnable: true, otherSelfEnable: true, adminSelfEnable: false, serverSelfEnable: false, },
22359
23128
  getStatisticsLog: { selfEnable: true, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
22360
23129
  getCurrencyLog: { selfEnable: true, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
22361
23130
  },
@@ -22539,6 +23308,7 @@ class GrantSecretInfoRequestHandler extends RequestHandler_1.RequestHandler {
22539
23308
  resetStatisticsLeaderboard: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
22540
23309
  getBackupStatisticsLeaderboardVersion: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
22541
23310
  getServerGameData: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
23311
+ deleteInDatabase: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
22542
23312
  },
22543
23313
  multiplayer: {
22544
23314
  cancelAllMatchmakingTicket: { selfEnable: true, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
@@ -22882,7 +23652,7 @@ class ResetStatisticsLeaderboardRequestHandler extends RequestHandler_1.RequestH
22882
23652
  let version = request.version;
22883
23653
  let log = request.log;
22884
23654
  if (type == OwnerType_1.OwnerType.MasterPlayer) {
22885
- let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().systemCollection("MasterPlayer.StatisticsBackup");
23655
+ let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().runtimeCollection("MasterPlayer.StatisticsBackup");
22886
23656
  let hasThisVersion = (yield backupStatisticsLeaderboardCollection.countDocuments({ key: key, version: version })) != 0;
22887
23657
  if (hasThisVersion) {
22888
23658
  operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.VersionInvalid);
@@ -22952,7 +23722,7 @@ class ResetStatisticsLeaderboardRequestHandler extends RequestHandler_1.RequestH
22952
23722
  else {
22953
23723
  let gameId = request.gameId;
22954
23724
  if (type == OwnerType_1.OwnerType.GamePlayer) {
22955
- let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().systemGameCollection("GamePlayer.StatisticsBackup", gameId);
23725
+ let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().runtimeGameCollection("GamePlayer.StatisticsBackup", gameId);
22956
23726
  let hasThisVersion = (yield backupStatisticsLeaderboardCollection.countDocuments({ key: key, version: version })) != 0;
22957
23727
  if (hasThisVersion) {
22958
23728
  operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.VersionInvalid);
@@ -23020,7 +23790,7 @@ class ResetStatisticsLeaderboardRequestHandler extends RequestHandler_1.RequestH
23020
23790
  xDebug_1.Debug.log("[GN] ResetStatisticsLeaderboard for key " + key + " at " + gamePlayerCollection.collectionName + " success");
23021
23791
  }
23022
23792
  else if (type == OwnerType_1.OwnerType.CharacterPlayer) {
23023
- let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().systemGameCollection("CharacterPlayer.StatisticsBackup", gameId);
23793
+ let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().runtimeGameCollection("CharacterPlayer.StatisticsBackup", gameId);
23024
23794
  let hasThisVersion = (yield backupStatisticsLeaderboardCollection.countDocuments({ key: key, version: version })) != 0;
23025
23795
  if (hasThisVersion) {
23026
23796
  operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.VersionInvalid);
@@ -23088,7 +23858,7 @@ class ResetStatisticsLeaderboardRequestHandler extends RequestHandler_1.RequestH
23088
23858
  xDebug_1.Debug.log("[GN] ResetStatisticsLeaderboard for key " + key + " at " + characterPlayerCollection.collectionName + " success");
23089
23859
  }
23090
23860
  else if (type == OwnerType_1.OwnerType.Group) {
23091
- let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().systemGameCollection("Group.StatisticsBackup", gameId);
23861
+ let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().runtimeGameCollection("Group.StatisticsBackup", gameId);
23092
23862
  let hasThisVersion = (yield backupStatisticsLeaderboardCollection.countDocuments({ key: key, version: version })) != 0;
23093
23863
  if (hasThisVersion) {
23094
23864
  operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.VersionInvalid);
@@ -23156,7 +23926,7 @@ class ResetStatisticsLeaderboardRequestHandler extends RequestHandler_1.RequestH
23156
23926
  xDebug_1.Debug.log("[GN] ResetStatisticsLeaderboard for key " + key + " at " + groupCollection.collectionName + " success");
23157
23927
  }
23158
23928
  else if (type == OwnerType_1.OwnerType.Inventory) {
23159
- let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().systemGameCollection("Inventory.StatisticsBackup", gameId);
23929
+ let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().runtimeGameCollection("Inventory.StatisticsBackup", gameId);
23160
23930
  let inventorySettings = this.gnServer.getGNSettings().getInventorySettings(gameId);
23161
23931
  let inventoryStatisticsSettingsItem = inventorySettings.inventoryStatisticsSettings.find(x => x.key == key);
23162
23932
  if (inventoryStatisticsSettingsItem == null) {
@@ -23312,6 +24082,11 @@ class SetEventCallbackCloudScriptRequestHandler extends RequestHandler_1.Request
23312
24082
  }
23313
24083
  operationResponse = new OperationResponse_1.OperationResponse(operationRequest.getOperationCode(), operationRequest.getRequestId(), operationRequest.isEncrypted());
23314
24084
  operationResponse.setReturnCode(ReturnCode_1.ReturnCode.Ok);
24085
+ if (request.script.includes("GNNetwork")) {
24086
+ operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.ExecuteError);
24087
+ operationResponse.setParameter(GNParameterCode_1.GNParameterCode.Message, "Can not use keywork GNNetwork on cloudscript");
24088
+ return operationResponse;
24089
+ }
23315
24090
  let response = yield this.gnServer.getEventCallbackCloudScriptService().addCloudScriptFunction(request.eventName, request.script);
23316
24091
  if (response.success) {
23317
24092
  operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.Ok);
@@ -26579,6 +27354,10 @@ __decorate([
26579
27354
  (0, DataMember_1.GNHashtableDataMember)({ code: GNParameterCode_1.GNParameterCode.GetCreateLeaderboard, isOptional: true }),
26580
27355
  __metadata("design:type", PermissionRulesParam_1.PermissionRulesParam)
26581
27356
  ], GamePlayerPermissionRulesParam.prototype, "getCreateLeaderboard", void 0);
27357
+ __decorate([
27358
+ (0, DataMember_1.GNHashtableDataMember)({ code: GNParameterCode_1.GNParameterCode.GetLastLoginLeaderboard, isOptional: true }),
27359
+ __metadata("design:type", PermissionRulesParam_1.PermissionRulesParam)
27360
+ ], GamePlayerPermissionRulesParam.prototype, "getLastLoginLeaderboard", void 0);
26582
27361
  __decorate([
26583
27362
  (0, DataMember_1.GNHashtableDataMember)({ code: GNParameterCode_1.GNParameterCode.GetStatisticsLog, isOptional: true }),
26584
27363
  __metadata("design:type", PermissionRulesParam_1.PermissionRulesParam)
@@ -27391,6 +28170,10 @@ __decorate([
27391
28170
  (0, DataMember_1.GNHashtableDataMember)({ code: GNParameterCode_1.GNParameterCode.GetBackupStatisticsLeaderboardVersion, isOptional: true }),
27392
28171
  __metadata("design:type", PermissionRulesParam_1.PermissionRulesParam)
27393
28172
  ], MasterAdminPermissionRulesParam.prototype, "getBackupStatisticsLeaderboardVersion", void 0);
28173
+ __decorate([
28174
+ (0, DataMember_1.GNHashtableDataMember)({ code: GNParameterCode_1.GNParameterCode.DeleteInDatabase, isOptional: true }),
28175
+ __metadata("design:type", PermissionRulesParam_1.PermissionRulesParam)
28176
+ ], MasterAdminPermissionRulesParam.prototype, "deleteInDatabase", void 0);
27394
28177
 
27395
28178
 
27396
28179
  /***/ }),
@@ -29995,7 +30778,7 @@ __decorate([
29995
30778
  __metadata("design:type", Number)
29996
30779
  ], GetCreateLeaderboardOperationRequest.prototype, "skip", void 0);
29997
30780
  __decorate([
29998
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
30781
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
29999
30782
  __metadata("design:type", Number)
30000
30783
  ], GetCreateLeaderboardOperationRequest.prototype, "limit", void 0);
30001
30784
  __decorate([
@@ -30208,7 +30991,7 @@ __decorate([
30208
30991
  __metadata("design:type", Number)
30209
30992
  ], GetCurrencyLeaderboardOperationRequest.prototype, "skip", void 0);
30210
30993
  __decorate([
30211
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
30994
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
30212
30995
  __metadata("design:type", Number)
30213
30996
  ], GetCurrencyLeaderboardOperationRequest.prototype, "limit", void 0);
30214
30997
  __decorate([
@@ -30424,7 +31207,7 @@ __decorate([
30424
31207
  __metadata("design:type", String)
30425
31208
  ], GetCurrencyLogOperationRequest.prototype, "userId", void 0);
30426
31209
  __decorate([
30427
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
31210
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
30428
31211
  __metadata("design:type", Number)
30429
31212
  ], GetCurrencyLogOperationRequest.prototype, "limit", void 0);
30430
31213
  __decorate([
@@ -30947,7 +31730,7 @@ __decorate([
30947
31730
  __metadata("design:type", Number)
30948
31731
  ], GetFriendStatisticsLeaderboardAroundPlayerOperationRequest.prototype, "skip", void 0);
30949
31732
  __decorate([
30950
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
31733
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
30951
31734
  __metadata("design:type", Number)
30952
31735
  ], GetFriendStatisticsLeaderboardAroundPlayerOperationRequest.prototype, "limit", void 0);
30953
31736
  class ServerGetFriendStatisticsLeaderboardAroundPlayerOperationRequest extends GetFriendStatisticsLeaderboardAroundPlayerOperationRequest {
@@ -31165,7 +31948,7 @@ __decorate([
31165
31948
  __metadata("design:type", Number)
31166
31949
  ], GetFriendStatisticsLeaderboardOperationRequest.prototype, "skip", void 0);
31167
31950
  __decorate([
31168
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
31951
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
31169
31952
  __metadata("design:type", Number)
31170
31953
  ], GetFriendStatisticsLeaderboardOperationRequest.prototype, "limit", void 0);
31171
31954
  class ServerGetFriendStatisticsLeaderboardOperationRequest extends GetFriendStatisticsLeaderboardOperationRequest {
@@ -31563,6 +32346,215 @@ class GetIpAddressCreateRequestHandler extends GamePlayerBaseRequestHandler_1.Ga
31563
32346
  exports.GetIpAddressCreateRequestHandler = GetIpAddressCreateRequestHandler;
31564
32347
 
31565
32348
 
32349
+ /***/ }),
32350
+
32351
+ /***/ 87067:
32352
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
32353
+
32354
+
32355
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
32356
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
32357
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
32358
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
32359
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
32360
+ };
32361
+ var __metadata = (this && this.__metadata) || function (k, v) {
32362
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
32363
+ };
32364
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
32365
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
32366
+ return new (P || (P = Promise))(function (resolve, reject) {
32367
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
32368
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
32369
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
32370
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32371
+ });
32372
+ };
32373
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
32374
+ exports.GetLastLoginLeaderboardRequestHandler = void 0;
32375
+ const OperationRequest_1 = __webpack_require__(25885);
32376
+ const OperationResponse_1 = __webpack_require__(27623);
32377
+ const OperationCode_1 = __webpack_require__(10675);
32378
+ const ParameterCode_1 = __webpack_require__(35284);
32379
+ const ReturnCode_1 = __webpack_require__(99060);
32380
+ const DataMember_1 = __webpack_require__(42364);
32381
+ const GNParameterCode_1 = __webpack_require__(38343);
32382
+ const GNData_1 = __webpack_require__(67549);
32383
+ const GNErrorCode_1 = __webpack_require__(94559);
32384
+ const GamePlayerBaseRequestHandler_1 = __webpack_require__(67811);
32385
+ const InfoRequestParam_1 = __webpack_require__(68350);
32386
+ const xDatetime_1 = __webpack_require__(21817);
32387
+ class GetLastLoginLeaderboardOperationRequest extends OperationRequest_1.OperationRequest {
32388
+ isValidRequest() {
32389
+ if (!super.isValidRequest())
32390
+ return false;
32391
+ return true;
32392
+ }
32393
+ }
32394
+ __decorate([
32395
+ (0, DataMember_1.GNHashtableDataMember)({ code: GNParameterCode_1.GNParameterCode.InfoRequestParam, mustNonNull: true }),
32396
+ __metadata("design:type", InfoRequestParam_1.InfoRequestParam)
32397
+ ], GetLastLoginLeaderboardOperationRequest.prototype, "infoRequestParam", void 0);
32398
+ __decorate([
32399
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Skip, defaultValue: 0, minValue: 0, mustInt: true, isOptional: true }),
32400
+ __metadata("design:type", Number)
32401
+ ], GetLastLoginLeaderboardOperationRequest.prototype, "skip", void 0);
32402
+ __decorate([
32403
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
32404
+ __metadata("design:type", Number)
32405
+ ], GetLastLoginLeaderboardOperationRequest.prototype, "limit", void 0);
32406
+ __decorate([
32407
+ (0, DataMember_1.BooleanDataMember)({ code: GNParameterCode_1.GNParameterCode.LoadFromCache, defaultValue: true, isOptional: true }),
32408
+ __metadata("design:type", Boolean)
32409
+ ], GetLastLoginLeaderboardOperationRequest.prototype, "loadFromCache", void 0);
32410
+ class ServerGetLastLoginLeaderboardOperationRequest extends GetLastLoginLeaderboardOperationRequest {
32411
+ isValidRequest() {
32412
+ if (!super.isValidRequest())
32413
+ return false;
32414
+ return true;
32415
+ }
32416
+ }
32417
+ class AdminGetLastLoginLeaderboardOperationRequest extends ServerGetLastLoginLeaderboardOperationRequest {
32418
+ isValidRequest() {
32419
+ if (!super.isValidRequest())
32420
+ return false;
32421
+ return true;
32422
+ }
32423
+ }
32424
+ class GetLastLoginLeaderboardRequestHandler extends GamePlayerBaseRequestHandler_1.GamePlayerBaseRequestHandler {
32425
+ getCode() {
32426
+ return OperationCode_1.OperationCode.GetLastLoginLeaderboard;
32427
+ }
32428
+ getCommonOperationRequest() {
32429
+ return GetLastLoginLeaderboardOperationRequest;
32430
+ }
32431
+ handle(authInfo, secretInfo, operationRequest) {
32432
+ return __awaiter(this, void 0, void 0, function* () {
32433
+ let request = this.requestConverterService.createTOperationRequest(operationRequest, this.getCommonOperationRequest());
32434
+ if (!request.isValidRequest()) {
32435
+ return this.newInvalidRequestParameters(request);
32436
+ }
32437
+ if (!secretInfo.getPermission().gamePlayer.getLastLoginLeaderboard.otherSelfEnable) {
32438
+ return this.newOperationNotAllowError(request);
32439
+ }
32440
+ this.generateInfoRequestParamForOther(secretInfo, request.infoRequestParam);
32441
+ return this.execute({
32442
+ skip: request.skip,
32443
+ limit: request.limit,
32444
+ infoRequestParam: request.infoRequestParam,
32445
+ loadFromCache: request.loadFromCache,
32446
+ }, secretInfo, operationRequest);
32447
+ });
32448
+ }
32449
+ serverHandle(secretInfo, operationRequest) {
32450
+ return __awaiter(this, void 0, void 0, function* () {
32451
+ let request = this.requestConverterService.createTOperationRequest(operationRequest, ServerGetLastLoginLeaderboardOperationRequest);
32452
+ if (!request.isValidRequest()) {
32453
+ return this.newInvalidRequestParameters(request);
32454
+ }
32455
+ if (!secretInfo.getPermission().gamePlayer.getLastLoginLeaderboard.serverSelfEnable) {
32456
+ return this.newOperationNotAllowError(request);
32457
+ }
32458
+ this.generateInfoRequestParamForServer(secretInfo, request.infoRequestParam);
32459
+ return this.execute({
32460
+ skip: request.skip,
32461
+ limit: request.limit,
32462
+ infoRequestParam: request.infoRequestParam,
32463
+ loadFromCache: request.loadFromCache,
32464
+ }, secretInfo, operationRequest);
32465
+ });
32466
+ }
32467
+ adminHandle(secretInfo, operationRequest) {
32468
+ return __awaiter(this, void 0, void 0, function* () {
32469
+ let request = this.requestConverterService.createTOperationRequest(operationRequest, AdminGetLastLoginLeaderboardOperationRequest);
32470
+ if (!request.isValidRequest()) {
32471
+ return this.newInvalidRequestParameters(request);
32472
+ }
32473
+ if (!secretInfo.getPermission().gamePlayer.getLastLoginLeaderboard.adminSelfEnable) {
32474
+ return this.newOperationNotAllowError(request);
32475
+ }
32476
+ this.generateInfoRequestParamForAdmin(secretInfo, request.infoRequestParam);
32477
+ return this.execute({
32478
+ skip: request.skip,
32479
+ limit: request.limit,
32480
+ infoRequestParam: request.infoRequestParam,
32481
+ loadFromCache: request.loadFromCache,
32482
+ }, secretInfo, operationRequest);
32483
+ });
32484
+ }
32485
+ execute(request, secretInfo, operationRequest) {
32486
+ return __awaiter(this, void 0, void 0, function* () {
32487
+ let operationResponse = yield this.gnServer.getPreEventCallbackService().onEvent("gamePlayer_GetLastLoginLeaderboard", request, secretInfo, operationRequest);
32488
+ if (operationResponse != null) {
32489
+ return operationResponse;
32490
+ }
32491
+ operationResponse = new OperationResponse_1.OperationResponse(operationRequest.getOperationCode(), operationRequest.getRequestId(), operationRequest.isEncrypted());
32492
+ operationResponse.setReturnCode(ReturnCode_1.ReturnCode.Ok);
32493
+ let gamePlayerFindOptions = this.convertToGamePlayerFindOptions(request.infoRequestParam);
32494
+ let cacheKey = "gamePlayerLastLoginLeaderboard";
32495
+ if (request.loadFromCache) {
32496
+ if (request.skip + request.limit > 100) {
32497
+ request.loadFromCache = false;
32498
+ }
32499
+ }
32500
+ if (request.loadFromCache) {
32501
+ if (!this.gnServer.getCacheData().isValid(cacheKey)) {
32502
+ request.loadFromCache = false;
32503
+ }
32504
+ }
32505
+ let gnResults = new GNData_1.GNArray();
32506
+ let gamePlayers;
32507
+ if (request.loadFromCache) {
32508
+ gamePlayers = this.gnServer.getCacheData().getData(cacheKey);
32509
+ for (let i = request.skip; i < request.skip + request.limit; i++) {
32510
+ if (i >= gamePlayers.length)
32511
+ break;
32512
+ let gamePlayer = gamePlayers[i];
32513
+ let gnResult = new GNData_1.GNHashtable();
32514
+ gnResult.add(GNParameterCode_1.GNParameterCode.Position, i);
32515
+ gnResult.add(GNParameterCode_1.GNParameterCode.UserId, gamePlayer.getUserId());
32516
+ gnResult.add(GNParameterCode_1.GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(gamePlayer, request.infoRequestParam, secretInfo.getGameId()));
32517
+ gnResults.add(gnResult);
32518
+ }
32519
+ }
32520
+ else {
32521
+ if (request.skip + request.limit <= 100) {
32522
+ gamePlayerFindOptions = null;
32523
+ gamePlayers = yield this.gnServer.getDatabase().loadGamePlayersLeaderboardWithLastLoginAsync(0, 100, secretInfo.getGameId(), gamePlayerFindOptions);
32524
+ for (let i = request.skip; i < request.skip + request.limit; i++) {
32525
+ if (i >= gamePlayers.length)
32526
+ break;
32527
+ let gamePlayer = gamePlayers[i];
32528
+ let gnResult = new GNData_1.GNHashtable();
32529
+ gnResult.add(GNParameterCode_1.GNParameterCode.Position, i);
32530
+ gnResult.add(GNParameterCode_1.GNParameterCode.UserId, gamePlayer.getUserId());
32531
+ gnResult.add(GNParameterCode_1.GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(gamePlayer, request.infoRequestParam, secretInfo.getGameId()));
32532
+ gnResults.add(gnResult);
32533
+ }
32534
+ this.gnServer.getCacheData().setData(cacheKey, gamePlayers, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
32535
+ }
32536
+ else {
32537
+ gamePlayers = yield this.gnServer.getDatabase().loadGamePlayersLeaderboardWithLastLoginAsync(request.skip, request.limit, secretInfo.getGameId(), gamePlayerFindOptions);
32538
+ for (let i = 0; i < gamePlayers.length; i++) {
32539
+ let gamePlayer = gamePlayers[i];
32540
+ let gnResult = new GNData_1.GNHashtable();
32541
+ gnResult.add(GNParameterCode_1.GNParameterCode.Position, i + request.skip);
32542
+ gnResult.add(GNParameterCode_1.GNParameterCode.UserId, gamePlayer.getUserId());
32543
+ gnResult.add(GNParameterCode_1.GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(gamePlayer, request.infoRequestParam, secretInfo.getGameId()));
32544
+ gnResults.add(gnResult);
32545
+ }
32546
+ }
32547
+ }
32548
+ operationResponse.setParameter(GNParameterCode_1.GNParameterCode.Results, gnResults);
32549
+ operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.Ok);
32550
+ yield this.gnServer.getPostEventCallbackService().onEvent("gamePlayer_GetLastLoginLeaderboard", request, secretInfo, operationRequest, operationResponse);
32551
+ return operationResponse;
32552
+ });
32553
+ }
32554
+ }
32555
+ exports.GetLastLoginLeaderboardRequestHandler = GetLastLoginLeaderboardRequestHandler;
32556
+
32557
+
31566
32558
  /***/ }),
31567
32559
 
31568
32560
  /***/ 85206:
@@ -33297,7 +34289,7 @@ __decorate([
33297
34289
  __metadata("design:type", Number)
33298
34290
  ], GetPlayersWithDisplayNameOperationRequest.prototype, "skip", void 0);
33299
34291
  __decorate([
33300
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
34292
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
33301
34293
  __metadata("design:type", Number)
33302
34294
  ], GetPlayersWithDisplayNameOperationRequest.prototype, "limit", void 0);
33303
34295
  class ServerGetPlayersWithDisplayNameOperationRequest extends GetPlayersWithDisplayNameOperationRequest {
@@ -33460,7 +34452,7 @@ __decorate([
33460
34452
  __metadata("design:type", Number)
33461
34453
  ], GetPlayersWithSegmentOperationRequest.prototype, "skip", void 0);
33462
34454
  __decorate([
33463
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
34455
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
33464
34456
  __metadata("design:type", Number)
33465
34457
  ], GetPlayersWithSegmentOperationRequest.prototype, "limit", void 0);
33466
34458
  class ServerGetPlayersWithSegmentOperationRequest extends GetPlayersWithSegmentOperationRequest {
@@ -33627,7 +34619,7 @@ __decorate([
33627
34619
  __metadata("design:type", Number)
33628
34620
  ], GetPlayersWithTagOperationRequest.prototype, "skip", void 0);
33629
34621
  __decorate([
33630
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
34622
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
33631
34623
  __metadata("design:type", Number)
33632
34624
  ], GetPlayersWithTagOperationRequest.prototype, "limit", void 0);
33633
34625
  class ServerGetPlayersWithTagOperationRequest extends GetPlayersWithTagOperationRequest {
@@ -33959,7 +34951,7 @@ __decorate([
33959
34951
  __metadata("design:type", Number)
33960
34952
  ], GetStatisticsLeaderboardAroundPlayerOperationRequest.prototype, "skip", void 0);
33961
34953
  __decorate([
33962
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
34954
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
33963
34955
  __metadata("design:type", Number)
33964
34956
  ], GetStatisticsLeaderboardAroundPlayerOperationRequest.prototype, "limit", void 0);
33965
34957
  class ServerGetStatisticsLeaderboardAroundPlayerOperationRequest extends GetStatisticsLeaderboardAroundPlayerOperationRequest {
@@ -34154,7 +35146,7 @@ __decorate([
34154
35146
  __metadata("design:type", Number)
34155
35147
  ], GetStatisticsLeaderboardOperationRequest.prototype, "skip", void 0);
34156
35148
  __decorate([
34157
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
35149
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
34158
35150
  __metadata("design:type", Number)
34159
35151
  ], GetStatisticsLeaderboardOperationRequest.prototype, "limit", void 0);
34160
35152
  __decorate([
@@ -34322,7 +35314,7 @@ class GetStatisticsLeaderboardRequestHandler extends GamePlayerBaseRequestHandle
34322
35314
  }
34323
35315
  else {
34324
35316
  let gameId = secretInfo.getGameId();
34325
- let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().systemGameCollection("GamePlayer.StatisticsBackup", gameId);
35317
+ let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().runtimeGameCollection("GamePlayer.StatisticsBackup", gameId);
34326
35318
  let key = request.key;
34327
35319
  let version = request.version;
34328
35320
  let cacheKey = "gamePlayerStatisticsLeaderboard_" + key + "_" + version;
@@ -34332,7 +35324,7 @@ class GetStatisticsLeaderboardRequestHandler extends GamePlayerBaseRequestHandle
34332
35324
  operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.VersionInvalid);
34333
35325
  return operationResponse;
34334
35326
  }
34335
- this.gnServer.getCacheData().setData(cacheKey, result, xDatetime_1.xDatetime.ONE_DAY_MILLISECOND * 7);
35327
+ this.gnServer.getCacheData().setData(cacheKey, result, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
34336
35328
  }
34337
35329
  let backupData = this.gnServer.getCacheData().getData(cacheKey);
34338
35330
  let gnResults = new GNData_1.GNArray();
@@ -34417,7 +35409,7 @@ __decorate([
34417
35409
  __metadata("design:type", String)
34418
35410
  ], GetStatisticsLogOperationRequest.prototype, "userId", void 0);
34419
35411
  __decorate([
34420
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
35412
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
34421
35413
  __metadata("design:type", Number)
34422
35414
  ], GetStatisticsLogOperationRequest.prototype, "limit", void 0);
34423
35415
  __decorate([
@@ -39919,7 +40911,7 @@ __decorate([
39919
40911
  __metadata("design:type", Number)
39920
40912
  ], GetCreateLeaderboardOperationRequest.prototype, "skip", void 0);
39921
40913
  __decorate([
39922
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
40914
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
39923
40915
  __metadata("design:type", Number)
39924
40916
  ], GetCreateLeaderboardOperationRequest.prototype, "limit", void 0);
39925
40917
  __decorate([
@@ -40126,7 +41118,7 @@ __decorate([
40126
41118
  __metadata("design:type", String)
40127
41119
  ], GetCurrencyLogOperationRequest.prototype, "groupId", void 0);
40128
41120
  __decorate([
40129
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
41121
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
40130
41122
  __metadata("design:type", Number)
40131
41123
  ], GetCurrencyLogOperationRequest.prototype, "limit", void 0);
40132
41124
  __decorate([
@@ -41219,7 +42211,7 @@ __decorate([
41219
42211
  __metadata("design:type", Number)
41220
42212
  ], GetGroupMessageOperationRequest.prototype, "skip", void 0);
41221
42213
  __decorate([
41222
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
42214
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
41223
42215
  __metadata("design:type", Number)
41224
42216
  ], GetGroupMessageOperationRequest.prototype, "limit", void 0);
41225
42217
  class ServerGetGroupMessageOperationRequest extends GetGroupMessageOperationRequest {
@@ -41567,7 +42559,7 @@ __decorate([
41567
42559
  __metadata("design:type", Number)
41568
42560
  ], GetGroupsWithDisplayNameOperationRequest.prototype, "skip", void 0);
41569
42561
  __decorate([
41570
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
42562
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
41571
42563
  __metadata("design:type", Number)
41572
42564
  ], GetGroupsWithDisplayNameOperationRequest.prototype, "limit", void 0);
41573
42565
  class ServerGetGroupsWithDisplayNameOperationRequest extends GetGroupsWithDisplayNameOperationRequest {
@@ -41730,7 +42722,7 @@ __decorate([
41730
42722
  __metadata("design:type", Number)
41731
42723
  ], GetGroupsWithSegmentOperationRequest.prototype, "skip", void 0);
41732
42724
  __decorate([
41733
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
42725
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
41734
42726
  __metadata("design:type", Number)
41735
42727
  ], GetGroupsWithSegmentOperationRequest.prototype, "limit", void 0);
41736
42728
  class ServerGetGroupsWithSegmentOperationRequest extends GetGroupsWithSegmentOperationRequest {
@@ -41897,7 +42889,7 @@ __decorate([
41897
42889
  __metadata("design:type", Number)
41898
42890
  ], GetGroupsWithTagOperationRequest.prototype, "skip", void 0);
41899
42891
  __decorate([
41900
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
42892
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
41901
42893
  __metadata("design:type", Number)
41902
42894
  ], GetGroupsWithTagOperationRequest.prototype, "limit", void 0);
41903
42895
  class ServerGetGroupsWithTagOperationRequest extends GetGroupsWithTagOperationRequest {
@@ -42491,7 +43483,7 @@ __decorate([
42491
43483
  __metadata("design:type", Number)
42492
43484
  ], GetStatisticsLeaderboardAroundGroupOperationRequest.prototype, "skip", void 0);
42493
43485
  __decorate([
42494
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
43486
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
42495
43487
  __metadata("design:type", Number)
42496
43488
  ], GetStatisticsLeaderboardAroundGroupOperationRequest.prototype, "limit", void 0);
42497
43489
  class ServerGetStatisticsLeaderboardAroundGroupOperationRequest extends GetStatisticsLeaderboardAroundGroupOperationRequest {
@@ -42670,7 +43662,7 @@ __decorate([
42670
43662
  __metadata("design:type", Number)
42671
43663
  ], GetStatisticsLeaderboardOperationRequest.prototype, "skip", void 0);
42672
43664
  __decorate([
42673
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
43665
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
42674
43666
  __metadata("design:type", Number)
42675
43667
  ], GetStatisticsLeaderboardOperationRequest.prototype, "limit", void 0);
42676
43668
  __decorate([
@@ -42838,7 +43830,7 @@ class GetStatisticsLeaderboardRequestHandler extends GroupBaseRequestHandler_1.G
42838
43830
  }
42839
43831
  else {
42840
43832
  let gameId = secretInfo.getGameId();
42841
- let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().systemGameCollection("Group.StatisticsBackup", gameId);
43833
+ let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().runtimeGameCollection("Group.StatisticsBackup", gameId);
42842
43834
  let key = request.key;
42843
43835
  let version = request.version;
42844
43836
  let cacheKey = "groupStatisticsLeaderboard_" + key + "_" + version;
@@ -42848,7 +43840,7 @@ class GetStatisticsLeaderboardRequestHandler extends GroupBaseRequestHandler_1.G
42848
43840
  operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.VersionInvalid);
42849
43841
  return operationResponse;
42850
43842
  }
42851
- this.gnServer.getCacheData().setData(cacheKey, result, xDatetime_1.xDatetime.ONE_DAY_MILLISECOND * 7);
43843
+ this.gnServer.getCacheData().setData(cacheKey, result, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
42852
43844
  }
42853
43845
  let backupData = this.gnServer.getCacheData().getData(cacheKey);
42854
43846
  let gnResults = new GNData_1.GNArray();
@@ -42933,7 +43925,7 @@ __decorate([
42933
43925
  __metadata("design:type", String)
42934
43926
  ], GetStatisticsLogOperationRequest.prototype, "groupId", void 0);
42935
43927
  __decorate([
42936
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
43928
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
42937
43929
  __metadata("design:type", Number)
42938
43930
  ], GetStatisticsLogOperationRequest.prototype, "limit", void 0);
42939
43931
  __decorate([
@@ -44106,7 +45098,7 @@ class GroupBaseRequestHandler extends RequestHandler_1.RequestHandler {
44106
45098
  sendGroupMessage(groupId, gameId, groupMessageItem) {
44107
45099
  return __awaiter(this, void 0, void 0, function* () {
44108
45100
  let cacheData = this.gnServer.getCacheData();
44109
- if (!cacheData.hasData("GroupMessages_" + groupId)) {
45101
+ if (!cacheData.isValid("GroupMessages_" + groupId)) {
44110
45102
  cacheData.setData("GroupMessages_" + groupId, yield this.getDatabaseGroupMessage(groupId, gameId), GroupBaseRequestHandler.EXPIRED_CACHE);
44111
45103
  }
44112
45104
  yield this.gnServer.getDatabase().createGroupMessageAsync(groupId, gameId, groupMessageItem.senderId, groupMessageItem.senderType, groupMessageItem.message, groupMessageItem.tsCreate);
@@ -47466,7 +48458,7 @@ __decorate([
47466
48458
  __metadata("design:type", Number)
47467
48459
  ], GetCreateLeaderboardOperationRequest.prototype, "skip", void 0);
47468
48460
  __decorate([
47469
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
48461
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
47470
48462
  __metadata("design:type", Number)
47471
48463
  ], GetCreateLeaderboardOperationRequest.prototype, "limit", void 0);
47472
48464
  __decorate([
@@ -48569,7 +49561,7 @@ __decorate([
48569
49561
  __metadata("design:type", Number)
48570
49562
  ], GetItemsWithDisplayNameOperationRequest.prototype, "skip", void 0);
48571
49563
  __decorate([
48572
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
49564
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
48573
49565
  __metadata("design:type", Number)
48574
49566
  ], GetItemsWithDisplayNameOperationRequest.prototype, "limit", void 0);
48575
49567
  class ServerGetItemsWithDisplayNameOperationRequest extends GetItemsWithDisplayNameOperationRequest {
@@ -48732,7 +49724,7 @@ __decorate([
48732
49724
  __metadata("design:type", Number)
48733
49725
  ], GetItemsWithSegmentOperationRequest.prototype, "skip", void 0);
48734
49726
  __decorate([
48735
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
49727
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
48736
49728
  __metadata("design:type", Number)
48737
49729
  ], GetItemsWithSegmentOperationRequest.prototype, "limit", void 0);
48738
49730
  class ServerGetItemsWithSegmentOperationRequest extends GetItemsWithSegmentOperationRequest {
@@ -48899,7 +49891,7 @@ __decorate([
48899
49891
  __metadata("design:type", Number)
48900
49892
  ], GetItemsWithTagOperationRequest.prototype, "skip", void 0);
48901
49893
  __decorate([
48902
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
49894
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
48903
49895
  __metadata("design:type", Number)
48904
49896
  ], GetItemsWithTagOperationRequest.prototype, "limit", void 0);
48905
49897
  class ServerGetItemsWithTagOperationRequest extends GetItemsWithTagOperationRequest {
@@ -49493,7 +50485,7 @@ __decorate([
49493
50485
  __metadata("design:type", Number)
49494
50486
  ], GetStatisticsLeaderboardAroundItemOperationRequest.prototype, "skip", void 0);
49495
50487
  __decorate([
49496
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
50488
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
49497
50489
  __metadata("design:type", Number)
49498
50490
  ], GetStatisticsLeaderboardAroundItemOperationRequest.prototype, "limit", void 0);
49499
50491
  class ServerGetStatisticsLeaderboardAroundItemOperationRequest extends GetStatisticsLeaderboardAroundItemOperationRequest {
@@ -49672,7 +50664,7 @@ __decorate([
49672
50664
  __metadata("design:type", Number)
49673
50665
  ], GetStatisticsLeaderboardOperationRequest.prototype, "skip", void 0);
49674
50666
  __decorate([
49675
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
50667
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
49676
50668
  __metadata("design:type", Number)
49677
50669
  ], GetStatisticsLeaderboardOperationRequest.prototype, "limit", void 0);
49678
50670
  __decorate([
@@ -49840,7 +50832,7 @@ class GetStatisticsLeaderboardRequestHandler extends ItemBaseRequestHandler_1.It
49840
50832
  }
49841
50833
  else {
49842
50834
  let gameId = secretInfo.getGameId();
49843
- let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().systemGameCollection("Group.StatisticsBackup", gameId);
50835
+ let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().runtimeGameCollection("Group.StatisticsBackup", gameId);
49844
50836
  let key = request.key;
49845
50837
  let version = request.version;
49846
50838
  let cacheKey = "inventoryStatisticsLeaderboard_" + key + "_" + version;
@@ -49850,7 +50842,7 @@ class GetStatisticsLeaderboardRequestHandler extends ItemBaseRequestHandler_1.It
49850
50842
  operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.VersionInvalid);
49851
50843
  return operationResponse;
49852
50844
  }
49853
- this.gnServer.getCacheData().setData(cacheKey, result, xDatetime_1.xDatetime.ONE_DAY_MILLISECOND * 7);
50845
+ this.gnServer.getCacheData().setData(cacheKey, result, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
49854
50846
  }
49855
50847
  let backupData = this.gnServer.getCacheData().getData(cacheKey);
49856
50848
  let gnResults = new GNData_1.GNArray();
@@ -49935,7 +50927,7 @@ __decorate([
49935
50927
  __metadata("design:type", String)
49936
50928
  ], GetStatisticsLogOperationRequest.prototype, "itemId", void 0);
49937
50929
  __decorate([
49938
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
50930
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
49939
50931
  __metadata("design:type", Number)
49940
50932
  ], GetStatisticsLogOperationRequest.prototype, "limit", void 0);
49941
50933
  __decorate([
@@ -53783,7 +54775,7 @@ __decorate([
53783
54775
  __metadata("design:type", Number)
53784
54776
  ], GetCreateLeaderboardOperationRequest.prototype, "skip", void 0);
53785
54777
  __decorate([
53786
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
54778
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
53787
54779
  __metadata("design:type", Number)
53788
54780
  ], GetCreateLeaderboardOperationRequest.prototype, "limit", void 0);
53789
54781
  __decorate([
@@ -53996,7 +54988,7 @@ __decorate([
53996
54988
  __metadata("design:type", Number)
53997
54989
  ], GetCurrencyLeaderboardOperationRequest.prototype, "skip", void 0);
53998
54990
  __decorate([
53999
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
54991
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
54000
54992
  __metadata("design:type", Number)
54001
54993
  ], GetCurrencyLeaderboardOperationRequest.prototype, "limit", void 0);
54002
54994
  __decorate([
@@ -54212,7 +55204,7 @@ __decorate([
54212
55204
  __metadata("design:type", String)
54213
55205
  ], GetCurrencyLogOperationRequest.prototype, "userId", void 0);
54214
55206
  __decorate([
54215
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
55207
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
54216
55208
  __metadata("design:type", Number)
54217
55209
  ], GetCurrencyLogOperationRequest.prototype, "limit", void 0);
54218
55210
  __decorate([
@@ -55190,7 +56182,7 @@ __decorate([
55190
56182
  __metadata("design:type", Number)
55191
56183
  ], GetLastLoginLeaderboardOperationRequest.prototype, "skip", void 0);
55192
56184
  __decorate([
55193
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
56185
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
55194
56186
  __metadata("design:type", Number)
55195
56187
  ], GetLastLoginLeaderboardOperationRequest.prototype, "limit", void 0);
55196
56188
  __decorate([
@@ -56359,7 +57351,7 @@ __decorate([
56359
57351
  __metadata("design:type", Number)
56360
57352
  ], GetPlayersWithDisplayNameOperationRequest.prototype, "skip", void 0);
56361
57353
  __decorate([
56362
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
57354
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
56363
57355
  __metadata("design:type", Number)
56364
57356
  ], GetPlayersWithDisplayNameOperationRequest.prototype, "limit", void 0);
56365
57357
  class ServerGetPlayersWithDisplayNameOperationRequest extends GetPlayersWithDisplayNameOperationRequest {
@@ -57289,7 +58281,7 @@ __decorate([
57289
58281
  __metadata("design:type", Number)
57290
58282
  ], GetPlayersWithSegmentOperationRequest.prototype, "skip", void 0);
57291
58283
  __decorate([
57292
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
58284
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
57293
58285
  __metadata("design:type", Number)
57294
58286
  ], GetPlayersWithSegmentOperationRequest.prototype, "limit", void 0);
57295
58287
  class ServerGetPlayersWithSegmentOperationRequest extends GetPlayersWithSegmentOperationRequest {
@@ -57456,7 +58448,7 @@ __decorate([
57456
58448
  __metadata("design:type", Number)
57457
58449
  ], GetPlayersWithTagOperationRequest.prototype, "skip", void 0);
57458
58450
  __decorate([
57459
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
58451
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
57460
58452
  __metadata("design:type", Number)
57461
58453
  ], GetPlayersWithTagOperationRequest.prototype, "limit", void 0);
57462
58454
  class ServerGetPlayersWithTagOperationRequest extends GetPlayersWithTagOperationRequest {
@@ -57943,7 +58935,7 @@ __decorate([
57943
58935
  __metadata("design:type", Number)
57944
58936
  ], GetStatisticsLeaderboardAroundPlayerOperationRequest.prototype, "skip", void 0);
57945
58937
  __decorate([
57946
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
58938
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
57947
58939
  __metadata("design:type", Number)
57948
58940
  ], GetStatisticsLeaderboardAroundPlayerOperationRequest.prototype, "limit", void 0);
57949
58941
  class ServerGetStatisticsLeaderboardAroundPlayerOperationRequest extends GetStatisticsLeaderboardAroundPlayerOperationRequest {
@@ -58138,7 +59130,7 @@ __decorate([
58138
59130
  __metadata("design:type", Number)
58139
59131
  ], GetStatisticsLeaderboardOperationRequest.prototype, "skip", void 0);
58140
59132
  __decorate([
58141
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
59133
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
58142
59134
  __metadata("design:type", Number)
58143
59135
  ], GetStatisticsLeaderboardOperationRequest.prototype, "limit", void 0);
58144
59136
  __decorate([
@@ -58305,7 +59297,7 @@ class GetStatisticsLeaderboardRequestHandler extends MasterPlayerBaseRequestHand
58305
59297
  operationResponse.setParameter(GNParameterCode_1.GNParameterCode.Results, gnResults);
58306
59298
  }
58307
59299
  else {
58308
- let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().systemCollection("MasterPlayer.StatisticsBackup");
59300
+ let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().runtimeCollection("MasterPlayer.StatisticsBackup");
58309
59301
  let key = request.key;
58310
59302
  let version = request.version;
58311
59303
  let cacheKey = "masterPlayerStatisticsLeaderboard_" + key + "_" + version;
@@ -58315,7 +59307,7 @@ class GetStatisticsLeaderboardRequestHandler extends MasterPlayerBaseRequestHand
58315
59307
  operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.VersionInvalid);
58316
59308
  return operationResponse;
58317
59309
  }
58318
- this.gnServer.getCacheData().setData(cacheKey, result, xDatetime_1.xDatetime.ONE_DAY_MILLISECOND * 7);
59310
+ this.gnServer.getCacheData().setData(cacheKey, result, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
58319
59311
  }
58320
59312
  let backupData = this.gnServer.getCacheData().getData(cacheKey);
58321
59313
  let gnResults = new GNData_1.GNArray();
@@ -58400,7 +59392,7 @@ __decorate([
58400
59392
  __metadata("design:type", String)
58401
59393
  ], GetStatisticsLogOperationRequest.prototype, "userId", void 0);
58402
59394
  __decorate([
58403
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
59395
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
58404
59396
  __metadata("design:type", Number)
58405
59397
  ], GetStatisticsLogOperationRequest.prototype, "limit", void 0);
58406
59398
  __decorate([
@@ -60427,19 +61419,19 @@ __decorate([
60427
61419
  __metadata("design:type", String)
60428
61420
  ], LinkGameCenterOperationRequest.prototype, "playerId", void 0);
60429
61421
  __decorate([
60430
- (0, DataMember_1.StringDataMember)({ code: GNParameterCode_1.GNParameterCode.Name, minLength: 2, maxLength: 64, mustNonNull: true }),
61422
+ (0, DataMember_1.StringDataMember)({ code: GNParameterCode_1.GNParameterCode.Name, minLength: 2, maxLength: 128, mustNonNull: true }),
60431
61423
  __metadata("design:type", String)
60432
61424
  ], LinkGameCenterOperationRequest.prototype, "name", void 0);
60433
61425
  __decorate([
60434
- (0, DataMember_1.StringDataMember)({ code: GNParameterCode_1.GNParameterCode.PublicKeyUrl, minLength: 2, maxLength: 256, mustNonNull: true }),
61426
+ (0, DataMember_1.StringDataMember)({ code: GNParameterCode_1.GNParameterCode.PublicKeyUrl, minLength: 2, maxLength: 2048, mustNonNull: true }),
60435
61427
  __metadata("design:type", String)
60436
61428
  ], LinkGameCenterOperationRequest.prototype, "publicKeyUrl", void 0);
60437
61429
  __decorate([
60438
- (0, DataMember_1.StringDataMember)({ code: GNParameterCode_1.GNParameterCode.Signature, minLength: 2, maxLength: 512, mustNonNull: true }),
61430
+ (0, DataMember_1.StringDataMember)({ code: GNParameterCode_1.GNParameterCode.Signature, minLength: 2, maxLength: 2048, mustNonNull: true }),
60439
61431
  __metadata("design:type", String)
60440
61432
  ], LinkGameCenterOperationRequest.prototype, "signature", void 0);
60441
61433
  __decorate([
60442
- (0, DataMember_1.StringDataMember)({ code: GNParameterCode_1.GNParameterCode.Salt, minLength: 2, maxLength: 128, mustNonNull: true }),
61434
+ (0, DataMember_1.StringDataMember)({ code: GNParameterCode_1.GNParameterCode.Salt, minLength: 2, maxLength: 256, mustNonNull: true }),
60443
61435
  __metadata("design:type", String)
60444
61436
  ], LinkGameCenterOperationRequest.prototype, "salt", void 0);
60445
61437
  __decorate([
@@ -69453,7 +70445,7 @@ __decorate([
69453
70445
  __metadata("design:type", Number)
69454
70446
  ], GetAllMatchOperationRequest.prototype, "skip", void 0);
69455
70447
  __decorate([
69456
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
70448
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
69457
70449
  __metadata("design:type", Number)
69458
70450
  ], GetAllMatchOperationRequest.prototype, "limit", void 0);
69459
70451
  class ServerGetAllMatchOperationRequest extends GetAllMatchOperationRequest {
@@ -69656,7 +70648,7 @@ __decorate([
69656
70648
  __metadata("design:type", Number)
69657
70649
  ], GetAllMatchmakingTicketOperationRequest.prototype, "skip", void 0);
69658
70650
  __decorate([
69659
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
70651
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
69660
70652
  __metadata("design:type", Number)
69661
70653
  ], GetAllMatchmakingTicketOperationRequest.prototype, "limit", void 0);
69662
70654
  class ServerGetAllMatchmakingTicketOperationRequest extends GetAllMatchmakingTicketOperationRequest {
@@ -72205,7 +73197,7 @@ __decorate([
72205
73197
  __metadata("design:type", Number)
72206
73198
  ], GetCreateLeaderboardOperationRequest.prototype, "skip", void 0);
72207
73199
  __decorate([
72208
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
73200
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
72209
73201
  __metadata("design:type", Number)
72210
73202
  ], GetCreateLeaderboardOperationRequest.prototype, "limit", void 0);
72211
73203
  __decorate([
@@ -72559,7 +73551,7 @@ __decorate([
72559
73551
  __metadata("design:type", Number)
72560
73552
  ], GetStoreItemsWithTagOperationRequest.prototype, "skip", void 0);
72561
73553
  __decorate([
72562
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
73554
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
72563
73555
  __metadata("design:type", Number)
72564
73556
  ], GetStoreItemsWithTagOperationRequest.prototype, "limit", void 0);
72565
73557
  class ServerGetStoreItemsWithTagOperationRequest extends GetStoreItemsWithTagOperationRequest {
@@ -72721,7 +73713,7 @@ __decorate([
72721
73713
  __metadata("design:type", String)
72722
73714
  ], GetStoreLogOperationRequest.prototype, "id", void 0);
72723
73715
  __decorate([
72724
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
73716
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
72725
73717
  __metadata("design:type", Number)
72726
73718
  ], GetStoreLogOperationRequest.prototype, "limit", void 0);
72727
73719
  __decorate([
@@ -76174,7 +77166,7 @@ class AnalyticsService {
76174
77166
  for (let i = 0; i < fsSize.length; i++) {
76175
77167
  let storage = fsSize[i];
76176
77168
  storageUsage.push({
76177
- name: storage.mount,
77169
+ name: storage.fs,
76178
77170
  fsTotalSizeInBytes: storage.size,
76179
77171
  fsUsedSizeInBytes: storage.used
76180
77172
  });
@@ -76182,7 +77174,7 @@ class AnalyticsService {
76182
77174
  this.currentOperationSystem = {
76183
77175
  cpuUsage: cpu.currentLoad,
76184
77176
  memoryUsage: {
76185
- freeMemoryInBytes: memory.free,
77177
+ freeMemoryInBytes: memory.available,
76186
77178
  totalMemoryInBytes: memory.total,
76187
77179
  },
76188
77180
  storageUsage: storageUsage
@@ -76309,23 +77301,35 @@ class AppleService {
76309
77301
  this.keyId = request.keyId;
76310
77302
  this.p8Content = request.p8Content;
76311
77303
  }
76312
- verifyToken(token) {
76313
- return __awaiter(this, void 0, void 0, function* () {
76314
- return new Promise((resolve, reject) => jsonwebtoken_1.default.verify(token, (header, callback) => {
76315
- this.client.getSigningKey(header.kid, (err, key) => {
76316
- if (err)
76317
- return callback(err, null);
76318
- let signingKey = key.getPublicKey();
76319
- return callback(null, signingKey);
76320
- });
76321
- }, (err, decoded) => {
77304
+ getSigningKey(header) {
77305
+ return new Promise((resolve, reject) => {
77306
+ if (!header.kid) {
77307
+ return reject(new Error("No KID in token header"));
77308
+ }
77309
+ this.client.getSigningKey(header.kid, (err, key) => {
76322
77310
  if (err) {
76323
- reject({ "error": err.message });
76324
- }
76325
- else {
76326
- resolve(decoded);
77311
+ return reject(err);
76327
77312
  }
76328
- }));
77313
+ const signingKey = key.getPublicKey(); // hoặc key.rsaPublicKey
77314
+ resolve(signingKey);
77315
+ });
77316
+ });
77317
+ }
77318
+ verifyToken(token) {
77319
+ return __awaiter(this, void 0, void 0, function* () {
77320
+ var _a;
77321
+ try {
77322
+ const signingKey = yield this.getSigningKey((_a = jsonwebtoken_1.default.decode(token, { complete: true })) === null || _a === void 0 ? void 0 : _a.header);
77323
+ return new Promise((resolve, reject) => jsonwebtoken_1.default.verify(token, signingKey, (err, decoded) => {
77324
+ if (err) {
77325
+ return reject({ error: err.message });
77326
+ }
77327
+ return resolve(decoded);
77328
+ }));
77329
+ }
77330
+ catch (error) {
77331
+ return { error: error.message };
77332
+ }
76329
77333
  });
76330
77334
  }
76331
77335
  verifyAppleToken(token) {
@@ -76656,7 +77660,7 @@ class CloudScriptService {
76656
77660
  let fullScriptTs = fs_1.default.readFileSync(templateFullScriptPathTs).toString().replace("//$replaceScript", script);
76657
77661
  fs_1.default.writeFileSync(filePathTempTs, fullScriptTs);
76658
77662
  let filePathTemp = __dirname + "/./GN-startup/cloudScript";
76659
- yield (0, child_process_1.execSync)("npx tsc " + filePathTempTs + " --noImplicitAny --allowJs --skipLibCheck --outDir " + filePathTemp);
77663
+ yield (0, child_process_1.execSync)("npx tsc " + filePathTempTs + " --allowJs --skipLibCheck --outDir " + filePathTemp);
76660
77664
  let filePathTempJs = __dirname + "/./GN-startup/cloudScript/temp.js";
76661
77665
  fullScriptJs = fs_1.default.readFileSync(filePathTempJs).toString();
76662
77666
  if (canExecute) {
@@ -77445,7 +78449,7 @@ class EventCallbackCloudScriptService {
77445
78449
  let fullScriptTs = fs_1.default.readFileSync(templateFullScriptPathTs).toString().replace("//$replaceScript", finalScript);
77446
78450
  fs_1.default.writeFileSync(filePathTempTs, fullScriptTs);
77447
78451
  let filePathTemp = __dirname + "/./GN-startup/cloudScript";
77448
- yield (0, child_process_1.execSync)("npx tsc " + filePathTempTs + " --noImplicitAny --allowJs --skipLibCheck --esModuleInterop --outDir " + filePathTemp);
78452
+ yield (0, child_process_1.execSync)("npx tsc " + filePathTempTs + " --allowJs --skipLibCheck --esModuleInterop --outDir " + filePathTemp);
77449
78453
  let filePathTempJs = __dirname + "/./GN-startup/cloudScript/temp2.js";
77450
78454
  fullScriptJs = fs_1.default.readFileSync(filePathTempJs).toString();
77451
78455
  let finalVersion = cloudFunction.type + "_" + cloudFunction.version;
@@ -80184,6 +81188,7 @@ OperationCode.SetEventCallbackCloudScript = -22;
80184
81188
  OperationCode.ResetStatisticsLeaderboard = -23;
80185
81189
  OperationCode.GetBackupStatisticsLeaderboardVersion = -24;
80186
81190
  OperationCode.GetServerGameData = -25;
81191
+ OperationCode.DeleteInDatabase = -26;
80187
81192
  OperationCode.LoginByAccount = 1;
80188
81193
  OperationCode.LoginByAndroidDeviceId = 2;
80189
81194
  OperationCode.LoginByApple = 3;
@@ -81228,6 +82233,7 @@ GNParameterCode.Index = "index";
81228
82233
  GNParameterCode.ResetStatisticsLeaderboard = "resetStatisticsLeaderboard";
81229
82234
  GNParameterCode.GetBackupStatisticsLeaderboardVersion = "getBackupStatisticsLeaderboardVersion";
81230
82235
  GNParameterCode.GetServerGameData = "getServerGameData";
82236
+ GNParameterCode.DeleteInDatabase = "deleteInDatabase";
81231
82237
  GNParameterCode.MasterPlayerCount = "masterPlayerCount";
81232
82238
  GNParameterCode.GamePlayerCount = "gamePlayerCount";
81233
82239
  GNParameterCode.CharacterPlayerCount = "characterPlayerCount";
@@ -85542,6 +86548,17 @@ class xDatabase {
85542
86548
  return this.convertToGamePlayers(results, collection);
85543
86549
  });
85544
86550
  }
86551
+ loadGamePlayersLeaderboardWithLastLoginAsync(skip, limit, gameId, gamePlayerFindOptions) {
86552
+ return __awaiter(this, void 0, void 0, function* () {
86553
+ let collection = this.systemGameCollection("GamePlayer", gameId);
86554
+ let $sort = {};
86555
+ $sort["tsLastLogin"] = -1;
86556
+ let results = yield collection.find({}, {
86557
+ projection: this.getFindOptions(gamePlayerFindOptions)
86558
+ }).sort($sort).skip(skip).limit(limit);
86559
+ return this.convertToGamePlayers(results, collection);
86560
+ });
86561
+ }
85545
86562
  loadFriendGamePlayersLeaderboardWithStatisticsAsync(friendIds, gameId, gamePlayerFindOptions) {
85546
86563
  return __awaiter(this, void 0, void 0, function* () {
85547
86564
  let collection = this.systemGameCollection("GamePlayer", gameId);
@@ -87511,7 +88528,7 @@ class ServerApplication extends BuilderBase {
87511
88528
  serverAddress: "127.0.0.1",
87512
88529
  serverPort: this.applicationSettings.getPort(),
87513
88530
  useSsl: false,
87514
- useSocket: true,
88531
+ useSocket: false,
87515
88532
  useHttp: true,
87516
88533
  sendRate: 20,
87517
88534
  reconnectDelay: 5000,
@@ -87554,14 +88571,14 @@ class ServerApplication extends BuilderBase {
87554
88571
  serverAddress: "127.0.0.1",
87555
88572
  serverPort: this.applicationSettings.getPort(),
87556
88573
  useSsl: false,
87557
- useSocket: true,
88574
+ useSocket: false,
87558
88575
  useHttp: true,
87559
88576
  sendRate: 20,
87560
88577
  reconnectDelay: 5000,
87561
88578
  pingInterval: 20000,
87562
88579
  pingTimeout: 20000,
87563
88580
  gnServerSourcePath: "",
87564
- logType: gn_typescript_client_1.LogType.All,
88581
+ logType: gn_typescript_client_1.LogType.Off,
87565
88582
  adminSecretKey: secretKey,
87566
88583
  serverSecretKey: secretKey,
87567
88584
  clientSecretKey: secretKey,
@@ -87616,6 +88633,116 @@ class ServerApplication extends BuilderBase {
87616
88633
  let userId = StringUtility_1.StringUtility.generateRandomString(10, 0);
87617
88634
  {
87618
88635
  let permission = GrantSecretInfoRequestHandler_1.GrantSecretInfoRequestHandler.generateDefaultPermission(true, true, true, true);
88636
+ {
88637
+ permission.masterAdmin.setMasterGameSettings = {
88638
+ selfEnable: false,
88639
+ adminSelfEnable: false,
88640
+ otherSelfEnable: false,
88641
+ serverSelfEnable: false,
88642
+ };
88643
+ permission.masterAdmin.grantAdminAccount = {
88644
+ selfEnable: false,
88645
+ adminSelfEnable: false,
88646
+ otherSelfEnable: false,
88647
+ serverSelfEnable: false,
88648
+ };
88649
+ permission.masterAdmin.removeAdminAccount = {
88650
+ selfEnable: false,
88651
+ adminSelfEnable: false,
88652
+ otherSelfEnable: false,
88653
+ serverSelfEnable: false,
88654
+ };
88655
+ permission.masterAdmin.setPasswordAdminAccount = {
88656
+ selfEnable: false,
88657
+ adminSelfEnable: false,
88658
+ otherSelfEnable: false,
88659
+ serverSelfEnable: false,
88660
+ };
88661
+ permission.masterAdmin.setSecretKeyAdminAccount = {
88662
+ selfEnable: false,
88663
+ adminSelfEnable: false,
88664
+ otherSelfEnable: false,
88665
+ serverSelfEnable: false,
88666
+ };
88667
+ permission.masterAdmin.setGameInformation = {
88668
+ selfEnable: false,
88669
+ adminSelfEnable: false,
88670
+ otherSelfEnable: false,
88671
+ serverSelfEnable: false,
88672
+ };
88673
+ permission.masterAdmin.grantGame = {
88674
+ selfEnable: false,
88675
+ adminSelfEnable: false,
88676
+ otherSelfEnable: false,
88677
+ serverSelfEnable: false,
88678
+ };
88679
+ permission.masterAdmin.changePasswordAdminAccount = {
88680
+ selfEnable: false,
88681
+ adminSelfEnable: false,
88682
+ otherSelfEnable: false,
88683
+ serverSelfEnable: false,
88684
+ };
88685
+ permission.masterAdmin.getAdminAccountList = {
88686
+ selfEnable: false,
88687
+ adminSelfEnable: false,
88688
+ otherSelfEnable: false,
88689
+ serverSelfEnable: false,
88690
+ };
88691
+ permission.masterAdmin.getGameInformation = {
88692
+ selfEnable: false,
88693
+ adminSelfEnable: false,
88694
+ otherSelfEnable: false,
88695
+ serverSelfEnable: false,
88696
+ };
88697
+ permission.masterAdmin.getGameList = {
88698
+ selfEnable: false,
88699
+ adminSelfEnable: false,
88700
+ otherSelfEnable: false,
88701
+ serverSelfEnable: false,
88702
+ };
88703
+ permission.masterAdmin.getMasterGameSettings = {
88704
+ selfEnable: false,
88705
+ adminSelfEnable: false,
88706
+ otherSelfEnable: false,
88707
+ serverSelfEnable: false,
88708
+ };
88709
+ permission.masterAdmin.getSecretInfoInformation = {
88710
+ selfEnable: false,
88711
+ adminSelfEnable: false,
88712
+ otherSelfEnable: false,
88713
+ serverSelfEnable: false,
88714
+ };
88715
+ permission.masterAdmin.getSecretInfoList = {
88716
+ selfEnable: false,
88717
+ adminSelfEnable: false,
88718
+ otherSelfEnable: false,
88719
+ serverSelfEnable: false,
88720
+ };
88721
+ permission.masterAdmin.grantSecretInfo = {
88722
+ selfEnable: false,
88723
+ adminSelfEnable: false,
88724
+ otherSelfEnable: false,
88725
+ serverSelfEnable: false,
88726
+ };
88727
+ permission.masterAdmin.setSecretInfoInformation = {
88728
+ selfEnable: false,
88729
+ adminSelfEnable: false,
88730
+ otherSelfEnable: false,
88731
+ serverSelfEnable: false,
88732
+ };
88733
+ permission.masterAdmin.getEventCallbackCloudScript = {
88734
+ selfEnable: false,
88735
+ adminSelfEnable: false,
88736
+ otherSelfEnable: false,
88737
+ serverSelfEnable: false,
88738
+ };
88739
+ permission.masterAdmin.setEventCallbackCloudScript = {
88740
+ selfEnable: false,
88741
+ adminSelfEnable: false,
88742
+ otherSelfEnable: false,
88743
+ serverSelfEnable: false,
88744
+ };
88745
+ }
87619
88746
  {
87620
88747
  let newSecretInfo = SecretInfo_1.SecretInfo.Builder()
87621
88748
  .setGameId("")
@@ -87847,7 +88974,7 @@ class ServerApplication extends BuilderBase {
87847
88974
  yield countryRegionCollection.createIndex({ "countryCode": 1 }, { background: true, name: "countryCode_1" });
87848
88975
  }
87849
88976
  {
87850
- let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().systemCollection("MasterPlayer.StatisticsBackup");
88977
+ let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().runtimeCollection("MasterPlayer.StatisticsBackup");
87851
88978
  yield backupStatisticsLeaderboardCollection.createIndex({ "key": 1, "version": 1 }, { background: true, name: "key_1_version_1" });
87852
88979
  }
87853
88980
  {
@@ -90875,7 +92002,9 @@ class UploadFileHandler {
90875
92002
  return this.antiDdosMiddleware.addPendingUploadRequest(req, res, next);
90876
92003
  }), (0, async_middleware_1.wrap)((req, res, next) => {
90877
92004
  return this.uploadFileMiddleware.checkFileUploadInvalid(req, res, next);
90878
- }), (0, async_middleware_1.wrap)(this.uploadFileMiddleware.handleUpload().single(Commands_1.Commands.File)), (req, res) => __awaiter(this, void 0, void 0, function* () {
92005
+ }), (0, async_middleware_1.wrap)((req, res, next) => {
92006
+ return this.uploadFileMiddleware.handleUpload().single(Commands_1.Commands.File)(req, res, next);
92007
+ }), (req, res) => __awaiter(this, void 0, void 0, function* () {
90879
92008
  this.antiDdosMiddleware.removePendingUploadRequest(req, res);
90880
92009
  let file = req.file;
90881
92010
  if (!file) {
@@ -91854,6 +92983,7 @@ const GetPlayersWithDisplayNameRequestHandler_3 = __webpack_require__(85576);
91854
92983
  const GetFriendStatisticsLeaderboardAroundPlayerRequestHandler_2 = __webpack_require__(62627);
91855
92984
  const GetFriendStatisticsLeaderboardRequestHandler_2 = __webpack_require__(28199);
91856
92985
  const GetCurrencyLeaderboardRequestHandler_3 = __webpack_require__(68995);
92986
+ const GetLastLoginLeaderboardRequestHandler_2 = __webpack_require__(87067);
91857
92987
  const GetCreateLeaderboardRequestHandler_3 = __webpack_require__(24886);
91858
92988
  const GetStatisticsLogRequestHandler_3 = __webpack_require__(15210);
91859
92989
  const GetCurrencyLogRequestHandler_3 = __webpack_require__(32982);
@@ -91974,6 +93104,7 @@ const SetEventCallbackCloudScriptRequestHandler_1 = __webpack_require__(86321);
91974
93104
  const ResetStatisticsLeaderboardRequestHandler_1 = __webpack_require__(1097);
91975
93105
  const GetBackupStatisticsLeaderboardVersionRequestHandler_1 = __webpack_require__(54774);
91976
93106
  const GetServerGameDataRequestHandler_1 = __webpack_require__(74923);
93107
+ const DeleteInDatabaseRequestHandler_1 = __webpack_require__(21595);
91977
93108
  const CancelAllMatchmakingTicketRequestHandler_1 = __webpack_require__(63377);
91978
93109
  const CancelMatchmakingTicketRequestHandler_1 = __webpack_require__(99660);
91979
93110
  const CreateMatchmakingTicketRequestHandler_1 = __webpack_require__(20050);
@@ -92254,6 +93385,7 @@ class GNServer {
92254
93385
  this.requestController.addHandler(requestTypeValue, new GetFriendStatisticsLeaderboardAroundPlayerRequestHandler_2.GetFriendStatisticsLeaderboardAroundPlayerRequestHandler(this), true);
92255
93386
  this.requestController.addHandler(requestTypeValue, new GetFriendStatisticsLeaderboardRequestHandler_2.GetFriendStatisticsLeaderboardRequestHandler(this), true);
92256
93387
  this.requestController.addHandler(requestTypeValue, new GetCurrencyLeaderboardRequestHandler_3.GetCurrencyLeaderboardRequestHandler(this), true);
93388
+ this.requestController.addHandler(requestTypeValue, new GetLastLoginLeaderboardRequestHandler_2.GetLastLoginLeaderboardRequestHandler(this), true);
92257
93389
  this.requestController.addHandler(requestTypeValue, new GetCreateLeaderboardRequestHandler_3.GetCreateLeaderboardRequestHandler(this), true);
92258
93390
  this.requestController.addHandler(requestTypeValue, new GetStatisticsLogRequestHandler_3.GetStatisticsLogRequestHandler(this), true);
92259
93391
  this.requestController.addHandler(requestTypeValue, new GetCurrencyLogRequestHandler_3.GetCurrencyLogRequestHandler(this), true);
@@ -92390,6 +93522,7 @@ class GNServer {
92390
93522
  this.requestController.addHandler(requestTypeValue, new ResetStatisticsLeaderboardRequestHandler_1.ResetStatisticsLeaderboardRequestHandler(this), true);
92391
93523
  this.requestController.addHandler(requestTypeValue, new GetBackupStatisticsLeaderboardVersionRequestHandler_1.GetBackupStatisticsLeaderboardVersionRequestHandler(this), true);
92392
93524
  this.requestController.addHandler(requestTypeValue, new GetServerGameDataRequestHandler_1.GetServerGameDataRequestHandler(this), true);
93525
+ this.requestController.addHandler(requestTypeValue, new DeleteInDatabaseRequestHandler_1.DeleteInDatabaseRequestHandler(this), true);
92393
93526
  }
92394
93527
  {
92395
93528
  let requestTypeValue = RequestType_1.RequestType.Multiplayer;