@xmobitea/gn-server 2.4.11 → 2.4.13

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
@@ -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,773 @@ 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 groupId = group.getGroupId();
15417
+ let objs = yield this.deleteGroup(group, request.gameId);
15418
+ let allMembers = group.getAllMembers();
15419
+ for (let i = 0; i < allMembers.length; i++) {
15420
+ let member = allMembers[i];
15421
+ let memberId = member.memberId;
15422
+ if (memberId.length == 11) {
15423
+ let characterPlayer = yield this.gnServer.getDatabase().loadCharacterPlayerAsync(memberId, request.gameId);
15424
+ if (characterPlayer != null) {
15425
+ objs.push({
15426
+ type: "Group.Member",
15427
+ obj: {
15428
+ memberId: memberId,
15429
+ }
15430
+ });
15431
+ characterPlayer.removePlayerGroup(groupId);
15432
+ characterPlayer.saveAsync();
15433
+ }
15434
+ }
15435
+ else if (memberId.length == 10) {
15436
+ let gamePlayer = yield this.gnServer.getDatabase().loadGamePlayerAsync(memberId, request.gameId);
15437
+ if (gamePlayer != null) {
15438
+ objs.push({
15439
+ type: "Group.Member",
15440
+ obj: {
15441
+ memberId: memberId,
15442
+ }
15443
+ });
15444
+ gamePlayer.removePlayerGroup(groupId);
15445
+ gamePlayer.saveAsync();
15446
+ }
15447
+ }
15448
+ }
15449
+ let result = {
15450
+ type: "Group",
15451
+ gameId: request.gameId,
15452
+ log: request.log,
15453
+ tsCreate: xDatetime_1.xDatetime.getCurrentMilliseconds(),
15454
+ objs: objs,
15455
+ };
15456
+ this.gnServer.getDatabase().systemGameCollection("Group", request.gameId).deleteOne({ groupId: groupId });
15457
+ this.gnServer.getDatabase().runtimeCollection("DeleteInDatabaseLog").insertOne(result);
15458
+ }
15459
+ else {
15460
+ operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.ItemNotFound);
15461
+ return operationResponse;
15462
+ }
15463
+ operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.Ok);
15464
+ yield this.gnServer.getPostEventCallbackService().onEvent("dashboard_DeleteInDatabase", request, secretInfo, operationRequest, operationResponse);
15465
+ return operationResponse;
15466
+ });
15467
+ }
15468
+ deleteMasterPlayer(masterPlayer) {
15469
+ return __awaiter(this, void 0, void 0, function* () {
15470
+ let answer = [];
15471
+ answer.push({
15472
+ type: "MasterPlayer",
15473
+ obj: masterPlayer.getOriginResult()
15474
+ });
15475
+ let gameIds = this.gnServer.getGameIds();
15476
+ let userId = masterPlayer.getUserId();
15477
+ for (let i = 0; i < gameIds.length; i++) {
15478
+ let gameId = gameIds[i];
15479
+ let gamePlayer = yield this.gnServer.getDatabase().loadGamePlayerAsync(userId, gameId);
15480
+ if (gamePlayer != null) {
15481
+ let results = yield this.deleteGamePlayer(gamePlayer, gameId);
15482
+ answer.push({
15483
+ type: "GamePlayer",
15484
+ gameId: gameId,
15485
+ objs: results
15486
+ });
15487
+ this.gnServer.getDatabase().systemGameCollection("GamePlayer", gameId).deleteOne({ userId: userId });
15488
+ }
15489
+ }
15490
+ {
15491
+ let currencyLogCollection = this.gnServer.getDatabase().runtimeCollection("MasterPlayer.CurrencyLog");
15492
+ let results = yield currencyLogCollection.find({ userId: userId });
15493
+ while (yield results.hasNext()) {
15494
+ let result = yield results.next();
15495
+ answer.push({
15496
+ type: "MasterPlayer.CurrencyLog",
15497
+ obj: result,
15498
+ });
15499
+ }
15500
+ currencyLogCollection.deleteMany({ userId: userId });
15501
+ }
15502
+ {
15503
+ let statisticsLogCollection = this.gnServer.getDatabase().runtimeCollection("MasterPlayer.StatisticsLog");
15504
+ let results = yield statisticsLogCollection.find({ userId: userId });
15505
+ while (yield results.hasNext()) {
15506
+ let result = yield results.next();
15507
+ answer.push({
15508
+ type: "MasterPlayer.StatisticsLog",
15509
+ obj: result,
15510
+ });
15511
+ }
15512
+ statisticsLogCollection.deleteMany({ userId: userId });
15513
+ }
15514
+ {
15515
+ let backupStatisticsCollection = this.gnServer.getDatabase().runtimeCollection("MasterPlayer.StatisticsBackup");
15516
+ let results = yield backupStatisticsCollection.find({});
15517
+ while (yield results.hasNext()) {
15518
+ let result = yield results.next();
15519
+ let backupResults = result.results;
15520
+ let backupResult = backupResults.find(x => x.userId == userId);
15521
+ if (backupResult != null) {
15522
+ backupResults.splice(backupResult.position, 1);
15523
+ for (let i = backupResult.position; i < backupResults.length; i++) {
15524
+ backupResults[i].position -= 1;
15525
+ }
15526
+ backupStatisticsCollection.updateOne({ _id: result._id }, { $set: { results: backupResults } });
15527
+ answer.push({
15528
+ type: "MasterPlayer.StatisticsBackup",
15529
+ obj: {
15530
+ key: result.key,
15531
+ version: result.version,
15532
+ result: backupResult
15533
+ },
15534
+ });
15535
+ }
15536
+ }
15537
+ }
15538
+ return answer;
15539
+ });
15540
+ }
15541
+ deleteGamePlayer(gamePlayer, gameId) {
15542
+ return __awaiter(this, void 0, void 0, function* () {
15543
+ let answer = [];
15544
+ answer.push({
15545
+ type: "GamePlayer",
15546
+ obj: gamePlayer.getOriginResult()
15547
+ });
15548
+ let userId = gamePlayer.getUserId();
15549
+ {
15550
+ let playerCharacters = gamePlayer.getAllPlayerCharacters();
15551
+ for (let i = 0; i < playerCharacters.length; i++) {
15552
+ let playerCharacter = playerCharacters[i];
15553
+ let characterPlayer = yield this.gnServer.getDatabase().loadCharacterPlayerAsync(playerCharacter.characterId, gameId);
15554
+ if (characterPlayer != null) {
15555
+ let results = yield this.deleteCharacterPlayer(characterPlayer, gameId);
15556
+ answer.push(...results);
15557
+ }
15558
+ }
15559
+ this.gnServer.getDatabase().systemGameCollection("CharacterPlayer", gameId).deleteMany({ "owner.id": userId });
15560
+ }
15561
+ {
15562
+ let playerFriends = gamePlayer.getAllPlayerFriends();
15563
+ for (let i = 0; i < playerFriends.length; i++) {
15564
+ let playerFriend = playerFriends[i];
15565
+ let friendPlayer = yield this.gnServer.getDatabase().loadGamePlayerAsync(playerFriend.friendId, gameId);
15566
+ if (friendPlayer != null) {
15567
+ let results = yield this.deleteFriendPlayerInGamePlayer(gamePlayer, gameId, friendPlayer);
15568
+ answer.push(...results);
15569
+ friendPlayer.saveAsync();
15570
+ }
15571
+ }
15572
+ }
15573
+ {
15574
+ let groupMessageCollection = this.gnServer.getDatabase().runtimeGameCollection("Group.Message", gameId);
15575
+ let results = yield groupMessageCollection.find({ senderId: userId });
15576
+ while (yield results.hasNext()) {
15577
+ let result = yield results.next();
15578
+ answer.push({
15579
+ type: "Group.Message",
15580
+ obj: result,
15581
+ });
15582
+ }
15583
+ yield groupMessageCollection.deleteMany({ senderId: userId });
15584
+ let playerGroups = gamePlayer.getAllPlayerGroups();
15585
+ for (let i = 0; i < playerGroups.length; i++) {
15586
+ let playerGroup = playerGroups[i];
15587
+ let group = yield this.gnServer.getDatabase().loadGroupAsync(playerGroup.groupId, gameId);
15588
+ if (group != null) {
15589
+ let results = yield this.deleteGroupInGamePlayer(gamePlayer, gameId, group);
15590
+ answer.push(...results);
15591
+ group.saveAsync();
15592
+ }
15593
+ }
15594
+ }
15595
+ {
15596
+ let playerInventories = gamePlayer.getAllPlayerInventories();
15597
+ for (let i = 0; i < playerInventories.length; i++) {
15598
+ let playerInventory = playerInventories[i];
15599
+ let inventory = yield this.gnServer.getDatabase().loadInventoryAsync(playerInventory.itemId, gameId);
15600
+ if (inventory != null) {
15601
+ let results = yield this.deleteInventory(inventory, gameId);
15602
+ answer.push(...results);
15603
+ }
15604
+ }
15605
+ this.gnServer.getDatabase().systemGameCollection("Inventory", gameId).deleteMany({ "owner.id": userId });
15606
+ }
15607
+ {
15608
+ let currencyLogCollection = this.gnServer.getDatabase().runtimeGameCollection("GamePlayer.CurrencyLog", gameId);
15609
+ let results = yield currencyLogCollection.find({ userId: userId });
15610
+ while (yield results.hasNext()) {
15611
+ let result = yield results.next();
15612
+ answer.push({
15613
+ type: "GamePlayer.CurrencyLog",
15614
+ obj: result,
15615
+ });
15616
+ }
15617
+ currencyLogCollection.deleteMany({ userId: userId });
15618
+ }
15619
+ {
15620
+ let statisticsLogCollection = this.gnServer.getDatabase().runtimeGameCollection("GamePlayer.StatisticsLog", gameId);
15621
+ let results = yield statisticsLogCollection.find({ userId: userId });
15622
+ while (yield results.hasNext()) {
15623
+ let result = yield results.next();
15624
+ answer.push({
15625
+ type: "GamePlayer.StatisticsLog",
15626
+ obj: result,
15627
+ });
15628
+ }
15629
+ statisticsLogCollection.deleteMany({ userId: userId });
15630
+ }
15631
+ {
15632
+ let backupStatisticsCollection = this.gnServer.getDatabase().runtimeGameCollection("GamePlayer.StatisticsBackup", gameId);
15633
+ let results = yield backupStatisticsCollection.find({});
15634
+ while (yield results.hasNext()) {
15635
+ let result = yield results.next();
15636
+ let backupResults = result.results;
15637
+ let backupResult = backupResults.find(x => x.userId == userId);
15638
+ if (backupResult != null) {
15639
+ backupResults.splice(backupResult.position, 1);
15640
+ for (let i = backupResult.position; i < backupResults.length; i++) {
15641
+ backupResults[i].position -= 1;
15642
+ }
15643
+ backupStatisticsCollection.updateOne({ _id: result._id }, { $set: { results: backupResults } });
15644
+ answer.push({
15645
+ type: "GamePlayer.StatisticsBackup",
15646
+ obj: {
15647
+ key: result.key,
15648
+ version: result.version,
15649
+ result: backupResult
15650
+ },
15651
+ });
15652
+ }
15653
+ }
15654
+ }
15655
+ {
15656
+ let backupStoreLogCollection = this.gnServer.getDatabase().runtimeGameCollection("StoreInventory.StoreLog", gameId);
15657
+ let results = yield backupStoreLogCollection.find({ id: userId });
15658
+ while (yield results.hasNext()) {
15659
+ let result = yield results.next();
15660
+ answer.push({
15661
+ type: "StoreInventory.StoreLog",
15662
+ obj: result,
15663
+ });
15664
+ }
15665
+ backupStoreLogCollection.deleteMany({ id: userId });
15666
+ }
15667
+ return answer;
15668
+ });
15669
+ }
15670
+ deleteCharacterPlayer(characterPlayer, gameId) {
15671
+ return __awaiter(this, void 0, void 0, function* () {
15672
+ let answer = [];
15673
+ answer.push({
15674
+ type: "CharacterPlayer",
15675
+ obj: characterPlayer.getOriginResult()
15676
+ });
15677
+ let characterId = characterPlayer.getCharacterId();
15678
+ {
15679
+ let playerFriends = characterPlayer.getAllPlayerFriends();
15680
+ for (let i = 0; i < playerFriends.length; i++) {
15681
+ let playerFriend = playerFriends[i];
15682
+ let friendPlayer = yield this.gnServer.getDatabase().loadCharacterPlayerAsync(playerFriend.friendId, gameId);
15683
+ if (friendPlayer != null) {
15684
+ let results = yield this.deleteFriendPlayerInCharacterPlayer(characterPlayer, gameId, friendPlayer);
15685
+ answer.push(...results);
15686
+ friendPlayer.saveAsync();
15687
+ }
15688
+ }
15689
+ }
15690
+ {
15691
+ let groupMessageCollection = this.gnServer.getDatabase().runtimeGameCollection("Group.Message", gameId);
15692
+ let results = yield groupMessageCollection.find({ senderId: characterId });
15693
+ while (yield results.hasNext()) {
15694
+ let result = yield results.next();
15695
+ answer.push({
15696
+ type: "Group.Message",
15697
+ obj: result,
15698
+ });
15699
+ }
15700
+ yield groupMessageCollection.deleteMany({ senderId: characterId });
15701
+ let playerGroups = characterPlayer.getAllPlayerGroups();
15702
+ for (let i = 0; i < playerGroups.length; i++) {
15703
+ let playerGroup = playerGroups[i];
15704
+ let group = yield this.gnServer.getDatabase().loadGroupAsync(playerGroup.groupId, gameId);
15705
+ if (group != null) {
15706
+ let results = yield this.deleteGroupInCharacterPlayer(characterPlayer, gameId, group);
15707
+ answer.push(...results);
15708
+ group.saveAsync();
15709
+ }
15710
+ }
15711
+ }
15712
+ {
15713
+ let playerInventories = characterPlayer.getAllPlayerInventories();
15714
+ for (let i = 0; i < playerInventories.length; i++) {
15715
+ let playerInventory = playerInventories[i];
15716
+ let inventory = yield this.gnServer.getDatabase().loadInventoryAsync(playerInventory.itemId, gameId);
15717
+ if (inventory != null) {
15718
+ let results = yield this.deleteInventory(inventory, gameId);
15719
+ answer.push(...results);
15720
+ }
15721
+ }
15722
+ this.gnServer.getDatabase().systemGameCollection("Inventory", gameId).deleteMany({ "owner.id": characterId });
15723
+ }
15724
+ {
15725
+ let currencyLogCollection = this.gnServer.getDatabase().runtimeGameCollection("CharacterPlayer.CurrencyLog", gameId);
15726
+ let results = yield currencyLogCollection.find({ characterId: characterId });
15727
+ while (yield results.hasNext()) {
15728
+ let result = yield results.next();
15729
+ answer.push({
15730
+ type: "CharacterPlayer.CurrencyLog",
15731
+ obj: result,
15732
+ });
15733
+ }
15734
+ currencyLogCollection.deleteMany({ characterId: characterId });
15735
+ }
15736
+ {
15737
+ let statisticsLogCollection = this.gnServer.getDatabase().runtimeGameCollection("CharacterPlayer.StatisticsLog", gameId);
15738
+ let results = yield statisticsLogCollection.find({ characterId: characterId });
15739
+ while (yield results.hasNext()) {
15740
+ let result = yield results.next();
15741
+ answer.push({
15742
+ type: "CharacterPlayer.StatisticsLog",
15743
+ obj: result,
15744
+ });
15745
+ }
15746
+ statisticsLogCollection.deleteMany({ characterId: characterId });
15747
+ }
15748
+ {
15749
+ let backupStatisticsCollection = this.gnServer.getDatabase().runtimeGameCollection("CharacterPlayer.StatisticsBackup", gameId);
15750
+ let results = yield backupStatisticsCollection.find({});
15751
+ while (yield results.hasNext()) {
15752
+ let result = yield results.next();
15753
+ let backupResults = result.results;
15754
+ let backupResult = backupResults.find(x => x.characterId == characterId);
15755
+ if (backupResult != null) {
15756
+ backupResults.splice(backupResult.position, 1);
15757
+ for (let i = backupResult.position; i < backupResults.length; i++) {
15758
+ backupResults[i].position -= 1;
15759
+ }
15760
+ backupStatisticsCollection.updateOne({ _id: result._id }, { $set: { results: backupResults } });
15761
+ answer.push({
15762
+ type: "CharacterPlayer.StatisticsBackup",
15763
+ obj: {
15764
+ key: result.key,
15765
+ version: result.version,
15766
+ result: backupResult
15767
+ },
15768
+ });
15769
+ }
15770
+ }
15771
+ }
15772
+ {
15773
+ let backupStoreLogCollection = this.gnServer.getDatabase().runtimeGameCollection("StoreInventory.StoreLog", gameId);
15774
+ let results = yield backupStoreLogCollection.find({ id: characterId });
15775
+ while (yield results.hasNext()) {
15776
+ let result = yield results.next();
15777
+ answer.push({
15778
+ type: "StoreInventory.StoreLog",
15779
+ obj: result,
15780
+ });
15781
+ }
15782
+ backupStoreLogCollection.deleteMany({ id: characterId });
15783
+ }
15784
+ return answer;
15785
+ });
15786
+ }
15787
+ deleteInventory(inventory, gameId) {
15788
+ return __awaiter(this, void 0, void 0, function* () {
15789
+ let answer = [];
15790
+ answer.push({
15791
+ type: "Inventory",
15792
+ obj: inventory.getOriginResult()
15793
+ });
15794
+ let itemId = inventory.getItemId();
15795
+ {
15796
+ let statisticsLogCollection = this.gnServer.getDatabase().runtimeGameCollection("Inventory.StatisticsLog", gameId);
15797
+ let results = yield statisticsLogCollection.find({ itemId: itemId });
15798
+ while (yield results.hasNext()) {
15799
+ let result = yield results.next();
15800
+ answer.push({
15801
+ type: "Inventory.StatisticsLog",
15802
+ obj: result,
15803
+ });
15804
+ }
15805
+ statisticsLogCollection.deleteMany({ itemId: itemId });
15806
+ }
15807
+ {
15808
+ let backupStatisticsCollection = this.gnServer.getDatabase().runtimeGameCollection("Inventory.StatisticsBackup", gameId);
15809
+ let results = yield backupStatisticsCollection.find({});
15810
+ while (yield results.hasNext()) {
15811
+ let result = yield results.next();
15812
+ let backupResults = result.results;
15813
+ let backupResult = backupResults.find(x => x.itemId == itemId);
15814
+ if (backupResult != null) {
15815
+ backupResults.splice(backupResult.position, 1);
15816
+ for (let i = backupResult.position; i < backupResults.length; i++) {
15817
+ backupResults[i].position -= 1;
15818
+ }
15819
+ backupStatisticsCollection.updateOne({ _id: result._id }, { $set: { results: backupResults } });
15820
+ answer.push({
15821
+ type: "Inventory.StatisticsBackup",
15822
+ obj: {
15823
+ key: result.key,
15824
+ version: result.version,
15825
+ result: backupResult
15826
+ },
15827
+ });
15828
+ }
15829
+ }
15830
+ }
15831
+ return answer;
15832
+ });
15833
+ }
15834
+ deleteGroup(group, gameId) {
15835
+ return __awaiter(this, void 0, void 0, function* () {
15836
+ let answer = [];
15837
+ answer.push({
15838
+ type: "Group",
15839
+ obj: group.getOriginResult()
15840
+ });
15841
+ let groupId = group.getGroupId();
15842
+ {
15843
+ let groupMessageCollection = this.gnServer.getDatabase().runtimeGameCollection("Group.Message", gameId);
15844
+ let results = yield groupMessageCollection.find({ groupId: groupId });
15845
+ while (yield results.hasNext()) {
15846
+ let result = yield results.next();
15847
+ answer.push({
15848
+ type: "Group.Message",
15849
+ obj: result,
15850
+ });
15851
+ }
15852
+ yield this.gnServer.getDatabase().runtimeGameCollection("Group.Message", gameId).deleteMany({ groupId: groupId });
15853
+ this.gnServer.getCacheData().removeData("GroupMessages_" + groupId);
15854
+ }
15855
+ {
15856
+ let groupInventories = group.getAllGroupInventories();
15857
+ for (let i = 0; i < groupInventories.length; i++) {
15858
+ let groupInventory = groupInventories[i];
15859
+ let inventory = yield this.gnServer.getDatabase().loadInventoryAsync(groupInventory.itemId, gameId);
15860
+ if (inventory != null) {
15861
+ let results = yield this.deleteInventory(inventory, gameId);
15862
+ answer.push(...results);
15863
+ }
15864
+ }
15865
+ this.gnServer.getDatabase().systemGameCollection("Inventory", gameId).deleteMany({ "owner.id": groupId });
15866
+ }
15867
+ {
15868
+ let currencyLogCollection = this.gnServer.getDatabase().runtimeGameCollection("Group.CurrencyLog", gameId);
15869
+ let results = yield currencyLogCollection.find({ groupId: groupId });
15870
+ while (yield results.hasNext()) {
15871
+ let result = yield results.next();
15872
+ answer.push({
15873
+ type: "Group.CurrencyLog",
15874
+ obj: result,
15875
+ });
15876
+ }
15877
+ currencyLogCollection.deleteMany({ groupId: groupId });
15878
+ }
15879
+ {
15880
+ let statisticsLogCollection = this.gnServer.getDatabase().runtimeGameCollection("Group.StatisticsLog", gameId);
15881
+ let results = yield statisticsLogCollection.find({ groupId: groupId });
15882
+ while (yield results.hasNext()) {
15883
+ let result = yield results.next();
15884
+ answer.push({
15885
+ type: "Group.StatisticsLog",
15886
+ obj: result,
15887
+ });
15888
+ }
15889
+ statisticsLogCollection.deleteMany({ groupId: groupId });
15890
+ }
15891
+ {
15892
+ let backupStatisticsCollection = this.gnServer.getDatabase().runtimeGameCollection("Group.StatisticsBackup", gameId);
15893
+ let results = yield backupStatisticsCollection.find({});
15894
+ while (yield results.hasNext()) {
15895
+ let result = yield results.next();
15896
+ let backupResults = result.results;
15897
+ let backupResult = backupResults.find(x => x.groupId == groupId);
15898
+ if (backupResult != null) {
15899
+ backupResults.splice(backupResult.position, 1);
15900
+ for (let i = backupResult.position; i < backupResults.length; i++) {
15901
+ backupResults[i].position -= 1;
15902
+ }
15903
+ backupStatisticsCollection.updateOne({ _id: result._id }, { $set: { results: backupResults } });
15904
+ answer.push({
15905
+ type: "Group.StatisticsBackup",
15906
+ obj: {
15907
+ key: result.key,
15908
+ version: result.version,
15909
+ result: backupResult
15910
+ },
15911
+ });
15912
+ }
15913
+ }
15914
+ }
15915
+ {
15916
+ let backupStoreLogCollection = this.gnServer.getDatabase().runtimeGameCollection("StoreInventory.StoreLog", gameId);
15917
+ let results = yield backupStoreLogCollection.find({ id: groupId });
15918
+ while (yield results.hasNext()) {
15919
+ let result = yield results.next();
15920
+ answer.push({
15921
+ type: "StoreInventory.StoreLog",
15922
+ obj: result,
15923
+ });
15924
+ }
15925
+ backupStoreLogCollection.deleteMany({ id: groupId });
15926
+ }
15927
+ return answer;
15928
+ });
15929
+ }
15930
+ deleteFriendPlayerInGamePlayer(gamePlayer, gameId, friendPlayer) {
15931
+ return __awaiter(this, void 0, void 0, function* () {
15932
+ let answer = [];
15933
+ let userId = gamePlayer.getUserId();
15934
+ answer.push({
15935
+ type: "GamePlayer.Friend",
15936
+ obj: {
15937
+ friendId: userId,
15938
+ }
15939
+ });
15940
+ friendPlayer.removePlayerFriend(userId);
15941
+ return answer;
15942
+ });
15943
+ }
15944
+ deleteFriendPlayerInCharacterPlayer(characterPlayer, gameId, friendPlayer) {
15945
+ return __awaiter(this, void 0, void 0, function* () {
15946
+ let answer = [];
15947
+ let characterId = characterPlayer.getCharacterId();
15948
+ answer.push({
15949
+ type: "CharacterPlayer.Friend",
15950
+ obj: {
15951
+ friendId: characterId,
15952
+ }
15953
+ });
15954
+ friendPlayer.removePlayerFriend(characterId);
15955
+ return answer;
15956
+ });
15957
+ }
15958
+ deleteGroupInGamePlayer(gamePlayer, gameId, group) {
15959
+ return __awaiter(this, void 0, void 0, function* () {
15960
+ let answer = [];
15961
+ let userId = gamePlayer.getUserId();
15962
+ group.removeMember(userId);
15963
+ let groupId = group.getGroupId();
15964
+ this.gnServer.getCacheData().removeData("GroupMessages_" + groupId);
15965
+ answer.push({
15966
+ type: "GamePlayer.Group",
15967
+ obj: {
15968
+ groupId: groupId,
15969
+ }
15970
+ });
15971
+ return answer;
15972
+ });
15973
+ }
15974
+ deleteGroupInCharacterPlayer(characterPlayer, gameId, group) {
15975
+ return __awaiter(this, void 0, void 0, function* () {
15976
+ let answer = [];
15977
+ let characterId = characterPlayer.getCharacterId();
15978
+ group.removeMember(characterId);
15979
+ let groupId = group.getGroupId();
15980
+ this.gnServer.getCacheData().removeData("GroupMessages_" + groupId);
15981
+ answer.push({
15982
+ type: "CharacterPlayer.Member",
15983
+ obj: {
15984
+ groupId: groupId,
15985
+ }
15986
+ });
15987
+ return answer;
15988
+ });
15989
+ }
15990
+ }
15991
+ exports.DeleteInDatabaseRequestHandler = DeleteInDatabaseRequestHandler;
15992
+
15993
+
15222
15994
  /***/ }),
15223
15995
 
15224
15996
  /***/ 66888:
@@ -15611,21 +16383,21 @@ class GetBackupStatisticsLeaderboardVersionRequestHandler extends RequestHandler
15611
16383
  let type = request.type;
15612
16384
  let backupStatisticsLeaderboardCollection;
15613
16385
  if (type == OwnerType_1.OwnerType.MasterPlayer) {
15614
- backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().systemCollection("MasterPlayer.StatisticsBackup");
16386
+ backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().runtimeCollection("MasterPlayer.StatisticsBackup");
15615
16387
  }
15616
16388
  else {
15617
16389
  let gameId = request.gameId;
15618
16390
  if (type == OwnerType_1.OwnerType.GamePlayer) {
15619
- backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().systemGameCollection("GamePlayer.StatisticsBackup", gameId);
16391
+ backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().runtimeGameCollection("GamePlayer.StatisticsBackup", gameId);
15620
16392
  }
15621
16393
  else if (type == OwnerType_1.OwnerType.CharacterPlayer) {
15622
- backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().systemGameCollection("CharacterPlayer.StatisticsBackup", gameId);
16394
+ backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().runtimeGameCollection("CharacterPlayer.StatisticsBackup", gameId);
15623
16395
  }
15624
16396
  else if (type == OwnerType_1.OwnerType.Inventory) {
15625
- backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().systemGameCollection("Inventory.StatisticsBackup", gameId);
16397
+ backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().runtimeGameCollection("Inventory.StatisticsBackup", gameId);
15626
16398
  }
15627
16399
  else if (type == OwnerType_1.OwnerType.Group) {
15628
- backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().systemGameCollection("Group.StatisticsBackup", gameId);
16400
+ backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().runtimeGameCollection("Group.StatisticsBackup", gameId);
15629
16401
  }
15630
16402
  else {
15631
16403
  operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.OwnerNotFound);
@@ -18260,6 +19032,23 @@ class GetSecretInfoInformationRequestHandler extends RequestHandler_1.RequestHan
18260
19032
  gnPermissionRules.add(GNParameterCode_1.GNParameterCode.AdminSelfEnable, permissionRules.adminSelfEnable);
18261
19033
  gnGamePlayer.add(GNParameterCode_1.GNParameterCode.GetCreateLeaderboard, gnPermissionRules);
18262
19034
  }
19035
+ {
19036
+ let permissionRules = gamePlayer.getLastLoginLeaderboard;
19037
+ if (permissionRules == null) {
19038
+ permissionRules = {
19039
+ selfEnable: false,
19040
+ otherSelfEnable: false,
19041
+ serverSelfEnable: false,
19042
+ adminSelfEnable: false,
19043
+ };
19044
+ }
19045
+ let gnPermissionRules = new GNData_1.GNHashtable();
19046
+ gnPermissionRules.add(GNParameterCode_1.GNParameterCode.SelfEnable, permissionRules.selfEnable);
19047
+ gnPermissionRules.add(GNParameterCode_1.GNParameterCode.OtherSelfEnable, permissionRules.otherSelfEnable);
19048
+ gnPermissionRules.add(GNParameterCode_1.GNParameterCode.ServerSelfEnable, permissionRules.serverSelfEnable);
19049
+ gnPermissionRules.add(GNParameterCode_1.GNParameterCode.AdminSelfEnable, permissionRules.adminSelfEnable);
19050
+ gnGamePlayer.add(GNParameterCode_1.GNParameterCode.GetLastLoginLeaderboard, gnPermissionRules);
19051
+ }
18263
19052
  {
18264
19053
  let permissionRules = gamePlayer.getStatisticsLog;
18265
19054
  let gnPermissionRules = new GNData_1.GNHashtable();
@@ -19829,6 +20618,23 @@ class GetSecretInfoInformationRequestHandler extends RequestHandler_1.RequestHan
19829
20618
  gnPermissionRules.add(GNParameterCode_1.GNParameterCode.AdminSelfEnable, permissionRules.adminSelfEnable);
19830
20619
  gnMasterAdmin.add(GNParameterCode_1.GNParameterCode.GetServerGameData, gnPermissionRules);
19831
20620
  }
20621
+ {
20622
+ let permissionRules = masterAdmin.deleteInDatabase;
20623
+ if (permissionRules == null) {
20624
+ permissionRules = {
20625
+ selfEnable: false,
20626
+ otherSelfEnable: false,
20627
+ serverSelfEnable: false,
20628
+ adminSelfEnable: false,
20629
+ };
20630
+ }
20631
+ let gnPermissionRules = new GNData_1.GNHashtable();
20632
+ gnPermissionRules.add(GNParameterCode_1.GNParameterCode.SelfEnable, permissionRules.selfEnable);
20633
+ gnPermissionRules.add(GNParameterCode_1.GNParameterCode.OtherSelfEnable, permissionRules.otherSelfEnable);
20634
+ gnPermissionRules.add(GNParameterCode_1.GNParameterCode.ServerSelfEnable, permissionRules.serverSelfEnable);
20635
+ gnPermissionRules.add(GNParameterCode_1.GNParameterCode.AdminSelfEnable, permissionRules.adminSelfEnable);
20636
+ gnMasterAdmin.add(GNParameterCode_1.GNParameterCode.ChangePasswordAdminAccount, gnPermissionRules);
20637
+ }
19832
20638
  gnPermission.add(GNParameterCode_1.GNParameterCode.MasterAdmin, gnMasterAdmin);
19833
20639
  }
19834
20640
  {
@@ -21257,6 +22063,7 @@ class GrantSecretInfoRequestHandler extends RequestHandler_1.RequestHandler {
21257
22063
  getFriendStatisticsLeaderboard: { selfEnable: selfEnable, otherSelfEnable: otherSelfEnable, adminSelfEnable: adminSelfEnable, serverSelfEnable: serverSelfEnable, },
21258
22064
  getCurrencyLeaderboard: { selfEnable: selfEnable, otherSelfEnable: otherSelfEnable, adminSelfEnable: adminSelfEnable, serverSelfEnable: serverSelfEnable, },
21259
22065
  getCreateLeaderboard: { selfEnable: selfEnable, otherSelfEnable: otherSelfEnable, adminSelfEnable: adminSelfEnable, serverSelfEnable: serverSelfEnable, },
22066
+ getLastLoginLeaderboard: { selfEnable: selfEnable, otherSelfEnable: otherSelfEnable, adminSelfEnable: adminSelfEnable, serverSelfEnable: serverSelfEnable, },
21260
22067
  getStatisticsLog: { selfEnable: selfEnable, otherSelfEnable: otherSelfEnable, adminSelfEnable: adminSelfEnable, serverSelfEnable: serverSelfEnable, },
21261
22068
  getCurrencyLog: { selfEnable: selfEnable, otherSelfEnable: otherSelfEnable, adminSelfEnable: adminSelfEnable, serverSelfEnable: serverSelfEnable, },
21262
22069
  },
@@ -21440,6 +22247,7 @@ class GrantSecretInfoRequestHandler extends RequestHandler_1.RequestHandler {
21440
22247
  resetStatisticsLeaderboard: { selfEnable: selfEnable, otherSelfEnable: otherSelfEnable, adminSelfEnable: adminSelfEnable, serverSelfEnable: serverSelfEnable, },
21441
22248
  getBackupStatisticsLeaderboardVersion: { selfEnable: selfEnable, otherSelfEnable: otherSelfEnable, adminSelfEnable: adminSelfEnable, serverSelfEnable: serverSelfEnable, },
21442
22249
  getServerGameData: { selfEnable: selfEnable, otherSelfEnable: otherSelfEnable, adminSelfEnable: adminSelfEnable, serverSelfEnable: serverSelfEnable, },
22250
+ deleteInDatabase: { selfEnable: selfEnable, otherSelfEnable: otherSelfEnable, adminSelfEnable: adminSelfEnable, serverSelfEnable: serverSelfEnable, },
21443
22251
  },
21444
22252
  multiplayer: {
21445
22253
  cancelAllMatchmakingTicket: { selfEnable: selfEnable, otherSelfEnable: otherSelfEnable, adminSelfEnable: adminSelfEnable, serverSelfEnable: serverSelfEnable, },
@@ -21623,6 +22431,7 @@ class GrantSecretInfoRequestHandler extends RequestHandler_1.RequestHandler {
21623
22431
  getFriendStatisticsLeaderboard: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: true, },
21624
22432
  getCurrencyLeaderboard: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: true, },
21625
22433
  getCreateLeaderboard: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: true, },
22434
+ getLastLoginLeaderboard: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: true, },
21626
22435
  getStatisticsLog: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: true, },
21627
22436
  getCurrencyLog: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: true, },
21628
22437
  },
@@ -21806,6 +22615,7 @@ class GrantSecretInfoRequestHandler extends RequestHandler_1.RequestHandler {
21806
22615
  resetStatisticsLeaderboard: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
21807
22616
  getBackupStatisticsLeaderboardVersion: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
21808
22617
  getServerGameData: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
22618
+ deleteInDatabase: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
21809
22619
  },
21810
22620
  multiplayer: {
21811
22621
  cancelAllMatchmakingTicket: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: true, },
@@ -21989,6 +22799,7 @@ class GrantSecretInfoRequestHandler extends RequestHandler_1.RequestHandler {
21989
22799
  getFriendStatisticsLeaderboard: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: true, serverSelfEnable: false, },
21990
22800
  getCurrencyLeaderboard: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: true, serverSelfEnable: false, },
21991
22801
  getCreateLeaderboard: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: true, serverSelfEnable: false, },
22802
+ getLastLoginLeaderboard: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: true, serverSelfEnable: false, },
21992
22803
  getStatisticsLog: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: true, serverSelfEnable: false, },
21993
22804
  getCurrencyLog: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: true, serverSelfEnable: false, },
21994
22805
  },
@@ -22172,6 +22983,7 @@ class GrantSecretInfoRequestHandler extends RequestHandler_1.RequestHandler {
22172
22983
  resetStatisticsLeaderboard: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: true, serverSelfEnable: false, },
22173
22984
  getBackupStatisticsLeaderboardVersion: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: true, serverSelfEnable: false, },
22174
22985
  getServerGameData: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: true, serverSelfEnable: false, },
22986
+ deleteInDatabase: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
22175
22987
  },
22176
22988
  multiplayer: {
22177
22989
  cancelAllMatchmakingTicket: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: true, serverSelfEnable: false, },
@@ -22356,6 +23168,7 @@ class GrantSecretInfoRequestHandler extends RequestHandler_1.RequestHandler {
22356
23168
  getFriendStatisticsLeaderboard: { selfEnable: true, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
22357
23169
  getCurrencyLeaderboard: { selfEnable: true, otherSelfEnable: true, adminSelfEnable: false, serverSelfEnable: false, },
22358
23170
  getCreateLeaderboard: { selfEnable: true, otherSelfEnable: true, adminSelfEnable: false, serverSelfEnable: false, },
23171
+ getLastLoginLeaderboard: { selfEnable: true, otherSelfEnable: true, adminSelfEnable: false, serverSelfEnable: false, },
22359
23172
  getStatisticsLog: { selfEnable: true, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
22360
23173
  getCurrencyLog: { selfEnable: true, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
22361
23174
  },
@@ -22539,6 +23352,7 @@ class GrantSecretInfoRequestHandler extends RequestHandler_1.RequestHandler {
22539
23352
  resetStatisticsLeaderboard: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
22540
23353
  getBackupStatisticsLeaderboardVersion: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
22541
23354
  getServerGameData: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
23355
+ deleteInDatabase: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
22542
23356
  },
22543
23357
  multiplayer: {
22544
23358
  cancelAllMatchmakingTicket: { selfEnable: true, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
@@ -22882,7 +23696,7 @@ class ResetStatisticsLeaderboardRequestHandler extends RequestHandler_1.RequestH
22882
23696
  let version = request.version;
22883
23697
  let log = request.log;
22884
23698
  if (type == OwnerType_1.OwnerType.MasterPlayer) {
22885
- let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().systemCollection("MasterPlayer.StatisticsBackup");
23699
+ let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().runtimeCollection("MasterPlayer.StatisticsBackup");
22886
23700
  let hasThisVersion = (yield backupStatisticsLeaderboardCollection.countDocuments({ key: key, version: version })) != 0;
22887
23701
  if (hasThisVersion) {
22888
23702
  operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.VersionInvalid);
@@ -22952,7 +23766,7 @@ class ResetStatisticsLeaderboardRequestHandler extends RequestHandler_1.RequestH
22952
23766
  else {
22953
23767
  let gameId = request.gameId;
22954
23768
  if (type == OwnerType_1.OwnerType.GamePlayer) {
22955
- let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().systemGameCollection("GamePlayer.StatisticsBackup", gameId);
23769
+ let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().runtimeGameCollection("GamePlayer.StatisticsBackup", gameId);
22956
23770
  let hasThisVersion = (yield backupStatisticsLeaderboardCollection.countDocuments({ key: key, version: version })) != 0;
22957
23771
  if (hasThisVersion) {
22958
23772
  operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.VersionInvalid);
@@ -23020,7 +23834,7 @@ class ResetStatisticsLeaderboardRequestHandler extends RequestHandler_1.RequestH
23020
23834
  xDebug_1.Debug.log("[GN] ResetStatisticsLeaderboard for key " + key + " at " + gamePlayerCollection.collectionName + " success");
23021
23835
  }
23022
23836
  else if (type == OwnerType_1.OwnerType.CharacterPlayer) {
23023
- let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().systemGameCollection("CharacterPlayer.StatisticsBackup", gameId);
23837
+ let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().runtimeGameCollection("CharacterPlayer.StatisticsBackup", gameId);
23024
23838
  let hasThisVersion = (yield backupStatisticsLeaderboardCollection.countDocuments({ key: key, version: version })) != 0;
23025
23839
  if (hasThisVersion) {
23026
23840
  operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.VersionInvalid);
@@ -23088,7 +23902,7 @@ class ResetStatisticsLeaderboardRequestHandler extends RequestHandler_1.RequestH
23088
23902
  xDebug_1.Debug.log("[GN] ResetStatisticsLeaderboard for key " + key + " at " + characterPlayerCollection.collectionName + " success");
23089
23903
  }
23090
23904
  else if (type == OwnerType_1.OwnerType.Group) {
23091
- let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().systemGameCollection("Group.StatisticsBackup", gameId);
23905
+ let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().runtimeGameCollection("Group.StatisticsBackup", gameId);
23092
23906
  let hasThisVersion = (yield backupStatisticsLeaderboardCollection.countDocuments({ key: key, version: version })) != 0;
23093
23907
  if (hasThisVersion) {
23094
23908
  operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.VersionInvalid);
@@ -23156,7 +23970,7 @@ class ResetStatisticsLeaderboardRequestHandler extends RequestHandler_1.RequestH
23156
23970
  xDebug_1.Debug.log("[GN] ResetStatisticsLeaderboard for key " + key + " at " + groupCollection.collectionName + " success");
23157
23971
  }
23158
23972
  else if (type == OwnerType_1.OwnerType.Inventory) {
23159
- let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().systemGameCollection("Inventory.StatisticsBackup", gameId);
23973
+ let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().runtimeGameCollection("Inventory.StatisticsBackup", gameId);
23160
23974
  let inventorySettings = this.gnServer.getGNSettings().getInventorySettings(gameId);
23161
23975
  let inventoryStatisticsSettingsItem = inventorySettings.inventoryStatisticsSettings.find(x => x.key == key);
23162
23976
  if (inventoryStatisticsSettingsItem == null) {
@@ -23312,6 +24126,11 @@ class SetEventCallbackCloudScriptRequestHandler extends RequestHandler_1.Request
23312
24126
  }
23313
24127
  operationResponse = new OperationResponse_1.OperationResponse(operationRequest.getOperationCode(), operationRequest.getRequestId(), operationRequest.isEncrypted());
23314
24128
  operationResponse.setReturnCode(ReturnCode_1.ReturnCode.Ok);
24129
+ if (request.script.includes("GNNetwork")) {
24130
+ operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.ExecuteError);
24131
+ operationResponse.setParameter(GNParameterCode_1.GNParameterCode.Message, "Can not use keywork GNNetwork on cloudscript");
24132
+ return operationResponse;
24133
+ }
23315
24134
  let response = yield this.gnServer.getEventCallbackCloudScriptService().addCloudScriptFunction(request.eventName, request.script);
23316
24135
  if (response.success) {
23317
24136
  operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.Ok);
@@ -26579,6 +27398,10 @@ __decorate([
26579
27398
  (0, DataMember_1.GNHashtableDataMember)({ code: GNParameterCode_1.GNParameterCode.GetCreateLeaderboard, isOptional: true }),
26580
27399
  __metadata("design:type", PermissionRulesParam_1.PermissionRulesParam)
26581
27400
  ], GamePlayerPermissionRulesParam.prototype, "getCreateLeaderboard", void 0);
27401
+ __decorate([
27402
+ (0, DataMember_1.GNHashtableDataMember)({ code: GNParameterCode_1.GNParameterCode.GetLastLoginLeaderboard, isOptional: true }),
27403
+ __metadata("design:type", PermissionRulesParam_1.PermissionRulesParam)
27404
+ ], GamePlayerPermissionRulesParam.prototype, "getLastLoginLeaderboard", void 0);
26582
27405
  __decorate([
26583
27406
  (0, DataMember_1.GNHashtableDataMember)({ code: GNParameterCode_1.GNParameterCode.GetStatisticsLog, isOptional: true }),
26584
27407
  __metadata("design:type", PermissionRulesParam_1.PermissionRulesParam)
@@ -27391,6 +28214,10 @@ __decorate([
27391
28214
  (0, DataMember_1.GNHashtableDataMember)({ code: GNParameterCode_1.GNParameterCode.GetBackupStatisticsLeaderboardVersion, isOptional: true }),
27392
28215
  __metadata("design:type", PermissionRulesParam_1.PermissionRulesParam)
27393
28216
  ], MasterAdminPermissionRulesParam.prototype, "getBackupStatisticsLeaderboardVersion", void 0);
28217
+ __decorate([
28218
+ (0, DataMember_1.GNHashtableDataMember)({ code: GNParameterCode_1.GNParameterCode.DeleteInDatabase, isOptional: true }),
28219
+ __metadata("design:type", PermissionRulesParam_1.PermissionRulesParam)
28220
+ ], MasterAdminPermissionRulesParam.prototype, "deleteInDatabase", void 0);
27394
28221
 
27395
28222
 
27396
28223
  /***/ }),
@@ -29995,7 +30822,7 @@ __decorate([
29995
30822
  __metadata("design:type", Number)
29996
30823
  ], GetCreateLeaderboardOperationRequest.prototype, "skip", void 0);
29997
30824
  __decorate([
29998
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
30825
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
29999
30826
  __metadata("design:type", Number)
30000
30827
  ], GetCreateLeaderboardOperationRequest.prototype, "limit", void 0);
30001
30828
  __decorate([
@@ -30208,7 +31035,7 @@ __decorate([
30208
31035
  __metadata("design:type", Number)
30209
31036
  ], GetCurrencyLeaderboardOperationRequest.prototype, "skip", void 0);
30210
31037
  __decorate([
30211
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
31038
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
30212
31039
  __metadata("design:type", Number)
30213
31040
  ], GetCurrencyLeaderboardOperationRequest.prototype, "limit", void 0);
30214
31041
  __decorate([
@@ -30424,7 +31251,7 @@ __decorate([
30424
31251
  __metadata("design:type", String)
30425
31252
  ], GetCurrencyLogOperationRequest.prototype, "userId", void 0);
30426
31253
  __decorate([
30427
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
31254
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
30428
31255
  __metadata("design:type", Number)
30429
31256
  ], GetCurrencyLogOperationRequest.prototype, "limit", void 0);
30430
31257
  __decorate([
@@ -30947,7 +31774,7 @@ __decorate([
30947
31774
  __metadata("design:type", Number)
30948
31775
  ], GetFriendStatisticsLeaderboardAroundPlayerOperationRequest.prototype, "skip", void 0);
30949
31776
  __decorate([
30950
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
31777
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
30951
31778
  __metadata("design:type", Number)
30952
31779
  ], GetFriendStatisticsLeaderboardAroundPlayerOperationRequest.prototype, "limit", void 0);
30953
31780
  class ServerGetFriendStatisticsLeaderboardAroundPlayerOperationRequest extends GetFriendStatisticsLeaderboardAroundPlayerOperationRequest {
@@ -31165,7 +31992,7 @@ __decorate([
31165
31992
  __metadata("design:type", Number)
31166
31993
  ], GetFriendStatisticsLeaderboardOperationRequest.prototype, "skip", void 0);
31167
31994
  __decorate([
31168
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
31995
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
31169
31996
  __metadata("design:type", Number)
31170
31997
  ], GetFriendStatisticsLeaderboardOperationRequest.prototype, "limit", void 0);
31171
31998
  class ServerGetFriendStatisticsLeaderboardOperationRequest extends GetFriendStatisticsLeaderboardOperationRequest {
@@ -31563,6 +32390,215 @@ class GetIpAddressCreateRequestHandler extends GamePlayerBaseRequestHandler_1.Ga
31563
32390
  exports.GetIpAddressCreateRequestHandler = GetIpAddressCreateRequestHandler;
31564
32391
 
31565
32392
 
32393
+ /***/ }),
32394
+
32395
+ /***/ 87067:
32396
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
32397
+
32398
+
32399
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
32400
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
32401
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
32402
+ 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;
32403
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
32404
+ };
32405
+ var __metadata = (this && this.__metadata) || function (k, v) {
32406
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
32407
+ };
32408
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
32409
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
32410
+ return new (P || (P = Promise))(function (resolve, reject) {
32411
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
32412
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
32413
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
32414
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32415
+ });
32416
+ };
32417
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
32418
+ exports.GetLastLoginLeaderboardRequestHandler = void 0;
32419
+ const OperationRequest_1 = __webpack_require__(25885);
32420
+ const OperationResponse_1 = __webpack_require__(27623);
32421
+ const OperationCode_1 = __webpack_require__(10675);
32422
+ const ParameterCode_1 = __webpack_require__(35284);
32423
+ const ReturnCode_1 = __webpack_require__(99060);
32424
+ const DataMember_1 = __webpack_require__(42364);
32425
+ const GNParameterCode_1 = __webpack_require__(38343);
32426
+ const GNData_1 = __webpack_require__(67549);
32427
+ const GNErrorCode_1 = __webpack_require__(94559);
32428
+ const GamePlayerBaseRequestHandler_1 = __webpack_require__(67811);
32429
+ const InfoRequestParam_1 = __webpack_require__(68350);
32430
+ const xDatetime_1 = __webpack_require__(21817);
32431
+ class GetLastLoginLeaderboardOperationRequest extends OperationRequest_1.OperationRequest {
32432
+ isValidRequest() {
32433
+ if (!super.isValidRequest())
32434
+ return false;
32435
+ return true;
32436
+ }
32437
+ }
32438
+ __decorate([
32439
+ (0, DataMember_1.GNHashtableDataMember)({ code: GNParameterCode_1.GNParameterCode.InfoRequestParam, mustNonNull: true }),
32440
+ __metadata("design:type", InfoRequestParam_1.InfoRequestParam)
32441
+ ], GetLastLoginLeaderboardOperationRequest.prototype, "infoRequestParam", void 0);
32442
+ __decorate([
32443
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Skip, defaultValue: 0, minValue: 0, mustInt: true, isOptional: true }),
32444
+ __metadata("design:type", Number)
32445
+ ], GetLastLoginLeaderboardOperationRequest.prototype, "skip", void 0);
32446
+ __decorate([
32447
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
32448
+ __metadata("design:type", Number)
32449
+ ], GetLastLoginLeaderboardOperationRequest.prototype, "limit", void 0);
32450
+ __decorate([
32451
+ (0, DataMember_1.BooleanDataMember)({ code: GNParameterCode_1.GNParameterCode.LoadFromCache, defaultValue: true, isOptional: true }),
32452
+ __metadata("design:type", Boolean)
32453
+ ], GetLastLoginLeaderboardOperationRequest.prototype, "loadFromCache", void 0);
32454
+ class ServerGetLastLoginLeaderboardOperationRequest extends GetLastLoginLeaderboardOperationRequest {
32455
+ isValidRequest() {
32456
+ if (!super.isValidRequest())
32457
+ return false;
32458
+ return true;
32459
+ }
32460
+ }
32461
+ class AdminGetLastLoginLeaderboardOperationRequest extends ServerGetLastLoginLeaderboardOperationRequest {
32462
+ isValidRequest() {
32463
+ if (!super.isValidRequest())
32464
+ return false;
32465
+ return true;
32466
+ }
32467
+ }
32468
+ class GetLastLoginLeaderboardRequestHandler extends GamePlayerBaseRequestHandler_1.GamePlayerBaseRequestHandler {
32469
+ getCode() {
32470
+ return OperationCode_1.OperationCode.GetLastLoginLeaderboard;
32471
+ }
32472
+ getCommonOperationRequest() {
32473
+ return GetLastLoginLeaderboardOperationRequest;
32474
+ }
32475
+ handle(authInfo, secretInfo, operationRequest) {
32476
+ return __awaiter(this, void 0, void 0, function* () {
32477
+ let request = this.requestConverterService.createTOperationRequest(operationRequest, this.getCommonOperationRequest());
32478
+ if (!request.isValidRequest()) {
32479
+ return this.newInvalidRequestParameters(request);
32480
+ }
32481
+ if (!secretInfo.getPermission().gamePlayer.getLastLoginLeaderboard.otherSelfEnable) {
32482
+ return this.newOperationNotAllowError(request);
32483
+ }
32484
+ this.generateInfoRequestParamForOther(secretInfo, request.infoRequestParam);
32485
+ return this.execute({
32486
+ skip: request.skip,
32487
+ limit: request.limit,
32488
+ infoRequestParam: request.infoRequestParam,
32489
+ loadFromCache: request.loadFromCache,
32490
+ }, secretInfo, operationRequest);
32491
+ });
32492
+ }
32493
+ serverHandle(secretInfo, operationRequest) {
32494
+ return __awaiter(this, void 0, void 0, function* () {
32495
+ let request = this.requestConverterService.createTOperationRequest(operationRequest, ServerGetLastLoginLeaderboardOperationRequest);
32496
+ if (!request.isValidRequest()) {
32497
+ return this.newInvalidRequestParameters(request);
32498
+ }
32499
+ if (!secretInfo.getPermission().gamePlayer.getLastLoginLeaderboard.serverSelfEnable) {
32500
+ return this.newOperationNotAllowError(request);
32501
+ }
32502
+ this.generateInfoRequestParamForServer(secretInfo, request.infoRequestParam);
32503
+ return this.execute({
32504
+ skip: request.skip,
32505
+ limit: request.limit,
32506
+ infoRequestParam: request.infoRequestParam,
32507
+ loadFromCache: request.loadFromCache,
32508
+ }, secretInfo, operationRequest);
32509
+ });
32510
+ }
32511
+ adminHandle(secretInfo, operationRequest) {
32512
+ return __awaiter(this, void 0, void 0, function* () {
32513
+ let request = this.requestConverterService.createTOperationRequest(operationRequest, AdminGetLastLoginLeaderboardOperationRequest);
32514
+ if (!request.isValidRequest()) {
32515
+ return this.newInvalidRequestParameters(request);
32516
+ }
32517
+ if (!secretInfo.getPermission().gamePlayer.getLastLoginLeaderboard.adminSelfEnable) {
32518
+ return this.newOperationNotAllowError(request);
32519
+ }
32520
+ this.generateInfoRequestParamForAdmin(secretInfo, request.infoRequestParam);
32521
+ return this.execute({
32522
+ skip: request.skip,
32523
+ limit: request.limit,
32524
+ infoRequestParam: request.infoRequestParam,
32525
+ loadFromCache: request.loadFromCache,
32526
+ }, secretInfo, operationRequest);
32527
+ });
32528
+ }
32529
+ execute(request, secretInfo, operationRequest) {
32530
+ return __awaiter(this, void 0, void 0, function* () {
32531
+ let operationResponse = yield this.gnServer.getPreEventCallbackService().onEvent("gamePlayer_GetLastLoginLeaderboard", request, secretInfo, operationRequest);
32532
+ if (operationResponse != null) {
32533
+ return operationResponse;
32534
+ }
32535
+ operationResponse = new OperationResponse_1.OperationResponse(operationRequest.getOperationCode(), operationRequest.getRequestId(), operationRequest.isEncrypted());
32536
+ operationResponse.setReturnCode(ReturnCode_1.ReturnCode.Ok);
32537
+ let gamePlayerFindOptions = this.convertToGamePlayerFindOptions(request.infoRequestParam);
32538
+ let cacheKey = "gamePlayerLastLoginLeaderboard";
32539
+ if (request.loadFromCache) {
32540
+ if (request.skip + request.limit > 100) {
32541
+ request.loadFromCache = false;
32542
+ }
32543
+ }
32544
+ if (request.loadFromCache) {
32545
+ if (!this.gnServer.getCacheData().isValid(cacheKey)) {
32546
+ request.loadFromCache = false;
32547
+ }
32548
+ }
32549
+ let gnResults = new GNData_1.GNArray();
32550
+ let gamePlayers;
32551
+ if (request.loadFromCache) {
32552
+ gamePlayers = this.gnServer.getCacheData().getData(cacheKey);
32553
+ for (let i = request.skip; i < request.skip + request.limit; i++) {
32554
+ if (i >= gamePlayers.length)
32555
+ break;
32556
+ let gamePlayer = gamePlayers[i];
32557
+ let gnResult = new GNData_1.GNHashtable();
32558
+ gnResult.add(GNParameterCode_1.GNParameterCode.Position, i);
32559
+ gnResult.add(GNParameterCode_1.GNParameterCode.UserId, gamePlayer.getUserId());
32560
+ gnResult.add(GNParameterCode_1.GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(gamePlayer, request.infoRequestParam, secretInfo.getGameId()));
32561
+ gnResults.add(gnResult);
32562
+ }
32563
+ }
32564
+ else {
32565
+ if (request.skip + request.limit <= 100) {
32566
+ gamePlayerFindOptions = null;
32567
+ gamePlayers = yield this.gnServer.getDatabase().loadGamePlayersLeaderboardWithLastLoginAsync(0, 100, secretInfo.getGameId(), gamePlayerFindOptions);
32568
+ for (let i = request.skip; i < request.skip + request.limit; i++) {
32569
+ if (i >= gamePlayers.length)
32570
+ break;
32571
+ let gamePlayer = gamePlayers[i];
32572
+ let gnResult = new GNData_1.GNHashtable();
32573
+ gnResult.add(GNParameterCode_1.GNParameterCode.Position, i);
32574
+ gnResult.add(GNParameterCode_1.GNParameterCode.UserId, gamePlayer.getUserId());
32575
+ gnResult.add(GNParameterCode_1.GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(gamePlayer, request.infoRequestParam, secretInfo.getGameId()));
32576
+ gnResults.add(gnResult);
32577
+ }
32578
+ this.gnServer.getCacheData().setData(cacheKey, gamePlayers, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
32579
+ }
32580
+ else {
32581
+ gamePlayers = yield this.gnServer.getDatabase().loadGamePlayersLeaderboardWithLastLoginAsync(request.skip, request.limit, secretInfo.getGameId(), gamePlayerFindOptions);
32582
+ for (let i = 0; i < gamePlayers.length; i++) {
32583
+ let gamePlayer = gamePlayers[i];
32584
+ let gnResult = new GNData_1.GNHashtable();
32585
+ gnResult.add(GNParameterCode_1.GNParameterCode.Position, i + request.skip);
32586
+ gnResult.add(GNParameterCode_1.GNParameterCode.UserId, gamePlayer.getUserId());
32587
+ gnResult.add(GNParameterCode_1.GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(gamePlayer, request.infoRequestParam, secretInfo.getGameId()));
32588
+ gnResults.add(gnResult);
32589
+ }
32590
+ }
32591
+ }
32592
+ operationResponse.setParameter(GNParameterCode_1.GNParameterCode.Results, gnResults);
32593
+ operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.Ok);
32594
+ yield this.gnServer.getPostEventCallbackService().onEvent("gamePlayer_GetLastLoginLeaderboard", request, secretInfo, operationRequest, operationResponse);
32595
+ return operationResponse;
32596
+ });
32597
+ }
32598
+ }
32599
+ exports.GetLastLoginLeaderboardRequestHandler = GetLastLoginLeaderboardRequestHandler;
32600
+
32601
+
31566
32602
  /***/ }),
31567
32603
 
31568
32604
  /***/ 85206:
@@ -33297,7 +34333,7 @@ __decorate([
33297
34333
  __metadata("design:type", Number)
33298
34334
  ], GetPlayersWithDisplayNameOperationRequest.prototype, "skip", void 0);
33299
34335
  __decorate([
33300
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
34336
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
33301
34337
  __metadata("design:type", Number)
33302
34338
  ], GetPlayersWithDisplayNameOperationRequest.prototype, "limit", void 0);
33303
34339
  class ServerGetPlayersWithDisplayNameOperationRequest extends GetPlayersWithDisplayNameOperationRequest {
@@ -33460,7 +34496,7 @@ __decorate([
33460
34496
  __metadata("design:type", Number)
33461
34497
  ], GetPlayersWithSegmentOperationRequest.prototype, "skip", void 0);
33462
34498
  __decorate([
33463
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
34499
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
33464
34500
  __metadata("design:type", Number)
33465
34501
  ], GetPlayersWithSegmentOperationRequest.prototype, "limit", void 0);
33466
34502
  class ServerGetPlayersWithSegmentOperationRequest extends GetPlayersWithSegmentOperationRequest {
@@ -33627,7 +34663,7 @@ __decorate([
33627
34663
  __metadata("design:type", Number)
33628
34664
  ], GetPlayersWithTagOperationRequest.prototype, "skip", void 0);
33629
34665
  __decorate([
33630
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
34666
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
33631
34667
  __metadata("design:type", Number)
33632
34668
  ], GetPlayersWithTagOperationRequest.prototype, "limit", void 0);
33633
34669
  class ServerGetPlayersWithTagOperationRequest extends GetPlayersWithTagOperationRequest {
@@ -33959,7 +34995,7 @@ __decorate([
33959
34995
  __metadata("design:type", Number)
33960
34996
  ], GetStatisticsLeaderboardAroundPlayerOperationRequest.prototype, "skip", void 0);
33961
34997
  __decorate([
33962
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
34998
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
33963
34999
  __metadata("design:type", Number)
33964
35000
  ], GetStatisticsLeaderboardAroundPlayerOperationRequest.prototype, "limit", void 0);
33965
35001
  class ServerGetStatisticsLeaderboardAroundPlayerOperationRequest extends GetStatisticsLeaderboardAroundPlayerOperationRequest {
@@ -34154,7 +35190,7 @@ __decorate([
34154
35190
  __metadata("design:type", Number)
34155
35191
  ], GetStatisticsLeaderboardOperationRequest.prototype, "skip", void 0);
34156
35192
  __decorate([
34157
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
35193
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
34158
35194
  __metadata("design:type", Number)
34159
35195
  ], GetStatisticsLeaderboardOperationRequest.prototype, "limit", void 0);
34160
35196
  __decorate([
@@ -34322,7 +35358,7 @@ class GetStatisticsLeaderboardRequestHandler extends GamePlayerBaseRequestHandle
34322
35358
  }
34323
35359
  else {
34324
35360
  let gameId = secretInfo.getGameId();
34325
- let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().systemGameCollection("GamePlayer.StatisticsBackup", gameId);
35361
+ let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().runtimeGameCollection("GamePlayer.StatisticsBackup", gameId);
34326
35362
  let key = request.key;
34327
35363
  let version = request.version;
34328
35364
  let cacheKey = "gamePlayerStatisticsLeaderboard_" + key + "_" + version;
@@ -34332,7 +35368,7 @@ class GetStatisticsLeaderboardRequestHandler extends GamePlayerBaseRequestHandle
34332
35368
  operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.VersionInvalid);
34333
35369
  return operationResponse;
34334
35370
  }
34335
- this.gnServer.getCacheData().setData(cacheKey, result, xDatetime_1.xDatetime.ONE_DAY_MILLISECOND * 7);
35371
+ this.gnServer.getCacheData().setData(cacheKey, result, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
34336
35372
  }
34337
35373
  let backupData = this.gnServer.getCacheData().getData(cacheKey);
34338
35374
  let gnResults = new GNData_1.GNArray();
@@ -34417,7 +35453,7 @@ __decorate([
34417
35453
  __metadata("design:type", String)
34418
35454
  ], GetStatisticsLogOperationRequest.prototype, "userId", void 0);
34419
35455
  __decorate([
34420
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
35456
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
34421
35457
  __metadata("design:type", Number)
34422
35458
  ], GetStatisticsLogOperationRequest.prototype, "limit", void 0);
34423
35459
  __decorate([
@@ -39919,7 +40955,7 @@ __decorate([
39919
40955
  __metadata("design:type", Number)
39920
40956
  ], GetCreateLeaderboardOperationRequest.prototype, "skip", void 0);
39921
40957
  __decorate([
39922
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
40958
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
39923
40959
  __metadata("design:type", Number)
39924
40960
  ], GetCreateLeaderboardOperationRequest.prototype, "limit", void 0);
39925
40961
  __decorate([
@@ -40126,7 +41162,7 @@ __decorate([
40126
41162
  __metadata("design:type", String)
40127
41163
  ], GetCurrencyLogOperationRequest.prototype, "groupId", void 0);
40128
41164
  __decorate([
40129
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
41165
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
40130
41166
  __metadata("design:type", Number)
40131
41167
  ], GetCurrencyLogOperationRequest.prototype, "limit", void 0);
40132
41168
  __decorate([
@@ -41219,7 +42255,7 @@ __decorate([
41219
42255
  __metadata("design:type", Number)
41220
42256
  ], GetGroupMessageOperationRequest.prototype, "skip", void 0);
41221
42257
  __decorate([
41222
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
42258
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
41223
42259
  __metadata("design:type", Number)
41224
42260
  ], GetGroupMessageOperationRequest.prototype, "limit", void 0);
41225
42261
  class ServerGetGroupMessageOperationRequest extends GetGroupMessageOperationRequest {
@@ -41567,7 +42603,7 @@ __decorate([
41567
42603
  __metadata("design:type", Number)
41568
42604
  ], GetGroupsWithDisplayNameOperationRequest.prototype, "skip", void 0);
41569
42605
  __decorate([
41570
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
42606
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
41571
42607
  __metadata("design:type", Number)
41572
42608
  ], GetGroupsWithDisplayNameOperationRequest.prototype, "limit", void 0);
41573
42609
  class ServerGetGroupsWithDisplayNameOperationRequest extends GetGroupsWithDisplayNameOperationRequest {
@@ -41730,7 +42766,7 @@ __decorate([
41730
42766
  __metadata("design:type", Number)
41731
42767
  ], GetGroupsWithSegmentOperationRequest.prototype, "skip", void 0);
41732
42768
  __decorate([
41733
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
42769
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
41734
42770
  __metadata("design:type", Number)
41735
42771
  ], GetGroupsWithSegmentOperationRequest.prototype, "limit", void 0);
41736
42772
  class ServerGetGroupsWithSegmentOperationRequest extends GetGroupsWithSegmentOperationRequest {
@@ -41897,7 +42933,7 @@ __decorate([
41897
42933
  __metadata("design:type", Number)
41898
42934
  ], GetGroupsWithTagOperationRequest.prototype, "skip", void 0);
41899
42935
  __decorate([
41900
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
42936
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
41901
42937
  __metadata("design:type", Number)
41902
42938
  ], GetGroupsWithTagOperationRequest.prototype, "limit", void 0);
41903
42939
  class ServerGetGroupsWithTagOperationRequest extends GetGroupsWithTagOperationRequest {
@@ -42491,7 +43527,7 @@ __decorate([
42491
43527
  __metadata("design:type", Number)
42492
43528
  ], GetStatisticsLeaderboardAroundGroupOperationRequest.prototype, "skip", void 0);
42493
43529
  __decorate([
42494
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
43530
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
42495
43531
  __metadata("design:type", Number)
42496
43532
  ], GetStatisticsLeaderboardAroundGroupOperationRequest.prototype, "limit", void 0);
42497
43533
  class ServerGetStatisticsLeaderboardAroundGroupOperationRequest extends GetStatisticsLeaderboardAroundGroupOperationRequest {
@@ -42670,7 +43706,7 @@ __decorate([
42670
43706
  __metadata("design:type", Number)
42671
43707
  ], GetStatisticsLeaderboardOperationRequest.prototype, "skip", void 0);
42672
43708
  __decorate([
42673
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
43709
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
42674
43710
  __metadata("design:type", Number)
42675
43711
  ], GetStatisticsLeaderboardOperationRequest.prototype, "limit", void 0);
42676
43712
  __decorate([
@@ -42838,7 +43874,7 @@ class GetStatisticsLeaderboardRequestHandler extends GroupBaseRequestHandler_1.G
42838
43874
  }
42839
43875
  else {
42840
43876
  let gameId = secretInfo.getGameId();
42841
- let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().systemGameCollection("Group.StatisticsBackup", gameId);
43877
+ let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().runtimeGameCollection("Group.StatisticsBackup", gameId);
42842
43878
  let key = request.key;
42843
43879
  let version = request.version;
42844
43880
  let cacheKey = "groupStatisticsLeaderboard_" + key + "_" + version;
@@ -42848,7 +43884,7 @@ class GetStatisticsLeaderboardRequestHandler extends GroupBaseRequestHandler_1.G
42848
43884
  operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.VersionInvalid);
42849
43885
  return operationResponse;
42850
43886
  }
42851
- this.gnServer.getCacheData().setData(cacheKey, result, xDatetime_1.xDatetime.ONE_DAY_MILLISECOND * 7);
43887
+ this.gnServer.getCacheData().setData(cacheKey, result, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
42852
43888
  }
42853
43889
  let backupData = this.gnServer.getCacheData().getData(cacheKey);
42854
43890
  let gnResults = new GNData_1.GNArray();
@@ -42933,7 +43969,7 @@ __decorate([
42933
43969
  __metadata("design:type", String)
42934
43970
  ], GetStatisticsLogOperationRequest.prototype, "groupId", void 0);
42935
43971
  __decorate([
42936
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
43972
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
42937
43973
  __metadata("design:type", Number)
42938
43974
  ], GetStatisticsLogOperationRequest.prototype, "limit", void 0);
42939
43975
  __decorate([
@@ -44106,7 +45142,7 @@ class GroupBaseRequestHandler extends RequestHandler_1.RequestHandler {
44106
45142
  sendGroupMessage(groupId, gameId, groupMessageItem) {
44107
45143
  return __awaiter(this, void 0, void 0, function* () {
44108
45144
  let cacheData = this.gnServer.getCacheData();
44109
- if (!cacheData.hasData("GroupMessages_" + groupId)) {
45145
+ if (!cacheData.isValid("GroupMessages_" + groupId)) {
44110
45146
  cacheData.setData("GroupMessages_" + groupId, yield this.getDatabaseGroupMessage(groupId, gameId), GroupBaseRequestHandler.EXPIRED_CACHE);
44111
45147
  }
44112
45148
  yield this.gnServer.getDatabase().createGroupMessageAsync(groupId, gameId, groupMessageItem.senderId, groupMessageItem.senderType, groupMessageItem.message, groupMessageItem.tsCreate);
@@ -47466,7 +48502,7 @@ __decorate([
47466
48502
  __metadata("design:type", Number)
47467
48503
  ], GetCreateLeaderboardOperationRequest.prototype, "skip", void 0);
47468
48504
  __decorate([
47469
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
48505
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
47470
48506
  __metadata("design:type", Number)
47471
48507
  ], GetCreateLeaderboardOperationRequest.prototype, "limit", void 0);
47472
48508
  __decorate([
@@ -48569,7 +49605,7 @@ __decorate([
48569
49605
  __metadata("design:type", Number)
48570
49606
  ], GetItemsWithDisplayNameOperationRequest.prototype, "skip", void 0);
48571
49607
  __decorate([
48572
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
49608
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
48573
49609
  __metadata("design:type", Number)
48574
49610
  ], GetItemsWithDisplayNameOperationRequest.prototype, "limit", void 0);
48575
49611
  class ServerGetItemsWithDisplayNameOperationRequest extends GetItemsWithDisplayNameOperationRequest {
@@ -48732,7 +49768,7 @@ __decorate([
48732
49768
  __metadata("design:type", Number)
48733
49769
  ], GetItemsWithSegmentOperationRequest.prototype, "skip", void 0);
48734
49770
  __decorate([
48735
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
49771
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
48736
49772
  __metadata("design:type", Number)
48737
49773
  ], GetItemsWithSegmentOperationRequest.prototype, "limit", void 0);
48738
49774
  class ServerGetItemsWithSegmentOperationRequest extends GetItemsWithSegmentOperationRequest {
@@ -48899,7 +49935,7 @@ __decorate([
48899
49935
  __metadata("design:type", Number)
48900
49936
  ], GetItemsWithTagOperationRequest.prototype, "skip", void 0);
48901
49937
  __decorate([
48902
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
49938
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
48903
49939
  __metadata("design:type", Number)
48904
49940
  ], GetItemsWithTagOperationRequest.prototype, "limit", void 0);
48905
49941
  class ServerGetItemsWithTagOperationRequest extends GetItemsWithTagOperationRequest {
@@ -49493,7 +50529,7 @@ __decorate([
49493
50529
  __metadata("design:type", Number)
49494
50530
  ], GetStatisticsLeaderboardAroundItemOperationRequest.prototype, "skip", void 0);
49495
50531
  __decorate([
49496
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
50532
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
49497
50533
  __metadata("design:type", Number)
49498
50534
  ], GetStatisticsLeaderboardAroundItemOperationRequest.prototype, "limit", void 0);
49499
50535
  class ServerGetStatisticsLeaderboardAroundItemOperationRequest extends GetStatisticsLeaderboardAroundItemOperationRequest {
@@ -49672,7 +50708,7 @@ __decorate([
49672
50708
  __metadata("design:type", Number)
49673
50709
  ], GetStatisticsLeaderboardOperationRequest.prototype, "skip", void 0);
49674
50710
  __decorate([
49675
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
50711
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
49676
50712
  __metadata("design:type", Number)
49677
50713
  ], GetStatisticsLeaderboardOperationRequest.prototype, "limit", void 0);
49678
50714
  __decorate([
@@ -49840,7 +50876,7 @@ class GetStatisticsLeaderboardRequestHandler extends ItemBaseRequestHandler_1.It
49840
50876
  }
49841
50877
  else {
49842
50878
  let gameId = secretInfo.getGameId();
49843
- let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().systemGameCollection("Group.StatisticsBackup", gameId);
50879
+ let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().runtimeGameCollection("Group.StatisticsBackup", gameId);
49844
50880
  let key = request.key;
49845
50881
  let version = request.version;
49846
50882
  let cacheKey = "inventoryStatisticsLeaderboard_" + key + "_" + version;
@@ -49850,7 +50886,7 @@ class GetStatisticsLeaderboardRequestHandler extends ItemBaseRequestHandler_1.It
49850
50886
  operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.VersionInvalid);
49851
50887
  return operationResponse;
49852
50888
  }
49853
- this.gnServer.getCacheData().setData(cacheKey, result, xDatetime_1.xDatetime.ONE_DAY_MILLISECOND * 7);
50889
+ this.gnServer.getCacheData().setData(cacheKey, result, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
49854
50890
  }
49855
50891
  let backupData = this.gnServer.getCacheData().getData(cacheKey);
49856
50892
  let gnResults = new GNData_1.GNArray();
@@ -49935,7 +50971,7 @@ __decorate([
49935
50971
  __metadata("design:type", String)
49936
50972
  ], GetStatisticsLogOperationRequest.prototype, "itemId", void 0);
49937
50973
  __decorate([
49938
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
50974
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
49939
50975
  __metadata("design:type", Number)
49940
50976
  ], GetStatisticsLogOperationRequest.prototype, "limit", void 0);
49941
50977
  __decorate([
@@ -53783,7 +54819,7 @@ __decorate([
53783
54819
  __metadata("design:type", Number)
53784
54820
  ], GetCreateLeaderboardOperationRequest.prototype, "skip", void 0);
53785
54821
  __decorate([
53786
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
54822
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
53787
54823
  __metadata("design:type", Number)
53788
54824
  ], GetCreateLeaderboardOperationRequest.prototype, "limit", void 0);
53789
54825
  __decorate([
@@ -53996,7 +55032,7 @@ __decorate([
53996
55032
  __metadata("design:type", Number)
53997
55033
  ], GetCurrencyLeaderboardOperationRequest.prototype, "skip", void 0);
53998
55034
  __decorate([
53999
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
55035
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
54000
55036
  __metadata("design:type", Number)
54001
55037
  ], GetCurrencyLeaderboardOperationRequest.prototype, "limit", void 0);
54002
55038
  __decorate([
@@ -54212,7 +55248,7 @@ __decorate([
54212
55248
  __metadata("design:type", String)
54213
55249
  ], GetCurrencyLogOperationRequest.prototype, "userId", void 0);
54214
55250
  __decorate([
54215
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
55251
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
54216
55252
  __metadata("design:type", Number)
54217
55253
  ], GetCurrencyLogOperationRequest.prototype, "limit", void 0);
54218
55254
  __decorate([
@@ -55190,7 +56226,7 @@ __decorate([
55190
56226
  __metadata("design:type", Number)
55191
56227
  ], GetLastLoginLeaderboardOperationRequest.prototype, "skip", void 0);
55192
56228
  __decorate([
55193
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
56229
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
55194
56230
  __metadata("design:type", Number)
55195
56231
  ], GetLastLoginLeaderboardOperationRequest.prototype, "limit", void 0);
55196
56232
  __decorate([
@@ -56359,7 +57395,7 @@ __decorate([
56359
57395
  __metadata("design:type", Number)
56360
57396
  ], GetPlayersWithDisplayNameOperationRequest.prototype, "skip", void 0);
56361
57397
  __decorate([
56362
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
57398
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
56363
57399
  __metadata("design:type", Number)
56364
57400
  ], GetPlayersWithDisplayNameOperationRequest.prototype, "limit", void 0);
56365
57401
  class ServerGetPlayersWithDisplayNameOperationRequest extends GetPlayersWithDisplayNameOperationRequest {
@@ -57289,7 +58325,7 @@ __decorate([
57289
58325
  __metadata("design:type", Number)
57290
58326
  ], GetPlayersWithSegmentOperationRequest.prototype, "skip", void 0);
57291
58327
  __decorate([
57292
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
58328
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
57293
58329
  __metadata("design:type", Number)
57294
58330
  ], GetPlayersWithSegmentOperationRequest.prototype, "limit", void 0);
57295
58331
  class ServerGetPlayersWithSegmentOperationRequest extends GetPlayersWithSegmentOperationRequest {
@@ -57456,7 +58492,7 @@ __decorate([
57456
58492
  __metadata("design:type", Number)
57457
58493
  ], GetPlayersWithTagOperationRequest.prototype, "skip", void 0);
57458
58494
  __decorate([
57459
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
58495
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
57460
58496
  __metadata("design:type", Number)
57461
58497
  ], GetPlayersWithTagOperationRequest.prototype, "limit", void 0);
57462
58498
  class ServerGetPlayersWithTagOperationRequest extends GetPlayersWithTagOperationRequest {
@@ -57943,7 +58979,7 @@ __decorate([
57943
58979
  __metadata("design:type", Number)
57944
58980
  ], GetStatisticsLeaderboardAroundPlayerOperationRequest.prototype, "skip", void 0);
57945
58981
  __decorate([
57946
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
58982
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
57947
58983
  __metadata("design:type", Number)
57948
58984
  ], GetStatisticsLeaderboardAroundPlayerOperationRequest.prototype, "limit", void 0);
57949
58985
  class ServerGetStatisticsLeaderboardAroundPlayerOperationRequest extends GetStatisticsLeaderboardAroundPlayerOperationRequest {
@@ -58138,7 +59174,7 @@ __decorate([
58138
59174
  __metadata("design:type", Number)
58139
59175
  ], GetStatisticsLeaderboardOperationRequest.prototype, "skip", void 0);
58140
59176
  __decorate([
58141
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
59177
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
58142
59178
  __metadata("design:type", Number)
58143
59179
  ], GetStatisticsLeaderboardOperationRequest.prototype, "limit", void 0);
58144
59180
  __decorate([
@@ -58305,7 +59341,7 @@ class GetStatisticsLeaderboardRequestHandler extends MasterPlayerBaseRequestHand
58305
59341
  operationResponse.setParameter(GNParameterCode_1.GNParameterCode.Results, gnResults);
58306
59342
  }
58307
59343
  else {
58308
- let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().systemCollection("MasterPlayer.StatisticsBackup");
59344
+ let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().runtimeCollection("MasterPlayer.StatisticsBackup");
58309
59345
  let key = request.key;
58310
59346
  let version = request.version;
58311
59347
  let cacheKey = "masterPlayerStatisticsLeaderboard_" + key + "_" + version;
@@ -58315,7 +59351,7 @@ class GetStatisticsLeaderboardRequestHandler extends MasterPlayerBaseRequestHand
58315
59351
  operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.VersionInvalid);
58316
59352
  return operationResponse;
58317
59353
  }
58318
- this.gnServer.getCacheData().setData(cacheKey, result, xDatetime_1.xDatetime.ONE_DAY_MILLISECOND * 7);
59354
+ this.gnServer.getCacheData().setData(cacheKey, result, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
58319
59355
  }
58320
59356
  let backupData = this.gnServer.getCacheData().getData(cacheKey);
58321
59357
  let gnResults = new GNData_1.GNArray();
@@ -58400,7 +59436,7 @@ __decorate([
58400
59436
  __metadata("design:type", String)
58401
59437
  ], GetStatisticsLogOperationRequest.prototype, "userId", void 0);
58402
59438
  __decorate([
58403
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
59439
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
58404
59440
  __metadata("design:type", Number)
58405
59441
  ], GetStatisticsLogOperationRequest.prototype, "limit", void 0);
58406
59442
  __decorate([
@@ -69453,7 +70489,7 @@ __decorate([
69453
70489
  __metadata("design:type", Number)
69454
70490
  ], GetAllMatchOperationRequest.prototype, "skip", void 0);
69455
70491
  __decorate([
69456
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
70492
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
69457
70493
  __metadata("design:type", Number)
69458
70494
  ], GetAllMatchOperationRequest.prototype, "limit", void 0);
69459
70495
  class ServerGetAllMatchOperationRequest extends GetAllMatchOperationRequest {
@@ -69656,7 +70692,7 @@ __decorate([
69656
70692
  __metadata("design:type", Number)
69657
70693
  ], GetAllMatchmakingTicketOperationRequest.prototype, "skip", void 0);
69658
70694
  __decorate([
69659
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
70695
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
69660
70696
  __metadata("design:type", Number)
69661
70697
  ], GetAllMatchmakingTicketOperationRequest.prototype, "limit", void 0);
69662
70698
  class ServerGetAllMatchmakingTicketOperationRequest extends GetAllMatchmakingTicketOperationRequest {
@@ -72205,7 +73241,7 @@ __decorate([
72205
73241
  __metadata("design:type", Number)
72206
73242
  ], GetCreateLeaderboardOperationRequest.prototype, "skip", void 0);
72207
73243
  __decorate([
72208
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
73244
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
72209
73245
  __metadata("design:type", Number)
72210
73246
  ], GetCreateLeaderboardOperationRequest.prototype, "limit", void 0);
72211
73247
  __decorate([
@@ -72559,7 +73595,7 @@ __decorate([
72559
73595
  __metadata("design:type", Number)
72560
73596
  ], GetStoreItemsWithTagOperationRequest.prototype, "skip", void 0);
72561
73597
  __decorate([
72562
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
73598
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
72563
73599
  __metadata("design:type", Number)
72564
73600
  ], GetStoreItemsWithTagOperationRequest.prototype, "limit", void 0);
72565
73601
  class ServerGetStoreItemsWithTagOperationRequest extends GetStoreItemsWithTagOperationRequest {
@@ -72721,7 +73757,7 @@ __decorate([
72721
73757
  __metadata("design:type", String)
72722
73758
  ], GetStoreLogOperationRequest.prototype, "id", void 0);
72723
73759
  __decorate([
72724
- (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 5, maxValue: 100, mustInt: true, isOptional: true }),
73760
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
72725
73761
  __metadata("design:type", Number)
72726
73762
  ], GetStoreLogOperationRequest.prototype, "limit", void 0);
72727
73763
  __decorate([
@@ -76309,23 +77345,35 @@ class AppleService {
76309
77345
  this.keyId = request.keyId;
76310
77346
  this.p8Content = request.p8Content;
76311
77347
  }
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) => {
77348
+ getSigningKey(header) {
77349
+ return new Promise((resolve, reject) => {
77350
+ if (!header.kid) {
77351
+ return reject(new Error("No KID in token header"));
77352
+ }
77353
+ this.client.getSigningKey(header.kid, (err, key) => {
76322
77354
  if (err) {
76323
- reject({ "error": err.message });
76324
- }
76325
- else {
76326
- resolve(decoded);
77355
+ return reject(err);
76327
77356
  }
76328
- }));
77357
+ const signingKey = key.getPublicKey(); // hoặc key.rsaPublicKey
77358
+ resolve(signingKey);
77359
+ });
77360
+ });
77361
+ }
77362
+ verifyToken(token) {
77363
+ return __awaiter(this, void 0, void 0, function* () {
77364
+ var _a;
77365
+ try {
77366
+ const signingKey = yield this.getSigningKey((_a = jsonwebtoken_1.default.decode(token, { complete: true })) === null || _a === void 0 ? void 0 : _a.header);
77367
+ return new Promise((resolve, reject) => jsonwebtoken_1.default.verify(token, signingKey, (err, decoded) => {
77368
+ if (err) {
77369
+ return reject({ error: err.message });
77370
+ }
77371
+ return resolve(decoded);
77372
+ }));
77373
+ }
77374
+ catch (error) {
77375
+ return { error: error.message };
77376
+ }
76329
77377
  });
76330
77378
  }
76331
77379
  verifyAppleToken(token) {
@@ -80184,6 +81232,7 @@ OperationCode.SetEventCallbackCloudScript = -22;
80184
81232
  OperationCode.ResetStatisticsLeaderboard = -23;
80185
81233
  OperationCode.GetBackupStatisticsLeaderboardVersion = -24;
80186
81234
  OperationCode.GetServerGameData = -25;
81235
+ OperationCode.DeleteInDatabase = -26;
80187
81236
  OperationCode.LoginByAccount = 1;
80188
81237
  OperationCode.LoginByAndroidDeviceId = 2;
80189
81238
  OperationCode.LoginByApple = 3;
@@ -81228,6 +82277,7 @@ GNParameterCode.Index = "index";
81228
82277
  GNParameterCode.ResetStatisticsLeaderboard = "resetStatisticsLeaderboard";
81229
82278
  GNParameterCode.GetBackupStatisticsLeaderboardVersion = "getBackupStatisticsLeaderboardVersion";
81230
82279
  GNParameterCode.GetServerGameData = "getServerGameData";
82280
+ GNParameterCode.DeleteInDatabase = "deleteInDatabase";
81231
82281
  GNParameterCode.MasterPlayerCount = "masterPlayerCount";
81232
82282
  GNParameterCode.GamePlayerCount = "gamePlayerCount";
81233
82283
  GNParameterCode.CharacterPlayerCount = "characterPlayerCount";
@@ -83881,6 +84931,7 @@ class MongoObject {
83881
84931
  constructor(result, collection) {
83882
84932
  this.collection = collection;
83883
84933
  this._id = result[MongoObject.__id];
84934
+ this.originResult = result;
83884
84935
  }
83885
84936
  inc(field, value) {
83886
84937
  if (this.updateFilter == null)
@@ -83967,6 +85018,9 @@ class MongoObject {
83967
85018
  getObjectId() {
83968
85019
  return this._id;
83969
85020
  }
85021
+ getOriginResult() {
85022
+ return this.originResult;
85023
+ }
83970
85024
  saveAsync() {
83971
85025
  return __awaiter(this, void 0, void 0, function* () {
83972
85026
  if (this.updateFilter == null) {
@@ -85542,6 +86596,17 @@ class xDatabase {
85542
86596
  return this.convertToGamePlayers(results, collection);
85543
86597
  });
85544
86598
  }
86599
+ loadGamePlayersLeaderboardWithLastLoginAsync(skip, limit, gameId, gamePlayerFindOptions) {
86600
+ return __awaiter(this, void 0, void 0, function* () {
86601
+ let collection = this.systemGameCollection("GamePlayer", gameId);
86602
+ let $sort = {};
86603
+ $sort["tsLastLogin"] = -1;
86604
+ let results = yield collection.find({}, {
86605
+ projection: this.getFindOptions(gamePlayerFindOptions)
86606
+ }).sort($sort).skip(skip).limit(limit);
86607
+ return this.convertToGamePlayers(results, collection);
86608
+ });
86609
+ }
85545
86610
  loadFriendGamePlayersLeaderboardWithStatisticsAsync(friendIds, gameId, gamePlayerFindOptions) {
85546
86611
  return __awaiter(this, void 0, void 0, function* () {
85547
86612
  let collection = this.systemGameCollection("GamePlayer", gameId);
@@ -87511,7 +88576,7 @@ class ServerApplication extends BuilderBase {
87511
88576
  serverAddress: "127.0.0.1",
87512
88577
  serverPort: this.applicationSettings.getPort(),
87513
88578
  useSsl: false,
87514
- useSocket: true,
88579
+ useSocket: false,
87515
88580
  useHttp: true,
87516
88581
  sendRate: 20,
87517
88582
  reconnectDelay: 5000,
@@ -87554,14 +88619,14 @@ class ServerApplication extends BuilderBase {
87554
88619
  serverAddress: "127.0.0.1",
87555
88620
  serverPort: this.applicationSettings.getPort(),
87556
88621
  useSsl: false,
87557
- useSocket: true,
88622
+ useSocket: false,
87558
88623
  useHttp: true,
87559
88624
  sendRate: 20,
87560
88625
  reconnectDelay: 5000,
87561
88626
  pingInterval: 20000,
87562
88627
  pingTimeout: 20000,
87563
88628
  gnServerSourcePath: "",
87564
- logType: gn_typescript_client_1.LogType.All,
88629
+ logType: gn_typescript_client_1.LogType.Off,
87565
88630
  adminSecretKey: secretKey,
87566
88631
  serverSecretKey: secretKey,
87567
88632
  clientSecretKey: secretKey,
@@ -87616,6 +88681,116 @@ class ServerApplication extends BuilderBase {
87616
88681
  let userId = StringUtility_1.StringUtility.generateRandomString(10, 0);
87617
88682
  {
87618
88683
  let permission = GrantSecretInfoRequestHandler_1.GrantSecretInfoRequestHandler.generateDefaultPermission(true, true, true, true);
88684
+ {
88685
+ permission.masterAdmin.setMasterGameSettings = {
88686
+ selfEnable: false,
88687
+ adminSelfEnable: false,
88688
+ otherSelfEnable: false,
88689
+ serverSelfEnable: false,
88690
+ };
88691
+ permission.masterAdmin.grantAdminAccount = {
88692
+ selfEnable: false,
88693
+ adminSelfEnable: false,
88694
+ otherSelfEnable: false,
88695
+ serverSelfEnable: false,
88696
+ };
88697
+ permission.masterAdmin.removeAdminAccount = {
88698
+ selfEnable: false,
88699
+ adminSelfEnable: false,
88700
+ otherSelfEnable: false,
88701
+ serverSelfEnable: false,
88702
+ };
88703
+ permission.masterAdmin.setPasswordAdminAccount = {
88704
+ selfEnable: false,
88705
+ adminSelfEnable: false,
88706
+ otherSelfEnable: false,
88707
+ serverSelfEnable: false,
88708
+ };
88709
+ permission.masterAdmin.setSecretKeyAdminAccount = {
88710
+ selfEnable: false,
88711
+ adminSelfEnable: false,
88712
+ otherSelfEnable: false,
88713
+ serverSelfEnable: false,
88714
+ };
88715
+ permission.masterAdmin.setGameInformation = {
88716
+ selfEnable: false,
88717
+ adminSelfEnable: false,
88718
+ otherSelfEnable: false,
88719
+ serverSelfEnable: false,
88720
+ };
88721
+ permission.masterAdmin.grantGame = {
88722
+ selfEnable: false,
88723
+ adminSelfEnable: false,
88724
+ otherSelfEnable: false,
88725
+ serverSelfEnable: false,
88726
+ };
88727
+ permission.masterAdmin.changePasswordAdminAccount = {
88728
+ selfEnable: false,
88729
+ adminSelfEnable: false,
88730
+ otherSelfEnable: false,
88731
+ serverSelfEnable: false,
88732
+ };
88733
+ permission.masterAdmin.getAdminAccountList = {
88734
+ selfEnable: false,
88735
+ adminSelfEnable: false,
88736
+ otherSelfEnable: false,
88737
+ serverSelfEnable: false,
88738
+ };
88739
+ permission.masterAdmin.getGameInformation = {
88740
+ selfEnable: false,
88741
+ adminSelfEnable: false,
88742
+ otherSelfEnable: false,
88743
+ serverSelfEnable: false,
88744
+ };
88745
+ permission.masterAdmin.getGameList = {
88746
+ selfEnable: false,
88747
+ adminSelfEnable: false,
88748
+ otherSelfEnable: false,
88749
+ serverSelfEnable: false,
88750
+ };
88751
+ permission.masterAdmin.getMasterGameSettings = {
88752
+ selfEnable: false,
88753
+ adminSelfEnable: false,
88754
+ otherSelfEnable: false,
88755
+ serverSelfEnable: false,
88756
+ };
88757
+ permission.masterAdmin.getSecretInfoInformation = {
88758
+ selfEnable: false,
88759
+ adminSelfEnable: false,
88760
+ otherSelfEnable: false,
88761
+ serverSelfEnable: false,
88762
+ };
88763
+ permission.masterAdmin.getSecretInfoList = {
88764
+ selfEnable: false,
88765
+ adminSelfEnable: false,
88766
+ otherSelfEnable: false,
88767
+ serverSelfEnable: false,
88768
+ };
88769
+ permission.masterAdmin.grantSecretInfo = {
88770
+ selfEnable: false,
88771
+ adminSelfEnable: false,
88772
+ otherSelfEnable: false,
88773
+ serverSelfEnable: false,
88774
+ };
88775
+ permission.masterAdmin.setSecretInfoInformation = {
88776
+ selfEnable: false,
88777
+ adminSelfEnable: false,
88778
+ otherSelfEnable: false,
88779
+ serverSelfEnable: false,
88780
+ };
88781
+ permission.masterAdmin.getEventCallbackCloudScript = {
88782
+ selfEnable: false,
88783
+ adminSelfEnable: false,
88784
+ otherSelfEnable: false,
88785
+ serverSelfEnable: false,
88786
+ };
88787
+ permission.masterAdmin.setEventCallbackCloudScript = {
88788
+ selfEnable: false,
88789
+ adminSelfEnable: false,
88790
+ otherSelfEnable: false,
88791
+ serverSelfEnable: false,
88792
+ };
88793
+ }
87619
88794
  {
87620
88795
  let newSecretInfo = SecretInfo_1.SecretInfo.Builder()
87621
88796
  .setGameId("")
@@ -87847,7 +89022,7 @@ class ServerApplication extends BuilderBase {
87847
89022
  yield countryRegionCollection.createIndex({ "countryCode": 1 }, { background: true, name: "countryCode_1" });
87848
89023
  }
87849
89024
  {
87850
- let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().systemCollection("MasterPlayer.StatisticsBackup");
89025
+ let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().runtimeCollection("MasterPlayer.StatisticsBackup");
87851
89026
  yield backupStatisticsLeaderboardCollection.createIndex({ "key": 1, "version": 1 }, { background: true, name: "key_1_version_1" });
87852
89027
  }
87853
89028
  {
@@ -90875,7 +92050,9 @@ class UploadFileHandler {
90875
92050
  return this.antiDdosMiddleware.addPendingUploadRequest(req, res, next);
90876
92051
  }), (0, async_middleware_1.wrap)((req, res, next) => {
90877
92052
  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* () {
92053
+ }), (0, async_middleware_1.wrap)((req, res, next) => {
92054
+ return this.uploadFileMiddleware.handleUpload().single(Commands_1.Commands.File)(req, res, next);
92055
+ }), (req, res) => __awaiter(this, void 0, void 0, function* () {
90879
92056
  this.antiDdosMiddleware.removePendingUploadRequest(req, res);
90880
92057
  let file = req.file;
90881
92058
  if (!file) {
@@ -91854,6 +93031,7 @@ const GetPlayersWithDisplayNameRequestHandler_3 = __webpack_require__(85576);
91854
93031
  const GetFriendStatisticsLeaderboardAroundPlayerRequestHandler_2 = __webpack_require__(62627);
91855
93032
  const GetFriendStatisticsLeaderboardRequestHandler_2 = __webpack_require__(28199);
91856
93033
  const GetCurrencyLeaderboardRequestHandler_3 = __webpack_require__(68995);
93034
+ const GetLastLoginLeaderboardRequestHandler_2 = __webpack_require__(87067);
91857
93035
  const GetCreateLeaderboardRequestHandler_3 = __webpack_require__(24886);
91858
93036
  const GetStatisticsLogRequestHandler_3 = __webpack_require__(15210);
91859
93037
  const GetCurrencyLogRequestHandler_3 = __webpack_require__(32982);
@@ -91974,6 +93152,7 @@ const SetEventCallbackCloudScriptRequestHandler_1 = __webpack_require__(86321);
91974
93152
  const ResetStatisticsLeaderboardRequestHandler_1 = __webpack_require__(1097);
91975
93153
  const GetBackupStatisticsLeaderboardVersionRequestHandler_1 = __webpack_require__(54774);
91976
93154
  const GetServerGameDataRequestHandler_1 = __webpack_require__(74923);
93155
+ const DeleteInDatabaseRequestHandler_1 = __webpack_require__(21595);
91977
93156
  const CancelAllMatchmakingTicketRequestHandler_1 = __webpack_require__(63377);
91978
93157
  const CancelMatchmakingTicketRequestHandler_1 = __webpack_require__(99660);
91979
93158
  const CreateMatchmakingTicketRequestHandler_1 = __webpack_require__(20050);
@@ -92254,6 +93433,7 @@ class GNServer {
92254
93433
  this.requestController.addHandler(requestTypeValue, new GetFriendStatisticsLeaderboardAroundPlayerRequestHandler_2.GetFriendStatisticsLeaderboardAroundPlayerRequestHandler(this), true);
92255
93434
  this.requestController.addHandler(requestTypeValue, new GetFriendStatisticsLeaderboardRequestHandler_2.GetFriendStatisticsLeaderboardRequestHandler(this), true);
92256
93435
  this.requestController.addHandler(requestTypeValue, new GetCurrencyLeaderboardRequestHandler_3.GetCurrencyLeaderboardRequestHandler(this), true);
93436
+ this.requestController.addHandler(requestTypeValue, new GetLastLoginLeaderboardRequestHandler_2.GetLastLoginLeaderboardRequestHandler(this), true);
92257
93437
  this.requestController.addHandler(requestTypeValue, new GetCreateLeaderboardRequestHandler_3.GetCreateLeaderboardRequestHandler(this), true);
92258
93438
  this.requestController.addHandler(requestTypeValue, new GetStatisticsLogRequestHandler_3.GetStatisticsLogRequestHandler(this), true);
92259
93439
  this.requestController.addHandler(requestTypeValue, new GetCurrencyLogRequestHandler_3.GetCurrencyLogRequestHandler(this), true);
@@ -92390,6 +93570,7 @@ class GNServer {
92390
93570
  this.requestController.addHandler(requestTypeValue, new ResetStatisticsLeaderboardRequestHandler_1.ResetStatisticsLeaderboardRequestHandler(this), true);
92391
93571
  this.requestController.addHandler(requestTypeValue, new GetBackupStatisticsLeaderboardVersionRequestHandler_1.GetBackupStatisticsLeaderboardVersionRequestHandler(this), true);
92392
93572
  this.requestController.addHandler(requestTypeValue, new GetServerGameDataRequestHandler_1.GetServerGameDataRequestHandler(this), true);
93573
+ this.requestController.addHandler(requestTypeValue, new DeleteInDatabaseRequestHandler_1.DeleteInDatabaseRequestHandler(this), true);
92393
93574
  }
92394
93575
  {
92395
93576
  let requestTypeValue = RequestType_1.RequestType.Multiplayer;