@xmobitea/gn-server 2.4.16 → 2.5.0

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.
Files changed (37) hide show
  1. package/dist/GN-app-api/handler/controller/handler/characterPlayer/GetCreateLeaderboardRequestHandler.d.ts +0 -1
  2. package/dist/GN-app-api/handler/controller/handler/characterPlayer/GetCurrencyLeaderboardRequestHandler.d.ts +0 -1
  3. package/dist/GN-app-api/handler/controller/handler/characterPlayer/GetCurrencyLogRequestHandler.d.ts +0 -1
  4. package/dist/GN-app-api/handler/controller/handler/characterPlayer/GetLastLoginLeaderboardRequestHandler.d.ts +22 -0
  5. package/dist/GN-app-api/handler/controller/handler/characterPlayer/GetStatisticsLeaderboardRequestHandler.d.ts +0 -1
  6. package/dist/GN-app-api/handler/controller/handler/characterPlayer/GetStatisticsLogRequestHandler.d.ts +0 -1
  7. package/dist/GN-app-api/handler/controller/handler/dashboard/model/CharacterPlayerPermissionRulesParam.d.ts +1 -0
  8. package/dist/GN-app-api/handler/controller/handler/dashboard/model/StoreInventoryPermissionRulesParam.d.ts +2 -0
  9. package/dist/GN-app-api/handler/controller/handler/gamePlayer/GetCurrencyLogRequestHandler.d.ts +0 -1
  10. package/dist/GN-app-api/handler/controller/handler/gamePlayer/GetStatisticsLogRequestHandler.d.ts +0 -1
  11. package/dist/GN-app-api/handler/controller/handler/group/GetCurrencyLogRequestHandler.d.ts +0 -1
  12. package/dist/GN-app-api/handler/controller/handler/group/GetStatisticsLogRequestHandler.d.ts +0 -1
  13. package/dist/GN-app-api/handler/controller/handler/inventory/GetStatisticsLogRequestHandler.d.ts +0 -1
  14. package/dist/GN-app-api/handler/controller/handler/masterPlayer/GetCurrencyLogRequestHandler.d.ts +0 -1
  15. package/dist/GN-app-api/handler/controller/handler/masterPlayer/GetStatisticsLogRequestHandler.d.ts +0 -1
  16. package/dist/GN-app-api/handler/controller/handler/storeInventory/GetStoreUsedRequestHandler.d.ts +17 -0
  17. package/dist/GN-app-api/handler/controller/handler/storeInventory/RemoveStoreUsedRequestHandler.d.ts +18 -0
  18. package/dist/GN-app-api/handler/controller/handler/storeInventory/SetStoreItemInformationRequestHandler.d.ts +1 -0
  19. package/dist/GN-app-api/handler/controller/handler/storeInventory/StoreItemBaseRequestHandler.d.ts +1 -0
  20. package/dist/GN-app-api/handler/controller/handler/storeInventory/model/InfoRequestParam.d.ts +1 -0
  21. package/dist/GN-common/constant/OperationCode.d.ts +2 -0
  22. package/dist/GN-common/constant/enumType/StoreItemType.d.ts +4 -0
  23. package/dist/GN-common/constant/errorCode/GNErrorCode.d.ts +2 -0
  24. package/dist/GN-common/constant/parameterCode/GNParameterCode.d.ts +4 -0
  25. package/dist/GN-common/entity/SecretInfo.d.ts +3 -0
  26. package/dist/GN-library/xdatabase/lib/entity/pro/StoreInventory.d.ts +4 -0
  27. package/dist/GN-library/xdatabase/lib/entity/pro/findOptions/StoreInventoryFindOptions.d.ts +1 -0
  28. package/dist/GN-library/xdatabase/lib/xDatabase.d.ts +12 -0
  29. package/dist/GN-startup/cloudScript/eventCallbackCloudScriptData.json +17 -2
  30. package/dist/GN-startup/cloudScript/templateCloudScript.ts +171 -165
  31. package/dist/GN-startup/cloudScript/templateEventCallback.ts +231 -225
  32. package/dist/GN-startup/settings/ApplicationSettings.d.ts +3 -0
  33. package/dist/GNServer.d.ts +4 -2
  34. package/dist/index.d.ts +2 -0
  35. package/dist/index.js +1177 -441
  36. package/gn.sh +2 -2
  37. package/package.json +2 -5
package/dist/index.js CHANGED
@@ -4956,9 +4956,6 @@ class AdminGetCreateLeaderboardOperationRequest extends ServerGetCreateLeaderboa
4956
4956
  }
4957
4957
  }
4958
4958
  class GetCreateLeaderboardRequestHandler extends CharacterPlayerBaseRequestHandler_1.CharacterPlayerBaseRequestHandler {
4959
- init() {
4960
- this.gnServer.getCacheData;
4961
- }
4962
4959
  getCode() {
4963
4960
  return OperationCode_1.OperationCode.GetCreateLeaderboard;
4964
4961
  }
@@ -5034,15 +5031,16 @@ class GetCreateLeaderboardRequestHandler extends CharacterPlayerBaseRequestHandl
5034
5031
  request.loadFromCache = false;
5035
5032
  }
5036
5033
  }
5034
+ let cacheData = this.gnServer.getCacheData(secretInfo.getGameId());
5037
5035
  if (request.loadFromCache) {
5038
- if (!this.gnServer.getCacheData().isValid(cacheKey)) {
5036
+ if (!cacheData.isValid(cacheKey)) {
5039
5037
  request.loadFromCache = false;
5040
5038
  }
5041
5039
  }
5042
5040
  let gnResults = new GNData_1.GNArray();
5043
5041
  let characterPlayers;
5044
5042
  if (request.loadFromCache) {
5045
- characterPlayers = this.gnServer.getCacheData().getData(cacheKey);
5043
+ characterPlayers = cacheData.getData(cacheKey);
5046
5044
  for (let i = request.skip; i < request.skip + request.limit; i++) {
5047
5045
  if (i >= characterPlayers.length)
5048
5046
  break;
@@ -5068,7 +5066,7 @@ class GetCreateLeaderboardRequestHandler extends CharacterPlayerBaseRequestHandl
5068
5066
  gnResult.add(GNParameterCode_1.GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(characterPlayer, request.infoRequestParam, secretInfo.getGameId()));
5069
5067
  gnResults.add(gnResult);
5070
5068
  }
5071
- this.gnServer.getCacheData().setData(cacheKey, characterPlayers, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
5069
+ cacheData.setData(cacheKey, characterPlayers, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
5072
5070
  }
5073
5071
  else {
5074
5072
  characterPlayers = yield this.gnServer.getDatabase().loadCharacterPlayersLeaderboardWithCreateAsync(request.skip, request.limit, secretInfo.getGameId(), characterPlayerFindOptions);
@@ -5176,9 +5174,6 @@ class AdminGetCurrencyLeaderboardOperationRequest extends ServerGetCurrencyLeade
5176
5174
  }
5177
5175
  }
5178
5176
  class GetCurrencyLeaderboardRequestHandler extends CharacterPlayerBaseRequestHandler_1.CharacterPlayerBaseRequestHandler {
5179
- init() {
5180
- this.gnServer.getCacheData;
5181
- }
5182
5177
  getCode() {
5183
5178
  return OperationCode_1.OperationCode.GetCurrencyLeaderboard;
5184
5179
  }
@@ -5267,15 +5262,16 @@ class GetCurrencyLeaderboardRequestHandler extends CharacterPlayerBaseRequestHan
5267
5262
  request.loadFromCache = false;
5268
5263
  }
5269
5264
  }
5265
+ let cacheData = this.gnServer.getCacheData(secretInfo.getGameId());
5270
5266
  if (request.loadFromCache) {
5271
- if (!this.gnServer.getCacheData().isValid(cacheKey)) {
5267
+ if (!cacheData.isValid(cacheKey)) {
5272
5268
  request.loadFromCache = false;
5273
5269
  }
5274
5270
  }
5275
5271
  let gnResults = new GNData_1.GNArray();
5276
5272
  let characterPlayers;
5277
5273
  if (request.loadFromCache) {
5278
- characterPlayers = this.gnServer.getCacheData().getData(cacheKey);
5274
+ characterPlayers = cacheData.getData(cacheKey);
5279
5275
  for (let i = request.skip; i < request.skip + request.limit; i++) {
5280
5276
  if (i >= characterPlayers.length)
5281
5277
  break;
@@ -5302,7 +5298,7 @@ class GetCurrencyLeaderboardRequestHandler extends CharacterPlayerBaseRequestHan
5302
5298
  gnResult.add(GNParameterCode_1.GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(characterPlayer, request.infoRequestParam, secretInfo.getGameId()));
5303
5299
  gnResults.add(gnResult);
5304
5300
  }
5305
- this.gnServer.getCacheData().setData(cacheKey, characterPlayers, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
5301
+ cacheData.setData(cacheKey, characterPlayers, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
5306
5302
  }
5307
5303
  else {
5308
5304
  characterPlayers = yield this.gnServer.getDatabase().loadCharacterPlayersLeaderboardWithCurrenciesAsync(request.key, request.skip, request.limit, request.catalogId, secretInfo.getGameId(), characterPlayerFindOptions);
@@ -5400,9 +5396,6 @@ class AdminGetCurrencyLogOperationRequest extends ServerGetCurrencyLogOperationR
5400
5396
  }
5401
5397
  }
5402
5398
  class GetCurrencyLogRequestHandler extends RequestHandler_1.RequestHandler {
5403
- init() {
5404
- this.gnServer.getCacheData;
5405
- }
5406
5399
  getCode() {
5407
5400
  return OperationCode_1.OperationCode.GetCurrencyLog;
5408
5401
  }
@@ -5975,16 +5968,17 @@ class GetFriendStatisticsLeaderboardAroundPlayerRequestHandler extends Character
5975
5968
  operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.KeyNotFound);
5976
5969
  return operationResponse;
5977
5970
  }
5971
+ let cacheData = this.gnServer.getCacheData(secretInfo.getGameId());
5978
5972
  let cacheKey = "characterPlayerStatisticsLeaderboardFriendAround_" + request.characterId;
5979
5973
  if (request.loadFromCache) {
5980
- if (!this.gnServer.getCacheData().isValid(cacheKey)) {
5974
+ if (!cacheData.isValid(cacheKey)) {
5981
5975
  request.loadFromCache = false;
5982
5976
  }
5983
5977
  }
5984
5978
  let gnResults = new GNData_1.GNArray();
5985
5979
  let characterPlayers;
5986
5980
  if (request.loadFromCache) {
5987
- characterPlayers = this.gnServer.getCacheData().getData(cacheKey);
5981
+ characterPlayers = cacheData.getData(cacheKey);
5988
5982
  }
5989
5983
  else {
5990
5984
  let characterPlayer = yield this.gnServer.getDatabase().loadCharacterPlayerAsync(request.characterId, secretInfo.getGameId(), null);
@@ -6006,7 +6000,7 @@ class GetFriendStatisticsLeaderboardAroundPlayerRequestHandler extends Character
6006
6000
  characterPlayers = statisticsAggregationMethod == xStatisticsAggregationMethod_1.xStatisticsAggregationMethod.Minimum
6007
6001
  ? GetFriendStatisticsLeaderboardRequestHandler_1.GetFriendStatisticsLeaderboardRequestHandler.quickSortAsc(request.key, allCharacterPlayers, playerStatisticsSettingsItem.initialValue)
6008
6002
  : GetFriendStatisticsLeaderboardRequestHandler_1.GetFriendStatisticsLeaderboardRequestHandler.quickSort(request.key, allCharacterPlayers, playerStatisticsSettingsItem.initialValue);
6009
- this.gnServer.getCacheData().setData(cacheKey, characterPlayers, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
6003
+ cacheData.setData(cacheKey, characterPlayers, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
6010
6004
  }
6011
6005
  let characterPlayer = characterPlayers.find(x => x.getCharacterId() == request.characterId);
6012
6006
  let thisPosition = characterPlayers.indexOf(characterPlayer);
@@ -6196,16 +6190,17 @@ class GetFriendStatisticsLeaderboardRequestHandler extends CharacterPlayerBaseRe
6196
6190
  operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.KeyNotFound);
6197
6191
  return operationResponse;
6198
6192
  }
6193
+ let cacheData = this.gnServer.getCacheData(secretInfo.getGameId());
6199
6194
  let cacheKey = "characterPlayerStatisticsLeaderboardFriend_" + request.characterId;
6200
6195
  if (request.loadFromCache) {
6201
- if (!this.gnServer.getCacheData().isValid(cacheKey)) {
6196
+ if (!cacheData.isValid(cacheKey)) {
6202
6197
  request.loadFromCache = false;
6203
6198
  }
6204
6199
  }
6205
6200
  let gnResults = new GNData_1.GNArray();
6206
6201
  let characterPlayers;
6207
6202
  if (request.loadFromCache) {
6208
- characterPlayers = this.gnServer.getCacheData().getData(cacheKey);
6203
+ characterPlayers = cacheData.getData(cacheKey);
6209
6204
  }
6210
6205
  else {
6211
6206
  let characterPlayer = yield this.gnServer.getDatabase().loadCharacterPlayerAsync(request.characterId, secretInfo.getGameId(), null);
@@ -6227,7 +6222,7 @@ class GetFriendStatisticsLeaderboardRequestHandler extends CharacterPlayerBaseRe
6227
6222
  characterPlayers = statisticsAggregationMethod == xStatisticsAggregationMethod_1.xStatisticsAggregationMethod.Minimum
6228
6223
  ? GetFriendStatisticsLeaderboardRequestHandler.quickSortAsc(request.key, allCharacterPlayers, playerStatisticsSettingsItem.initialValue)
6229
6224
  : GetFriendStatisticsLeaderboardRequestHandler.quickSort(request.key, allCharacterPlayers, playerStatisticsSettingsItem.initialValue);
6230
- this.gnServer.getCacheData().setData(cacheKey, characterPlayers, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
6225
+ cacheData.setData(cacheKey, characterPlayers, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
6231
6226
  }
6232
6227
  for (let i = request.skip; i < request.skip + request.limit; i++) {
6233
6228
  if (i >= characterPlayers.length)
@@ -6476,6 +6471,216 @@ class GetIpAddressCreateRequestHandler extends CharacterPlayerBaseRequestHandler
6476
6471
  exports.GetIpAddressCreateRequestHandler = GetIpAddressCreateRequestHandler;
6477
6472
 
6478
6473
 
6474
+ /***/ }),
6475
+
6476
+ /***/ 94192:
6477
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
6478
+
6479
+
6480
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
6481
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
6482
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
6483
+ 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;
6484
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6485
+ };
6486
+ var __metadata = (this && this.__metadata) || function (k, v) {
6487
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
6488
+ };
6489
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
6490
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
6491
+ return new (P || (P = Promise))(function (resolve, reject) {
6492
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6493
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6494
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
6495
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
6496
+ });
6497
+ };
6498
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
6499
+ exports.GetLastLoginLeaderboardRequestHandler = void 0;
6500
+ const OperationRequest_1 = __webpack_require__(25885);
6501
+ const OperationResponse_1 = __webpack_require__(27623);
6502
+ const OperationCode_1 = __webpack_require__(10675);
6503
+ const ParameterCode_1 = __webpack_require__(35284);
6504
+ const ReturnCode_1 = __webpack_require__(99060);
6505
+ const DataMember_1 = __webpack_require__(42364);
6506
+ const GNParameterCode_1 = __webpack_require__(38343);
6507
+ const GNData_1 = __webpack_require__(67549);
6508
+ const GNErrorCode_1 = __webpack_require__(94559);
6509
+ const CharacterPlayerBaseRequestHandler_1 = __webpack_require__(91203);
6510
+ const InfoRequestParam_1 = __webpack_require__(21803);
6511
+ const xDatetime_1 = __webpack_require__(21817);
6512
+ class GetLastLoginLeaderboardOperationRequest extends OperationRequest_1.OperationRequest {
6513
+ isValidRequest() {
6514
+ if (!super.isValidRequest())
6515
+ return false;
6516
+ return true;
6517
+ }
6518
+ }
6519
+ __decorate([
6520
+ (0, DataMember_1.GNHashtableDataMember)({ code: GNParameterCode_1.GNParameterCode.InfoRequestParam, mustNonNull: true }),
6521
+ __metadata("design:type", InfoRequestParam_1.InfoRequestParam)
6522
+ ], GetLastLoginLeaderboardOperationRequest.prototype, "infoRequestParam", void 0);
6523
+ __decorate([
6524
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Skip, defaultValue: 0, minValue: 0, mustInt: true, isOptional: true }),
6525
+ __metadata("design:type", Number)
6526
+ ], GetLastLoginLeaderboardOperationRequest.prototype, "skip", void 0);
6527
+ __decorate([
6528
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.Limit, defaultValue: 10, minValue: 1, maxValue: 100, mustInt: true, isOptional: true }),
6529
+ __metadata("design:type", Number)
6530
+ ], GetLastLoginLeaderboardOperationRequest.prototype, "limit", void 0);
6531
+ __decorate([
6532
+ (0, DataMember_1.BooleanDataMember)({ code: GNParameterCode_1.GNParameterCode.LoadFromCache, defaultValue: true, isOptional: true }),
6533
+ __metadata("design:type", Boolean)
6534
+ ], GetLastLoginLeaderboardOperationRequest.prototype, "loadFromCache", void 0);
6535
+ class ServerGetLastLoginLeaderboardOperationRequest extends GetLastLoginLeaderboardOperationRequest {
6536
+ isValidRequest() {
6537
+ if (!super.isValidRequest())
6538
+ return false;
6539
+ return true;
6540
+ }
6541
+ }
6542
+ class AdminGetLastLoginLeaderboardOperationRequest extends ServerGetLastLoginLeaderboardOperationRequest {
6543
+ isValidRequest() {
6544
+ if (!super.isValidRequest())
6545
+ return false;
6546
+ return true;
6547
+ }
6548
+ }
6549
+ class GetLastLoginLeaderboardRequestHandler extends CharacterPlayerBaseRequestHandler_1.CharacterPlayerBaseRequestHandler {
6550
+ getCode() {
6551
+ return OperationCode_1.OperationCode.GetLastLoginLeaderboard;
6552
+ }
6553
+ getCommonOperationRequest() {
6554
+ return GetLastLoginLeaderboardOperationRequest;
6555
+ }
6556
+ handle(authInfo, secretInfo, operationRequest) {
6557
+ return __awaiter(this, void 0, void 0, function* () {
6558
+ let request = this.requestConverterService.createTOperationRequest(operationRequest, this.getCommonOperationRequest());
6559
+ if (!request.isValidRequest()) {
6560
+ return this.newInvalidRequestParameters(request);
6561
+ }
6562
+ if (!secretInfo.getPermission().characterPlayer.getLastLoginLeaderboard.otherSelfEnable) {
6563
+ return this.newOperationNotAllowError(request);
6564
+ }
6565
+ this.generateInfoRequestParamForOther(secretInfo, request.infoRequestParam);
6566
+ return this.execute({
6567
+ skip: request.skip,
6568
+ limit: request.limit,
6569
+ infoRequestParam: request.infoRequestParam,
6570
+ loadFromCache: request.loadFromCache,
6571
+ }, secretInfo, operationRequest);
6572
+ });
6573
+ }
6574
+ serverHandle(secretInfo, operationRequest) {
6575
+ return __awaiter(this, void 0, void 0, function* () {
6576
+ let request = this.requestConverterService.createTOperationRequest(operationRequest, ServerGetLastLoginLeaderboardOperationRequest);
6577
+ if (!request.isValidRequest()) {
6578
+ return this.newInvalidRequestParameters(request);
6579
+ }
6580
+ if (!secretInfo.getPermission().characterPlayer.getLastLoginLeaderboard.serverSelfEnable) {
6581
+ return this.newOperationNotAllowError(request);
6582
+ }
6583
+ this.generateInfoRequestParamForServer(secretInfo, request.infoRequestParam);
6584
+ return this.execute({
6585
+ skip: request.skip,
6586
+ limit: request.limit,
6587
+ infoRequestParam: request.infoRequestParam,
6588
+ loadFromCache: request.loadFromCache,
6589
+ }, secretInfo, operationRequest);
6590
+ });
6591
+ }
6592
+ adminHandle(secretInfo, operationRequest) {
6593
+ return __awaiter(this, void 0, void 0, function* () {
6594
+ let request = this.requestConverterService.createTOperationRequest(operationRequest, AdminGetLastLoginLeaderboardOperationRequest);
6595
+ if (!request.isValidRequest()) {
6596
+ return this.newInvalidRequestParameters(request);
6597
+ }
6598
+ if (!secretInfo.getPermission().characterPlayer.getLastLoginLeaderboard.adminSelfEnable) {
6599
+ return this.newOperationNotAllowError(request);
6600
+ }
6601
+ this.generateInfoRequestParamForAdmin(secretInfo, request.infoRequestParam);
6602
+ return this.execute({
6603
+ skip: request.skip,
6604
+ limit: request.limit,
6605
+ infoRequestParam: request.infoRequestParam,
6606
+ loadFromCache: request.loadFromCache,
6607
+ }, secretInfo, operationRequest);
6608
+ });
6609
+ }
6610
+ execute(request, secretInfo, operationRequest) {
6611
+ return __awaiter(this, void 0, void 0, function* () {
6612
+ let operationResponse = yield this.gnServer.getPreEventCallbackService().onEvent("characterPlayer_GetLastLoginLeaderboard", request, secretInfo, operationRequest);
6613
+ if (operationResponse != null) {
6614
+ return operationResponse;
6615
+ }
6616
+ operationResponse = new OperationResponse_1.OperationResponse(operationRequest.getOperationCode(), operationRequest.getRequestId(), operationRequest.isEncrypted());
6617
+ operationResponse.setReturnCode(ReturnCode_1.ReturnCode.Ok);
6618
+ let characterPlayerFindOptions = this.convertToCharacterPlayerFindOptions(request.infoRequestParam);
6619
+ let cacheKey = "characterPlayerLastLoginLeaderboard";
6620
+ if (request.loadFromCache) {
6621
+ if (request.skip + request.limit > 100) {
6622
+ request.loadFromCache = false;
6623
+ }
6624
+ }
6625
+ let cacheData = this.gnServer.getCacheData(secretInfo.getGameId());
6626
+ if (request.loadFromCache) {
6627
+ if (!cacheData.isValid(cacheKey)) {
6628
+ request.loadFromCache = false;
6629
+ }
6630
+ }
6631
+ let gnResults = new GNData_1.GNArray();
6632
+ let characterPlayers;
6633
+ if (request.loadFromCache) {
6634
+ characterPlayers = cacheData.getData(cacheKey);
6635
+ for (let i = request.skip; i < request.skip + request.limit; i++) {
6636
+ if (i >= characterPlayers.length)
6637
+ break;
6638
+ let characterPlayer = characterPlayers[i];
6639
+ let gnResult = new GNData_1.GNHashtable();
6640
+ gnResult.add(GNParameterCode_1.GNParameterCode.Position, i);
6641
+ gnResult.add(GNParameterCode_1.GNParameterCode.CharacterId, characterPlayer.getCharacterId());
6642
+ gnResult.add(GNParameterCode_1.GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(characterPlayer, request.infoRequestParam, secretInfo.getGameId()));
6643
+ gnResults.add(gnResult);
6644
+ }
6645
+ }
6646
+ else {
6647
+ if (request.skip + request.limit <= 100) {
6648
+ characterPlayerFindOptions = null;
6649
+ characterPlayers = yield this.gnServer.getDatabase().loadCharacterPlayersLeaderboardWithLastLoginAsync(0, 100, secretInfo.getGameId(), characterPlayerFindOptions);
6650
+ for (let i = request.skip; i < request.skip + request.limit; i++) {
6651
+ if (i >= characterPlayers.length)
6652
+ break;
6653
+ let characterPlayer = characterPlayers[i];
6654
+ let gnResult = new GNData_1.GNHashtable();
6655
+ gnResult.add(GNParameterCode_1.GNParameterCode.Position, i);
6656
+ gnResult.add(GNParameterCode_1.GNParameterCode.CharacterId, characterPlayer.getCharacterId());
6657
+ gnResult.add(GNParameterCode_1.GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(characterPlayer, request.infoRequestParam, secretInfo.getGameId()));
6658
+ gnResults.add(gnResult);
6659
+ }
6660
+ cacheData.setData(cacheKey, characterPlayers, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
6661
+ }
6662
+ else {
6663
+ characterPlayers = yield this.gnServer.getDatabase().loadCharacterPlayersLeaderboardWithLastLoginAsync(request.skip, request.limit, secretInfo.getGameId(), characterPlayerFindOptions);
6664
+ for (let i = 0; i < characterPlayers.length; i++) {
6665
+ let characterPlayer = characterPlayers[i];
6666
+ let gnResult = new GNData_1.GNHashtable();
6667
+ gnResult.add(GNParameterCode_1.GNParameterCode.Position, i + request.skip);
6668
+ gnResult.add(GNParameterCode_1.GNParameterCode.CharacterId, characterPlayer.getCharacterId());
6669
+ gnResult.add(GNParameterCode_1.GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(characterPlayer, request.infoRequestParam, secretInfo.getGameId()));
6670
+ gnResults.add(gnResult);
6671
+ }
6672
+ }
6673
+ }
6674
+ operationResponse.setParameter(GNParameterCode_1.GNParameterCode.Results, gnResults);
6675
+ operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.Ok);
6676
+ yield this.gnServer.getPostEventCallbackService().onEvent("characterPlayer_GetLastLoginLeaderboard", request, secretInfo, operationRequest, operationResponse);
6677
+ return operationResponse;
6678
+ });
6679
+ }
6680
+ }
6681
+ exports.GetLastLoginLeaderboardRequestHandler = GetLastLoginLeaderboardRequestHandler;
6682
+
6683
+
6479
6684
  /***/ }),
6480
6685
 
6481
6686
  /***/ 5551:
@@ -7374,6 +7579,7 @@ const GNParameterCode_1 = __webpack_require__(38343);
7374
7579
  const GNErrorCode_1 = __webpack_require__(94559);
7375
7580
  const CharacterPlayerBaseRequestHandler_1 = __webpack_require__(91203);
7376
7581
  const InfoRequestParam_1 = __webpack_require__(21803);
7582
+ const xDatetime_1 = __webpack_require__(21817);
7377
7583
  class GetPlayerInformationOperationRequest extends OperationRequest_1.OperationRequest {
7378
7584
  isValidRequest() {
7379
7585
  if (!super.isValidRequest())
@@ -7421,6 +7627,7 @@ class GetPlayerInformationRequestHandler extends CharacterPlayerBaseRequestHandl
7421
7627
  }
7422
7628
  let allowMethod = false;
7423
7629
  let owned = false;
7630
+ let updateTsLastLogin = false;
7424
7631
  if (secretInfo.getPermission().characterPlayer.getPlayerInformation.otherSelfEnable) {
7425
7632
  allowMethod = true;
7426
7633
  }
@@ -7430,6 +7637,7 @@ class GetPlayerInformationRequestHandler extends CharacterPlayerBaseRequestHandl
7430
7637
  if (gamePlayer.hasPlayerCharacter(request.characterId)) {
7431
7638
  allowMethod = true;
7432
7639
  owned = true;
7640
+ updateTsLastLogin = true;
7433
7641
  }
7434
7642
  }
7435
7643
  }
@@ -7445,6 +7653,7 @@ class GetPlayerInformationRequestHandler extends CharacterPlayerBaseRequestHandl
7445
7653
  return this.execute({
7446
7654
  characterId: request.characterId,
7447
7655
  infoRequestParam: request.infoRequestParam,
7656
+ updateTsLastLogin: updateTsLastLogin,
7448
7657
  }, secretInfo, operationRequest);
7449
7658
  });
7450
7659
  }
@@ -7461,6 +7670,7 @@ class GetPlayerInformationRequestHandler extends CharacterPlayerBaseRequestHandl
7461
7670
  return this.execute({
7462
7671
  characterId: request.characterId,
7463
7672
  infoRequestParam: request.infoRequestParam,
7673
+ updateTsLastLogin: false,
7464
7674
  }, secretInfo, operationRequest);
7465
7675
  });
7466
7676
  }
@@ -7477,6 +7687,7 @@ class GetPlayerInformationRequestHandler extends CharacterPlayerBaseRequestHandl
7477
7687
  return this.execute({
7478
7688
  characterId: request.characterId,
7479
7689
  infoRequestParam: request.infoRequestParam,
7690
+ updateTsLastLogin: false,
7480
7691
  }, secretInfo, operationRequest);
7481
7692
  });
7482
7693
  }
@@ -7498,8 +7709,10 @@ class GetPlayerInformationRequestHandler extends CharacterPlayerBaseRequestHandl
7498
7709
  operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.CharacterPlayerNotFound);
7499
7710
  return operationResponse;
7500
7711
  }
7501
- // characterPlayer.setTsLastLogin(xDatetime.getCurrentMilliseconds());
7502
- // characterPlayer.saveAsync();
7712
+ if (request.updateTsLastLogin) {
7713
+ characterPlayer.setTsLastLogin(xDatetime_1.xDatetime.getCurrentMilliseconds());
7714
+ characterPlayer.saveAsync();
7715
+ }
7503
7716
  operationResponse.setParameter(GNParameterCode_1.GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(characterPlayer, request.infoRequestParam, secretInfo.getGameId()));
7504
7717
  operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.Ok);
7505
7718
  yield this.gnServer.getPostEventCallbackService().onEvent("characterPlayer_GetPlayerInformation", request, secretInfo, operationRequest, operationResponse);
@@ -8767,8 +8980,9 @@ class GetStatisticsLeaderboardAroundPlayerRequestHandler extends CharacterPlayer
8767
8980
  request.loadFromCache = false;
8768
8981
  }
8769
8982
  }
8983
+ let cacheData = this.gnServer.getCacheData(secretInfo.getGameId());
8770
8984
  if (request.loadFromCache) {
8771
- if (!this.gnServer.getCacheData().isValid(cacheKey) || !this.gnServer.getCacheData().isValid(positionCacheKey)) {
8985
+ if (!cacheData.isValid(cacheKey) || !cacheData.isValid(positionCacheKey)) {
8772
8986
  request.loadFromCache = false;
8773
8987
  }
8774
8988
  }
@@ -8776,8 +8990,8 @@ class GetStatisticsLeaderboardAroundPlayerRequestHandler extends CharacterPlayer
8776
8990
  let thisPosition;
8777
8991
  let characterPlayers;
8778
8992
  if (request.loadFromCache) {
8779
- thisPosition = this.gnServer.getCacheData().getData(positionCacheKey);
8780
- characterPlayers = this.gnServer.getCacheData().getData(cacheKey);
8993
+ thisPosition = cacheData.getData(positionCacheKey);
8994
+ characterPlayers = cacheData.getData(cacheKey);
8781
8995
  for (let i = request.skip; i < request.skip + request.limit; i++) {
8782
8996
  if (i >= characterPlayers.length)
8783
8997
  break;
@@ -8794,7 +9008,7 @@ class GetStatisticsLeaderboardAroundPlayerRequestHandler extends CharacterPlayer
8794
9008
  let direction = statisticsAggregationMethod == xStatisticsAggregationMethod_1.xStatisticsAggregationMethod.Minimum ? 1 : -1;
8795
9009
  thisPosition = yield this.gnServer.getDatabase().loadPositionCharacterPlayerLeaderboardWithStatisticsAsync(request.key, request.characterId, request.catalogId, secretInfo.getGameId(), playerStatisticsSettingsItem.initialValue, direction);
8796
9010
  if (thisPosition != -1) {
8797
- this.gnServer.getCacheData().setData(positionCacheKey, thisPosition, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
9011
+ cacheData.setData(positionCacheKey, thisPosition, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
8798
9012
  let characterPlayerFindOptions = this.convertToCharacterPlayerFindOptions(request.infoRequestParam);
8799
9013
  if (request.skip + request.limit <= 100) {
8800
9014
  characterPlayerFindOptions = null;
@@ -8809,7 +9023,7 @@ class GetStatisticsLeaderboardAroundPlayerRequestHandler extends CharacterPlayer
8809
9023
  gnResult.add(GNParameterCode_1.GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(characterPlayer, request.infoRequestParam, secretInfo.getGameId()));
8810
9024
  gnResults.add(gnResult);
8811
9025
  }
8812
- this.gnServer.getCacheData().setData(cacheKey, characterPlayers, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
9026
+ cacheData.setData(cacheKey, characterPlayers, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
8813
9027
  }
8814
9028
  else {
8815
9029
  characterPlayers = yield this.gnServer.getDatabase().loadCharacterPlayersLeaderboardWithStatisticsAsync(request.key, thisPosition + request.skip, request.limit, request.catalogId, secretInfo.getGameId(), direction, characterPlayerFindOptions);
@@ -8923,9 +9137,6 @@ class AdminGetStatisticsLeaderboardOperationRequest extends ServerGetStatisticsL
8923
9137
  }
8924
9138
  }
8925
9139
  class GetStatisticsLeaderboardRequestHandler extends CharacterPlayerBaseRequestHandler_1.CharacterPlayerBaseRequestHandler {
8926
- init() {
8927
- this.gnServer.getCacheData;
8928
- }
8929
9140
  getCode() {
8930
9141
  return OperationCode_1.OperationCode.GetStatisticsLeaderboard;
8931
9142
  }
@@ -9009,6 +9220,7 @@ class GetStatisticsLeaderboardRequestHandler extends CharacterPlayerBaseRequestH
9009
9220
  operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.KeyNotFound);
9010
9221
  return operationResponse;
9011
9222
  }
9223
+ let cacheData = this.gnServer.getCacheData(secretInfo.getGameId());
9012
9224
  if (!request.version) {
9013
9225
  let cacheKey = "characterPlayerStatisticsLeaderboard_" + request.key;
9014
9226
  if (request.catalogId)
@@ -9019,14 +9231,14 @@ class GetStatisticsLeaderboardRequestHandler extends CharacterPlayerBaseRequestH
9019
9231
  }
9020
9232
  }
9021
9233
  if (request.loadFromCache) {
9022
- if (!this.gnServer.getCacheData().isValid(cacheKey)) {
9234
+ if (!cacheData.isValid(cacheKey)) {
9023
9235
  request.loadFromCache = false;
9024
9236
  }
9025
9237
  }
9026
9238
  let gnResults = new GNData_1.GNArray();
9027
9239
  let characterPlayers;
9028
9240
  if (request.loadFromCache) {
9029
- characterPlayers = this.gnServer.getCacheData().getData(cacheKey);
9241
+ characterPlayers = cacheData.getData(cacheKey);
9030
9242
  for (let i = request.skip; i < request.skip + request.limit; i++) {
9031
9243
  if (i >= characterPlayers.length)
9032
9244
  break;
@@ -9055,7 +9267,7 @@ class GetStatisticsLeaderboardRequestHandler extends CharacterPlayerBaseRequestH
9055
9267
  gnResult.add(GNParameterCode_1.GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(characterPlayer, request.infoRequestParam, secretInfo.getGameId()));
9056
9268
  gnResults.add(gnResult);
9057
9269
  }
9058
- this.gnServer.getCacheData().setData(cacheKey, characterPlayers, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
9270
+ cacheData.setData(cacheKey, characterPlayers, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
9059
9271
  }
9060
9272
  else {
9061
9273
  characterPlayers = yield this.gnServer.getDatabase().loadCharacterPlayersLeaderboardWithStatisticsAsync(request.key, request.skip, request.limit, request.catalogId, secretInfo.getGameId(), direction, characterPlayerFindOptions);
@@ -9077,15 +9289,15 @@ class GetStatisticsLeaderboardRequestHandler extends CharacterPlayerBaseRequestH
9077
9289
  let key = request.key;
9078
9290
  let version = request.version;
9079
9291
  let cacheKey = "characterPlayerStatisticsLeaderboard_" + key + "_" + version;
9080
- if (!this.gnServer.getCacheData().isValid(cacheKey)) {
9292
+ if (!cacheData.isValid(cacheKey)) {
9081
9293
  let result = yield backupStatisticsLeaderboardCollection.findOne({ key: key, version: version });
9082
9294
  if (result == null) {
9083
9295
  operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.VersionInvalid);
9084
9296
  return operationResponse;
9085
9297
  }
9086
- this.gnServer.getCacheData().setData(cacheKey, result, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
9298
+ cacheData.setData(cacheKey, result, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
9087
9299
  }
9088
- let backupData = this.gnServer.getCacheData().getData(cacheKey);
9300
+ let backupData = cacheData.getData(cacheKey);
9089
9301
  let gnResults = new GNData_1.GNArray();
9090
9302
  let characterPlayerFindOptions = this.convertToCharacterPlayerFindOptions(request.infoRequestParam);
9091
9303
  for (let i = request.skip; i < request.skip + request.limit; i++) {
@@ -9190,9 +9402,6 @@ class AdminGetStatisticsLogOperationRequest extends ServerGetStatisticsLogOperat
9190
9402
  }
9191
9403
  }
9192
9404
  class GetStatisticsLogRequestHandler extends RequestHandler_1.RequestHandler {
9193
- init() {
9194
- this.gnServer.getCacheData;
9195
- }
9196
9405
  getCode() {
9197
9406
  return OperationCode_1.OperationCode.GetStatisticsLog;
9198
9407
  }
@@ -15967,6 +16176,7 @@ class DeleteInDatabaseRequestHandler extends RequestHandler_1.RequestHandler {
15967
16176
  obj: group.getOriginResult()
15968
16177
  });
15969
16178
  let groupId = group.getGroupId();
16179
+ let cacheData = this.gnServer.getCacheData(gameId);
15970
16180
  {
15971
16181
  let groupMessageCollection = this.gnServer.getDatabase().runtimeGameCollection("Group.Message", gameId);
15972
16182
  let results = yield groupMessageCollection.find({ groupId: groupId });
@@ -15978,7 +16188,7 @@ class DeleteInDatabaseRequestHandler extends RequestHandler_1.RequestHandler {
15978
16188
  });
15979
16189
  }
15980
16190
  yield this.gnServer.getDatabase().runtimeGameCollection("Group.Message", gameId).deleteMany({ groupId: groupId });
15981
- this.gnServer.getCacheData().removeData("GroupMessages_" + groupId);
16191
+ cacheData.removeData("GroupMessages_" + groupId);
15982
16192
  }
15983
16193
  {
15984
16194
  let groupInventories = group.getAllGroupInventories();
@@ -16083,7 +16293,8 @@ class DeleteInDatabaseRequestHandler extends RequestHandler_1.RequestHandler {
16083
16293
  group.removeMember(userId);
16084
16294
  }
16085
16295
  let groupId = group.getGroupId();
16086
- this.gnServer.getCacheData().removeData("GroupMessages_" + groupId);
16296
+ let cacheData = this.gnServer.getCacheData(gameId);
16297
+ cacheData.removeData("GroupMessages_" + groupId);
16087
16298
  return answer;
16088
16299
  });
16089
16300
  }
@@ -16095,7 +16306,8 @@ class DeleteInDatabaseRequestHandler extends RequestHandler_1.RequestHandler {
16095
16306
  group.removeMember(characterId);
16096
16307
  }
16097
16308
  let groupId = group.getGroupId();
16098
- this.gnServer.getCacheData().removeData("GroupMessages_" + groupId);
16309
+ let cacheData = this.gnServer.getCacheData(gameId);
16310
+ cacheData.removeData("GroupMessages_" + groupId);
16099
16311
  return answer;
16100
16312
  });
16101
16313
  }
@@ -19666,6 +19878,15 @@ class GetSecretInfoInformationRequestHandler extends RequestHandler_1.RequestHan
19666
19878
  gnPermissionRules.add(GNParameterCode_1.GNParameterCode.AdminSelfEnable, permissionRules.adminSelfEnable);
19667
19879
  gnCharacterPlayer.add(GNParameterCode_1.GNParameterCode.GetCreateLeaderboard, gnPermissionRules);
19668
19880
  }
19881
+ {
19882
+ let permissionRules = characterPlayer.getLastLoginLeaderboard;
19883
+ let gnPermissionRules = new GNData_1.GNHashtable();
19884
+ gnPermissionRules.add(GNParameterCode_1.GNParameterCode.SelfEnable, permissionRules.selfEnable);
19885
+ gnPermissionRules.add(GNParameterCode_1.GNParameterCode.OtherSelfEnable, permissionRules.otherSelfEnable);
19886
+ gnPermissionRules.add(GNParameterCode_1.GNParameterCode.ServerSelfEnable, permissionRules.serverSelfEnable);
19887
+ gnPermissionRules.add(GNParameterCode_1.GNParameterCode.AdminSelfEnable, permissionRules.adminSelfEnable);
19888
+ gnCharacterPlayer.add(GNParameterCode_1.GNParameterCode.GetLastLoginLeaderboard, gnPermissionRules);
19889
+ }
19669
19890
  {
19670
19891
  let permissionRules = characterPlayer.getStatisticsLog;
19671
19892
  let gnPermissionRules = new GNData_1.GNHashtable();
@@ -20541,6 +20762,24 @@ class GetSecretInfoInformationRequestHandler extends RequestHandler_1.RequestHan
20541
20762
  gnPermissionRules.add(GNParameterCode_1.GNParameterCode.AdminSelfEnable, permissionRules.adminSelfEnable);
20542
20763
  gnStoreInventory.add(GNParameterCode_1.GNParameterCode.GetStoreLog, gnPermissionRules);
20543
20764
  }
20765
+ {
20766
+ let permissionRules = storeInventory.getStoreUsed;
20767
+ let gnPermissionRules = new GNData_1.GNHashtable();
20768
+ gnPermissionRules.add(GNParameterCode_1.GNParameterCode.SelfEnable, permissionRules.selfEnable);
20769
+ gnPermissionRules.add(GNParameterCode_1.GNParameterCode.OtherSelfEnable, permissionRules.otherSelfEnable);
20770
+ gnPermissionRules.add(GNParameterCode_1.GNParameterCode.ServerSelfEnable, permissionRules.serverSelfEnable);
20771
+ gnPermissionRules.add(GNParameterCode_1.GNParameterCode.AdminSelfEnable, permissionRules.adminSelfEnable);
20772
+ gnStoreInventory.add(GNParameterCode_1.GNParameterCode.GetStoreUsed, gnPermissionRules);
20773
+ }
20774
+ {
20775
+ let permissionRules = storeInventory.removeStoreUsed;
20776
+ let gnPermissionRules = new GNData_1.GNHashtable();
20777
+ gnPermissionRules.add(GNParameterCode_1.GNParameterCode.SelfEnable, permissionRules.selfEnable);
20778
+ gnPermissionRules.add(GNParameterCode_1.GNParameterCode.OtherSelfEnable, permissionRules.otherSelfEnable);
20779
+ gnPermissionRules.add(GNParameterCode_1.GNParameterCode.ServerSelfEnable, permissionRules.serverSelfEnable);
20780
+ gnPermissionRules.add(GNParameterCode_1.GNParameterCode.AdminSelfEnable, permissionRules.adminSelfEnable);
20781
+ gnStoreInventory.add(GNParameterCode_1.GNParameterCode.RemoveStoreUsed, gnPermissionRules);
20782
+ }
20544
20783
  gnPermission.add(GNParameterCode_1.GNParameterCode.StoreInventory, gnStoreInventory);
20545
20784
  }
20546
20785
  {
@@ -21258,7 +21497,7 @@ const GNParameterCode_1 = __webpack_require__(38343);
21258
21497
  const GNData_1 = __webpack_require__(67549);
21259
21498
  const xDebug_1 = __webpack_require__(32501);
21260
21499
  const DataMember_1 = __webpack_require__(42364);
21261
- const fs_1 = __importDefault(__webpack_require__(94383));
21500
+ const fs_1 = __importDefault(__webpack_require__(79896));
21262
21501
  const readline_1 = __importDefault(__webpack_require__(23785));
21263
21502
  class GetServerLogOperationRequest extends OperationRequest_1.OperationRequest {
21264
21503
  isValidRequest() {
@@ -21601,6 +21840,7 @@ const xDatetime_1 = __webpack_require__(21817);
21601
21840
  const CloudScriptService_1 = __webpack_require__(58414);
21602
21841
  const xConfig_1 = __webpack_require__(12473);
21603
21842
  const xDebug_1 = __webpack_require__(32501);
21843
+ const xCacheData_1 = __webpack_require__(1627);
21604
21844
  class GrantGameOperationRequest extends OperationRequest_1.OperationRequest {
21605
21845
  isValidRequest() {
21606
21846
  if (!super.isValidRequest())
@@ -21699,9 +21939,10 @@ class GrantGameRequestHandler extends RequestHandler_1.RequestHandler {
21699
21939
  collection.insertOne(result);
21700
21940
  {
21701
21941
  let gamePlayerCollection = this.gnServer.getDatabase().systemGameCollection("GamePlayer", gameId);
21702
- yield gamePlayerCollection.createIndex({ "userId": 1 }, { background: true, name: "userId_1" });
21703
- yield gamePlayerCollection.createIndex({ "segments": 1 }, { background: true, name: "segments_1" });
21704
- yield gamePlayerCollection.createIndex({ "displayNameNormalize": 1 }, { background: true, name: "displayNameNormalize_1" });
21942
+ yield gamePlayerCollection.createIndex({ userId: 1 }, { background: true, name: "userId_1" });
21943
+ yield gamePlayerCollection.createIndex({ segments: 1 }, { background: true, name: "segments_1" });
21944
+ yield gamePlayerCollection.createIndex({ displayNameNormalize: 1 }, { background: true, name: "displayNameNormalize_1" });
21945
+ yield gamePlayerCollection.createIndex({ tsLastLogin: -1 }, { background: true, name: "tsLastLogin_-1" });
21705
21946
  }
21706
21947
  {
21707
21948
  yield this.gnServer.getDatabase().createCollection("Runtime." + gameId + ".GamePlayer.CurrencyLog", {
@@ -21710,8 +21951,8 @@ class GrantGameRequestHandler extends RequestHandler_1.RequestHandler {
21710
21951
  max: 100000000
21711
21952
  });
21712
21953
  let currencyLogCollection = this.gnServer.getDatabase().runtimeGameCollection("GamePlayer.CurrencyLog", gameId);
21713
- yield currencyLogCollection.createIndex({ "key": 1, "_id": -1 }, { background: true, name: "key_1_id_-1" });
21714
- yield currencyLogCollection.createIndex({ "userId": 1, "key": 1, "_id": -1 }, { background: true, name: "userId_1_key_1_id_-1" });
21954
+ yield currencyLogCollection.createIndex({ key: 1, _id: -1 }, { background: true, name: "key_1_id_-1" });
21955
+ yield currencyLogCollection.createIndex({ userId: 1, key: 1, "_id": -1 }, { background: true, name: "userId_1_key_1_id_-1" });
21715
21956
  }
21716
21957
  {
21717
21958
  yield this.gnServer.getDatabase().createCollection("Runtime." + gameId + ".GamePlayer.StatisticsLog", {
@@ -21720,18 +21961,18 @@ class GrantGameRequestHandler extends RequestHandler_1.RequestHandler {
21720
21961
  max: 100000000
21721
21962
  });
21722
21963
  let statisticsLogCollection = this.gnServer.getDatabase().runtimeGameCollection("GamePlayer.StatisticsLog", gameId);
21723
- yield statisticsLogCollection.createIndex({ "key": 1, "_id": -1 }, { background: true, name: "key_1_id_-1" });
21724
- yield statisticsLogCollection.createIndex({ "userId": 1, "key": 1, "_id": -1 }, { background: true, name: "userId_1_key_1_id_-1" });
21964
+ yield statisticsLogCollection.createIndex({ key: 1, _id: -1 }, { background: true, name: "key_1_id_-1" });
21965
+ yield statisticsLogCollection.createIndex({ userId: 1, key: 1, _id: -1 }, { background: true, name: "userId_1_key_1_id_-1" });
21725
21966
  }
21726
21967
  {
21727
21968
  let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().runtimeGameCollection("GamePlayer.StatisticsBackup", gameId);
21728
- yield backupStatisticsLeaderboardCollection.createIndex({ "key": 1, "version": 1 }, { background: true, name: "key_1_version_1" });
21969
+ yield backupStatisticsLeaderboardCollection.createIndex({ key: 1, version: 1 }, { background: true, name: "key_1_version_1" });
21729
21970
  }
21730
21971
  {
21731
21972
  let characterPlayerCollection = this.gnServer.getDatabase().systemGameCollection("CharacterPlayer", gameId);
21732
- yield characterPlayerCollection.createIndex({ "characterId": 1 }, { background: true, name: "characterId_1" });
21733
- yield characterPlayerCollection.createIndex({ "segments": 1 }, { background: true, name: "segments_1" });
21734
- yield characterPlayerCollection.createIndex({ "displayNameNormalize": 1 }, { background: true, name: "displayNameNormalize_1" });
21973
+ yield characterPlayerCollection.createIndex({ characterId: 1 }, { background: true, name: "characterId_1" });
21974
+ yield characterPlayerCollection.createIndex({ segments: 1 }, { background: true, name: "segments_1" });
21975
+ yield characterPlayerCollection.createIndex({ displayNameNormalize: 1 }, { background: true, name: "displayNameNormalize_1" });
21735
21976
  }
21736
21977
  {
21737
21978
  yield this.gnServer.getDatabase().createCollection("Runtime." + gameId + ".CharacterPlayer.CurrencyLog", {
@@ -21740,8 +21981,8 @@ class GrantGameRequestHandler extends RequestHandler_1.RequestHandler {
21740
21981
  max: 100000000
21741
21982
  });
21742
21983
  let currencyLogCollection = this.gnServer.getDatabase().runtimeGameCollection("CharacterPlayer.CurrencyLog", gameId);
21743
- yield currencyLogCollection.createIndex({ "key": 1, "_id": -1 }, { background: true, name: "key_1_id_-1" });
21744
- yield currencyLogCollection.createIndex({ "characterId": 1, "key": 1, "_id": -1 }, { background: true, name: "characterId_1_key_1_id_-1" });
21984
+ yield currencyLogCollection.createIndex({ key: 1, _id: -1 }, { background: true, name: "key_1_id_-1" });
21985
+ yield currencyLogCollection.createIndex({ characterId: 1, key: 1, _id: -1 }, { background: true, name: "characterId_1_key_1_id_-1" });
21745
21986
  }
21746
21987
  {
21747
21988
  yield this.gnServer.getDatabase().createCollection("Runtime." + gameId + ".CharacterPlayer.StatisticsLog", {
@@ -21750,18 +21991,18 @@ class GrantGameRequestHandler extends RequestHandler_1.RequestHandler {
21750
21991
  max: 100000000
21751
21992
  });
21752
21993
  let statisticsLogCollection = this.gnServer.getDatabase().runtimeGameCollection("CharacterPlayer.StatisticsLog", gameId);
21753
- yield statisticsLogCollection.createIndex({ "key": 1, "_id": -1 }, { background: true, name: "key_1_id_-1" });
21754
- yield statisticsLogCollection.createIndex({ "characterId": 1, "key": 1, "_id": -1 }, { background: true, name: "characterId_1_key_1_id_-1" });
21994
+ yield statisticsLogCollection.createIndex({ key: 1, _id: -1 }, { background: true, name: "key_1_id_-1" });
21995
+ yield statisticsLogCollection.createIndex({ characterId: 1, key: 1, _id: -1 }, { background: true, name: "characterId_1_key_1_id_-1" });
21755
21996
  }
21756
21997
  {
21757
21998
  let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().runtimeGameCollection("CharacterPlayer.StatisticsBackup", gameId);
21758
- yield backupStatisticsLeaderboardCollection.createIndex({ "key": 1, "version": 1 }, { background: true, name: "key_1_version_1" });
21999
+ yield backupStatisticsLeaderboardCollection.createIndex({ key: 1, version: 1 }, { background: true, name: "key_1_version_1" });
21759
22000
  }
21760
22001
  {
21761
22002
  let groupCollection = this.gnServer.getDatabase().systemGameCollection("Group", gameId);
21762
- yield groupCollection.createIndex({ "groupId": 1 }, { background: true, name: "groupId_1" });
21763
- yield groupCollection.createIndex({ "segments": 1 }, { background: true, name: "segments_1" });
21764
- yield groupCollection.createIndex({ "displayNameNormalize": 1 }, { background: true, name: "displayNameNormalize_1" });
22003
+ yield groupCollection.createIndex({ groupId: 1 }, { background: true, name: "groupId_1" });
22004
+ yield groupCollection.createIndex({ segments: 1 }, { background: true, name: "segments_1" });
22005
+ yield groupCollection.createIndex({ displayNameNormalize: 1 }, { background: true, name: "displayNameNormalize_1" });
21765
22006
  }
21766
22007
  {
21767
22008
  yield this.gnServer.getDatabase().createCollection("Runtime." + gameId + ".Group.CurrencyLog", {
@@ -21770,8 +22011,8 @@ class GrantGameRequestHandler extends RequestHandler_1.RequestHandler {
21770
22011
  max: 100000000
21771
22012
  });
21772
22013
  let currencyLogCollection = this.gnServer.getDatabase().runtimeGameCollection("Group.CurrencyLog", gameId);
21773
- yield currencyLogCollection.createIndex({ "key": 1, "_id": -1 }, { background: true, name: "key_1_id_-1" });
21774
- yield currencyLogCollection.createIndex({ "groupId": 1, "key": 1, "_id": -1 }, { background: true, name: "groupId_1_key_1_id_-1" });
22014
+ yield currencyLogCollection.createIndex({ key: 1, _id: -1 }, { background: true, name: "key_1_id_-1" });
22015
+ yield currencyLogCollection.createIndex({ groupId: 1, key: 1, _id: -1 }, { background: true, name: "groupId_1_key_1_id_-1" });
21775
22016
  }
21776
22017
  {
21777
22018
  yield this.gnServer.getDatabase().createCollection("Runtime." + gameId + ".Group.StatisticsLog", {
@@ -21780,12 +22021,12 @@ class GrantGameRequestHandler extends RequestHandler_1.RequestHandler {
21780
22021
  max: 100000000
21781
22022
  });
21782
22023
  let statisticsLogCollection = this.gnServer.getDatabase().runtimeGameCollection("Group.StatisticsLog", gameId);
21783
- yield statisticsLogCollection.createIndex({ "key": 1, "_id": -1 }, { background: true, name: "key_1_id_-1" });
21784
- yield statisticsLogCollection.createIndex({ "groupId": 1, "key": 1, "_id": -1 }, { background: true, name: "groupId_1_key_1_id_-1" });
22024
+ yield statisticsLogCollection.createIndex({ key: 1, _id: -1 }, { background: true, name: "key_1_id_-1" });
22025
+ yield statisticsLogCollection.createIndex({ groupId: 1, key: 1, _id: -1 }, { background: true, name: "groupId_1_key_1_id_-1" });
21785
22026
  }
21786
22027
  {
21787
22028
  let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().runtimeGameCollection("Group.StatisticsBackup", gameId);
21788
- yield backupStatisticsLeaderboardCollection.createIndex({ "key": 1, "version": 1 }, { background: true, name: "key_1_version_1" });
22029
+ yield backupStatisticsLeaderboardCollection.createIndex({ key: 1, version: 1 }, { background: true, name: "key_1_version_1" });
21789
22030
  }
21790
22031
  {
21791
22032
  yield this.gnServer.getDatabase().createCollection("Runtime." + gameId + ".Group.Message", {
@@ -21794,13 +22035,13 @@ class GrantGameRequestHandler extends RequestHandler_1.RequestHandler {
21794
22035
  max: 100000000
21795
22036
  });
21796
22037
  let groupMessageCollection = this.gnServer.getDatabase().runtimeGameCollection("Group.Message", gameId);
21797
- yield groupMessageCollection.createIndex({ "groupId": 1, "_id": -1 }, { background: true, name: "groupId_1_id_-1" });
22038
+ yield groupMessageCollection.createIndex({ groupId: 1, _id: -1 }, { background: true, name: "groupId_1_id_-1" });
21798
22039
  }
21799
22040
  {
21800
22041
  let inventoryCollection = this.gnServer.getDatabase().systemGameCollection("Inventory", gameId);
21801
- yield inventoryCollection.createIndex({ "itemId": 1 }, { background: true, name: "itemId_1" });
21802
- yield inventoryCollection.createIndex({ "segments": 1 }, { background: true, name: "segments_1" });
21803
- yield inventoryCollection.createIndex({ "displayNameNormalize": 1 }, { background: true, name: "displayNameNormalize_1" });
22042
+ yield inventoryCollection.createIndex({ itemId: 1 }, { background: true, name: "itemId_1" });
22043
+ yield inventoryCollection.createIndex({ segments: 1 }, { background: true, name: "segments_1" });
22044
+ yield inventoryCollection.createIndex({ displayNameNormalize: 1 }, { background: true, name: "displayNameNormalize_1" });
21804
22045
  }
21805
22046
  {
21806
22047
  yield this.gnServer.getDatabase().createCollection("Runtime." + gameId + ".Inventory.StatisticsLog", {
@@ -21809,18 +22050,18 @@ class GrantGameRequestHandler extends RequestHandler_1.RequestHandler {
21809
22050
  max: 100000000
21810
22051
  });
21811
22052
  let statisticsLogCollection = this.gnServer.getDatabase().runtimeGameCollection("Inventory.StatisticsLog", gameId);
21812
- yield statisticsLogCollection.createIndex({ "key": 1, "_id": -1 }, { background: true, name: "key_1_id_-1" });
21813
- yield statisticsLogCollection.createIndex({ "itemId": 1, "key": 1, "_id": -1 }, { background: true, name: "itemId_1_key_1_id_-1" });
22053
+ yield statisticsLogCollection.createIndex({ key: 1, _id: -1 }, { background: true, name: "key_1_id_-1" });
22054
+ yield statisticsLogCollection.createIndex({ itemId: 1, key: 1, _id: -1 }, { background: true, name: "itemId_1_key_1_id_-1" });
21814
22055
  }
21815
22056
  {
21816
22057
  let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().runtimeGameCollection("Inventory.StatisticsBackup", gameId);
21817
- yield backupStatisticsLeaderboardCollection.createIndex({ "key": 1, "version": 1 }, { background: true, name: "key_1_version_1" });
22058
+ yield backupStatisticsLeaderboardCollection.createIndex({ key: 1, version: 1 }, { background: true, name: "key_1_version_1" });
21818
22059
  }
21819
22060
  {
21820
22061
  let storeInventoryCollection = this.gnServer.getDatabase().systemGameCollection("StoreInventory", gameId);
21821
- yield storeInventoryCollection.createIndex({ "storeId": 1 }, { background: true, name: "storeId_1" });
21822
- yield storeInventoryCollection.createIndex({ "displayNameNormalize": 1 }, { background: true, name: "displayNameNormalize_1" });
21823
- yield storeInventoryCollection.createIndex({ "tags": 1 }, { background: true, sparse: true, name: "tags_1" });
22062
+ yield storeInventoryCollection.createIndex({ storeId: 1 }, { background: true, name: "storeId_1" });
22063
+ yield storeInventoryCollection.createIndex({ displayNameNormalize: 1 }, { background: true, name: "displayNameNormalize_1" });
22064
+ yield storeInventoryCollection.createIndex({ tags: 1 }, { background: true, sparse: true, name: "tags_1" });
21824
22065
  }
21825
22066
  {
21826
22067
  yield this.gnServer.getDatabase().createCollection("Runtime." + gameId + ".StoreInventory.StoreLog", {
@@ -21829,14 +22070,18 @@ class GrantGameRequestHandler extends RequestHandler_1.RequestHandler {
21829
22070
  max: 100000000
21830
22071
  });
21831
22072
  let storeInventoryLogCollection = this.gnServer.getDatabase().runtimeGameCollection("StoreInventory.StoreLog", gameId);
21832
- yield storeInventoryLogCollection.createIndex({ "storeId": 1, "id": 1, "storeReceiveType": -1, "_id": -1 }, { background: true, name: "storeId_1_id_1_storeReceiveType_-1_id_-1" });
21833
- yield storeInventoryLogCollection.createIndex({ "id": 1, "storeReceiveType": -1, "_id": -1 }, { background: true, name: "id_1_storeReceiveType_-1_id_-1" });
21834
- yield storeInventoryLogCollection.createIndex({ "storeReceiveType": -1, "_id": -1 }, { background: true, name: "storeReceiveType_-1_id_-1" });
22073
+ yield storeInventoryLogCollection.createIndex({ storeId: 1, id: 1, storeReceiveType: -1, _id: -1 }, { background: true, name: "storeId_1_id_1_storeReceiveType_-1_id_-1" });
22074
+ yield storeInventoryLogCollection.createIndex({ id: 1, storeReceiveType: -1, _id: -1 }, { background: true, name: "id_1_storeReceiveType_-1_id_-1" });
22075
+ yield storeInventoryLogCollection.createIndex({ storeReceiveType: -1, _id: -1 }, { background: true, name: "storeReceiveType_-1_id_-1" });
22076
+ }
22077
+ {
22078
+ let storeInventoryUsedCollection = this.gnServer.getDatabase().systemGameCollection("StoreInventory.StoreUsed", gameId);
22079
+ yield storeInventoryUsedCollection.createIndex({ storeId: 1 }, { background: true, name: "storeId_1" });
21835
22080
  }
21836
22081
  {
21837
22082
  let receiptIAPCollection = this.gnServer.getDatabase().systemGameCollection("ReceiptIAP", gameId);
21838
- receiptIAPCollection.createIndex({ "payloadMd5": 1 }, { background: true, name: "payloadMd5_1" });
21839
- receiptIAPCollection.createIndex({ "transactionId": 1 }, { background: true, name: "transactionId_1" });
22083
+ receiptIAPCollection.createIndex({ payloadMd5: 1 }, { background: true, name: "payloadMd5_1" });
22084
+ receiptIAPCollection.createIndex({ transactionId: 1 }, { background: true, name: "transactionId_1" });
21840
22085
  }
21841
22086
  {
21842
22087
  yield this.gnServer.getDatabase().createCollection("Runtime." + gameId + ".MatchmakingTicket", {
@@ -21845,10 +22090,10 @@ class GrantGameRequestHandler extends RequestHandler_1.RequestHandler {
21845
22090
  max: 100000
21846
22091
  });
21847
22092
  let matchmakingTicketCollection = this.gnServer.getDatabase().runtimeGameCollection("MatchmakingTicket", gameId);
21848
- yield matchmakingTicketCollection.createIndex({ "userIds": 1, "queueName": 1, "status": -1 }, { background: true, name: "userIds_1_queueName_1_status_-1" });
21849
- yield matchmakingTicketCollection.createIndex({ "queueName": 1, "status": -1, "tsCreate": -1 }, { background: true, name: "queueName_1_status_-1_tsCreate_-1" });
21850
- yield matchmakingTicketCollection.createIndex({ "ticketId": 1 }, { background: true, name: "ticketId_1" });
21851
- yield matchmakingTicketCollection.createIndex({ "status": -1, "_id": -1 }, { background: true, name: "status_-1_id_-1" });
22093
+ yield matchmakingTicketCollection.createIndex({ userIds: 1, queueName: 1, status: -1 }, { background: true, name: "userIds_1_queueName_1_status_-1" });
22094
+ yield matchmakingTicketCollection.createIndex({ queueName: 1, status: -1, tsCreate: -1 }, { background: true, name: "queueName_1_status_-1_tsCreate_-1" });
22095
+ yield matchmakingTicketCollection.createIndex({ ticketId: 1 }, { background: true, name: "ticketId_1" });
22096
+ yield matchmakingTicketCollection.createIndex({ status: -1, _id: -1 }, { background: true, name: "status_-1_id_-1" });
21852
22097
  }
21853
22098
  {
21854
22099
  yield this.gnServer.getDatabase().createCollection("Runtime." + gameId + ".CloudScript.Log", {
@@ -21857,17 +22102,17 @@ class GrantGameRequestHandler extends RequestHandler_1.RequestHandler {
21857
22102
  max: 100000
21858
22103
  });
21859
22104
  let cloudScriptFunctionLogCollection = this.gnServer.getDatabase().runtimeGameCollection("CloudScript.Log", gameId);
21860
- yield cloudScriptFunctionLogCollection.createIndex({ "tsCreate": -1 }, { background: true, name: "tsCreate-1" });
22105
+ yield cloudScriptFunctionLogCollection.createIndex({ tsCreate: -1 }, { background: true, name: "tsCreate-1" });
21861
22106
  }
21862
22107
  {
21863
22108
  let matchCollection = this.gnServer.getDatabase().systemGameCollection("Match", gameId);
21864
- yield matchCollection.createIndex({ "matchId": 1 }, { background: true, name: "matchId_1" });
21865
- yield matchCollection.createIndex({ "queueName": 1, "tsCreate": -1 }, { background: true, name: "queueName_1_tsCreate_-1" });
21866
- yield matchCollection.createIndex({ "status": -1, "tsCreate": -1 }, { background: true, name: "status_-1_tsCreate_-1" });
22109
+ yield matchCollection.createIndex({ matchId: 1 }, { background: true, name: "matchId_1" });
22110
+ yield matchCollection.createIndex({ queueName: 1, tsCreate: -1 }, { background: true, name: "queueName_1_tsCreate_-1" });
22111
+ yield matchCollection.createIndex({ status: -1, tsCreate: -1 }, { background: true, name: "status_-1_tsCreate_-1" });
21867
22112
  }
21868
22113
  {
21869
22114
  let configCollection = this.gnServer.getDatabase().systemGameCollection("Config", gameId);
21870
- yield configCollection.createIndex({ "configName": 1, "label": 1 }, { background: true, unique: true, name: "configName_1_label_1" });
22115
+ yield configCollection.createIndex({ configName: 1, label: 1 }, { background: true, unique: true, name: "configName_1_label_1" });
21871
22116
  }
21872
22117
  let gameIds = this.gnServer.getGameIds();
21873
22118
  if (!gameIds.includes(gameId))
@@ -21902,6 +22147,10 @@ class GrantGameRequestHandler extends RequestHandler_1.RequestHandler {
21902
22147
  xDebug_1.Debug.log("[GN] Config Game sync success for gameId " + gameId);
21903
22148
  });
21904
22149
  }
22150
+ {
22151
+ let cacheData = new xCacheData_1.xCacheData();
22152
+ this.gnServer.setCacheData(gameId, cacheData);
22153
+ }
21905
22154
  operationResponse.setParameter(GNParameterCode_1.GNParameterCode.GameId, gameId);
21906
22155
  operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.Ok);
21907
22156
  yield this.gnServer.getPostEventCallbackService().onEvent("dashboard_GrantGame", request, secretInfo, operationRequest, operationResponse);
@@ -22262,6 +22511,7 @@ class GrantSecretInfoRequestHandler extends RequestHandler_1.RequestHandler {
22262
22511
  getFriendStatisticsLeaderboard: { selfEnable: selfEnable, otherSelfEnable: otherSelfEnable, adminSelfEnable: adminSelfEnable, serverSelfEnable: serverSelfEnable, },
22263
22512
  getCurrencyLeaderboard: { selfEnable: selfEnable, otherSelfEnable: otherSelfEnable, adminSelfEnable: adminSelfEnable, serverSelfEnable: serverSelfEnable, },
22264
22513
  getCreateLeaderboard: { selfEnable: selfEnable, otherSelfEnable: otherSelfEnable, adminSelfEnable: adminSelfEnable, serverSelfEnable: serverSelfEnable, },
22514
+ getLastLoginLeaderboard: { selfEnable: selfEnable, otherSelfEnable: otherSelfEnable, adminSelfEnable: adminSelfEnable, serverSelfEnable: serverSelfEnable, },
22265
22515
  getStatisticsLog: { selfEnable: selfEnable, otherSelfEnable: otherSelfEnable, adminSelfEnable: adminSelfEnable, serverSelfEnable: serverSelfEnable, },
22266
22516
  getCurrencyLog: { selfEnable: selfEnable, otherSelfEnable: otherSelfEnable, adminSelfEnable: adminSelfEnable, serverSelfEnable: serverSelfEnable, },
22267
22517
  },
@@ -22365,6 +22615,8 @@ class GrantSecretInfoRequestHandler extends RequestHandler_1.RequestHandler {
22365
22615
  getCreateLeaderboard: { selfEnable: selfEnable, otherSelfEnable: otherSelfEnable, adminSelfEnable: adminSelfEnable, serverSelfEnable: serverSelfEnable, },
22366
22616
  getStoreLog: { selfEnable: selfEnable, otherSelfEnable: otherSelfEnable, adminSelfEnable: adminSelfEnable, serverSelfEnable: serverSelfEnable, },
22367
22617
  presentStoreItem: { selfEnable: selfEnable, otherSelfEnable: otherSelfEnable, adminSelfEnable: adminSelfEnable, serverSelfEnable: serverSelfEnable, },
22618
+ getStoreUsed: { selfEnable: selfEnable, otherSelfEnable: otherSelfEnable, adminSelfEnable: adminSelfEnable, serverSelfEnable: serverSelfEnable, },
22619
+ removeStoreUsed: { selfEnable: selfEnable, otherSelfEnable: otherSelfEnable, adminSelfEnable: adminSelfEnable, serverSelfEnable: serverSelfEnable, },
22368
22620
  },
22369
22621
  masterAdmin: {
22370
22622
  setMasterGameSettings: { selfEnable: selfEnable, otherSelfEnable: otherSelfEnable, adminSelfEnable: adminSelfEnable, serverSelfEnable: serverSelfEnable, },
@@ -22630,6 +22882,7 @@ class GrantSecretInfoRequestHandler extends RequestHandler_1.RequestHandler {
22630
22882
  getFriendStatisticsLeaderboard: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: true, },
22631
22883
  getCurrencyLeaderboard: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: true, },
22632
22884
  getCreateLeaderboard: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: true, },
22885
+ getLastLoginLeaderboard: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: true, },
22633
22886
  getStatisticsLog: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: true, },
22634
22887
  getCurrencyLog: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: true, },
22635
22888
  },
@@ -22733,6 +22986,8 @@ class GrantSecretInfoRequestHandler extends RequestHandler_1.RequestHandler {
22733
22986
  getCreateLeaderboard: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: true, },
22734
22987
  presentStoreItem: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: true, },
22735
22988
  getStoreLog: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: true, },
22989
+ getStoreUsed: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: true, },
22990
+ removeStoreUsed: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: true, },
22736
22991
  },
22737
22992
  masterAdmin: {
22738
22993
  setMasterGameSettings: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
@@ -22998,6 +23253,7 @@ class GrantSecretInfoRequestHandler extends RequestHandler_1.RequestHandler {
22998
23253
  getFriendStatisticsLeaderboard: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: true, serverSelfEnable: false, },
22999
23254
  getCurrencyLeaderboard: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: true, serverSelfEnable: false, },
23000
23255
  getCreateLeaderboard: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: true, serverSelfEnable: false, },
23256
+ getLastLoginLeaderboard: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: true, serverSelfEnable: false, },
23001
23257
  getStatisticsLog: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: true, serverSelfEnable: false, },
23002
23258
  getCurrencyLog: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: true, serverSelfEnable: false, },
23003
23259
  },
@@ -23101,6 +23357,8 @@ class GrantSecretInfoRequestHandler extends RequestHandler_1.RequestHandler {
23101
23357
  getCreateLeaderboard: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: true, serverSelfEnable: false, },
23102
23358
  presentStoreItem: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: true, serverSelfEnable: false, },
23103
23359
  getStoreLog: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: true, serverSelfEnable: false, },
23360
+ getStoreUsed: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: true, serverSelfEnable: false, },
23361
+ removeStoreUsed: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: true, serverSelfEnable: false, },
23104
23362
  },
23105
23363
  masterAdmin: {
23106
23364
  setMasterGameSettings: { selfEnable: true, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
@@ -23367,6 +23625,7 @@ class GrantSecretInfoRequestHandler extends RequestHandler_1.RequestHandler {
23367
23625
  getFriendStatisticsLeaderboard: { selfEnable: true, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
23368
23626
  getCurrencyLeaderboard: { selfEnable: true, otherSelfEnable: true, adminSelfEnable: false, serverSelfEnable: false, },
23369
23627
  getCreateLeaderboard: { selfEnable: true, otherSelfEnable: true, adminSelfEnable: false, serverSelfEnable: false, },
23628
+ getLastLoginLeaderboard: { selfEnable: true, otherSelfEnable: true, adminSelfEnable: false, serverSelfEnable: false, },
23370
23629
  getStatisticsLog: { selfEnable: true, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
23371
23630
  getCurrencyLog: { selfEnable: true, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
23372
23631
  },
@@ -23470,6 +23729,8 @@ class GrantSecretInfoRequestHandler extends RequestHandler_1.RequestHandler {
23470
23729
  getCreateLeaderboard: { selfEnable: true, otherSelfEnable: true, adminSelfEnable: false, serverSelfEnable: false, },
23471
23730
  presentStoreItem: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
23472
23731
  getStoreLog: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
23732
+ getStoreUsed: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
23733
+ removeStoreUsed: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
23473
23734
  },
23474
23735
  masterAdmin: {
23475
23736
  setMasterGameSettings: { selfEnable: false, otherSelfEnable: false, adminSelfEnable: false, serverSelfEnable: false, },
@@ -27159,6 +27420,10 @@ __decorate([
27159
27420
  (0, DataMember_1.GNHashtableDataMember)({ code: GNParameterCode_1.GNParameterCode.GetCreateLeaderboard, isOptional: true }),
27160
27421
  __metadata("design:type", PermissionRulesParam_1.PermissionRulesParam)
27161
27422
  ], CharacterPlayerPermissionRulesParam.prototype, "getCreateLeaderboard", void 0);
27423
+ __decorate([
27424
+ (0, DataMember_1.GNHashtableDataMember)({ code: GNParameterCode_1.GNParameterCode.GetLastLoginLeaderboard, isOptional: true }),
27425
+ __metadata("design:type", PermissionRulesParam_1.PermissionRulesParam)
27426
+ ], CharacterPlayerPermissionRulesParam.prototype, "getLastLoginLeaderboard", void 0);
27162
27427
  __decorate([
27163
27428
  (0, DataMember_1.GNHashtableDataMember)({ code: GNParameterCode_1.GNParameterCode.GetStatisticsLog, isOptional: true }),
27164
27429
  __metadata("design:type", PermissionRulesParam_1.PermissionRulesParam)
@@ -29466,6 +29731,14 @@ __decorate([
29466
29731
  (0, DataMember_1.GNHashtableDataMember)({ code: GNParameterCode_1.GNParameterCode.GetStoreLog, isOptional: true }),
29467
29732
  __metadata("design:type", PermissionRulesParam_1.PermissionRulesParam)
29468
29733
  ], StoreInventoryPermissionRulesParam.prototype, "getStoreLog", void 0);
29734
+ __decorate([
29735
+ (0, DataMember_1.GNHashtableDataMember)({ code: GNParameterCode_1.GNParameterCode.GetStoreUsed, isOptional: true }),
29736
+ __metadata("design:type", PermissionRulesParam_1.PermissionRulesParam)
29737
+ ], StoreInventoryPermissionRulesParam.prototype, "getStoreUsed", void 0);
29738
+ __decorate([
29739
+ (0, DataMember_1.GNHashtableDataMember)({ code: GNParameterCode_1.GNParameterCode.RemoveStoreUsed, isOptional: true }),
29740
+ __metadata("design:type", PermissionRulesParam_1.PermissionRulesParam)
29741
+ ], StoreInventoryPermissionRulesParam.prototype, "removeStoreUsed", void 0);
29469
29742
 
29470
29743
 
29471
29744
  /***/ }),
@@ -31210,15 +31483,16 @@ class GetCreateLeaderboardRequestHandler extends GamePlayerBaseRequestHandler_1.
31210
31483
  request.loadFromCache = false;
31211
31484
  }
31212
31485
  }
31486
+ let cacheData = this.gnServer.getCacheData(secretInfo.getGameId());
31213
31487
  if (request.loadFromCache) {
31214
- if (!this.gnServer.getCacheData().isValid(cacheKey)) {
31488
+ if (!cacheData.isValid(cacheKey)) {
31215
31489
  request.loadFromCache = false;
31216
31490
  }
31217
31491
  }
31218
31492
  let gnResults = new GNData_1.GNArray();
31219
31493
  let gamePlayers;
31220
31494
  if (request.loadFromCache) {
31221
- gamePlayers = this.gnServer.getCacheData().getData(cacheKey);
31495
+ gamePlayers = cacheData.getData(cacheKey);
31222
31496
  for (let i = request.skip; i < request.skip + request.limit; i++) {
31223
31497
  if (i >= gamePlayers.length)
31224
31498
  break;
@@ -31244,7 +31518,7 @@ class GetCreateLeaderboardRequestHandler extends GamePlayerBaseRequestHandler_1.
31244
31518
  gnResult.add(GNParameterCode_1.GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(gamePlayer, request.infoRequestParam, secretInfo.getGameId()));
31245
31519
  gnResults.add(gnResult);
31246
31520
  }
31247
- this.gnServer.getCacheData().setData(cacheKey, gamePlayers, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
31521
+ cacheData.setData(cacheKey, gamePlayers, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
31248
31522
  }
31249
31523
  else {
31250
31524
  gamePlayers = yield this.gnServer.getDatabase().loadGamePlayersLeaderboardWithCreateAsync(request.skip, request.limit, secretInfo.getGameId(), gamePlayerFindOptions);
@@ -31431,15 +31705,16 @@ class GetCurrencyLeaderboardRequestHandler extends GamePlayerBaseRequestHandler_
31431
31705
  request.loadFromCache = false;
31432
31706
  }
31433
31707
  }
31708
+ let cacheData = this.gnServer.getCacheData(secretInfo.getGameId());
31434
31709
  if (request.loadFromCache) {
31435
- if (!this.gnServer.getCacheData().isValid(cacheKey)) {
31710
+ if (!cacheData.isValid(cacheKey)) {
31436
31711
  request.loadFromCache = false;
31437
31712
  }
31438
31713
  }
31439
31714
  let gnResults = new GNData_1.GNArray();
31440
31715
  let gamePlayers;
31441
31716
  if (request.loadFromCache) {
31442
- gamePlayers = this.gnServer.getCacheData().getData(cacheKey);
31717
+ gamePlayers = cacheData.getData(cacheKey);
31443
31718
  for (let i = request.skip; i < request.skip + request.limit; i++) {
31444
31719
  if (i >= gamePlayers.length)
31445
31720
  break;
@@ -31466,7 +31741,7 @@ class GetCurrencyLeaderboardRequestHandler extends GamePlayerBaseRequestHandler_
31466
31741
  gnResult.add(GNParameterCode_1.GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(gamePlayer, request.infoRequestParam, secretInfo.getGameId()));
31467
31742
  gnResults.add(gnResult);
31468
31743
  }
31469
- this.gnServer.getCacheData().setData(cacheKey, gamePlayers, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
31744
+ cacheData.setData(cacheKey, gamePlayers, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
31470
31745
  }
31471
31746
  else {
31472
31747
  gamePlayers = yield this.gnServer.getDatabase().loadGamePlayersLeaderboardWithCurrenciesAsync(request.key, request.skip, request.limit, secretInfo.getGameId(), gamePlayerFindOptions);
@@ -31564,9 +31839,6 @@ class AdminGetCurrencyLogOperationRequest extends ServerGetCurrencyLogOperationR
31564
31839
  }
31565
31840
  }
31566
31841
  class GetCurrencyLogRequestHandler extends RequestHandler_1.RequestHandler {
31567
- init() {
31568
- this.gnServer.getCacheData;
31569
- }
31570
31842
  getCode() {
31571
31843
  return OperationCode_1.OperationCode.GetCurrencyLog;
31572
31844
  }
@@ -32185,16 +32457,17 @@ class GetFriendStatisticsLeaderboardAroundPlayerRequestHandler extends GamePlaye
32185
32457
  operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.KeyNotFound);
32186
32458
  return operationResponse;
32187
32459
  }
32460
+ let cacheData = this.gnServer.getCacheData(secretInfo.getGameId());
32188
32461
  let cacheKey = "gamePlayerStatisticsLeaderboardFriendAround_" + request.userId;
32189
32462
  if (request.loadFromCache) {
32190
- if (!this.gnServer.getCacheData().isValid(cacheKey)) {
32463
+ if (!cacheData.isValid(cacheKey)) {
32191
32464
  request.loadFromCache = false;
32192
32465
  }
32193
32466
  }
32194
32467
  let gnResults = new GNData_1.GNArray();
32195
32468
  let gamePlayers;
32196
32469
  if (request.loadFromCache) {
32197
- gamePlayers = this.gnServer.getCacheData().getData(cacheKey);
32470
+ gamePlayers = cacheData.getData(cacheKey);
32198
32471
  }
32199
32472
  else {
32200
32473
  let gamePlayer = yield this.gnServer.getDatabase().loadGamePlayerAsync(request.userId, secretInfo.getGameId(), null);
@@ -32216,7 +32489,7 @@ class GetFriendStatisticsLeaderboardAroundPlayerRequestHandler extends GamePlaye
32216
32489
  gamePlayers = statisticsAggregationMethod == xStatisticsAggregationMethod_1.xStatisticsAggregationMethod.Minimum
32217
32490
  ? GetFriendStatisticsLeaderboardRequestHandler_1.GetFriendStatisticsLeaderboardRequestHandler.quickSortAsc(request.key, allGamePlayers, playerStatisticsSettingsItem.initialValue)
32218
32491
  : GetFriendStatisticsLeaderboardRequestHandler_1.GetFriendStatisticsLeaderboardRequestHandler.quickSort(request.key, allGamePlayers, playerStatisticsSettingsItem.initialValue);
32219
- this.gnServer.getCacheData().setData(cacheKey, gamePlayers, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
32492
+ cacheData.setData(cacheKey, gamePlayers, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
32220
32493
  }
32221
32494
  let gamePlayer = gamePlayers.find(x => x.getUserId() == request.userId);
32222
32495
  let thisPosition = gamePlayers.indexOf(gamePlayer);
@@ -32423,16 +32696,17 @@ class GetFriendStatisticsLeaderboardRequestHandler extends GamePlayerBaseRequest
32423
32696
  operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.KeyNotFound);
32424
32697
  return operationResponse;
32425
32698
  }
32699
+ let cacheData = this.gnServer.getCacheData(secretInfo.getGameId());
32426
32700
  let cacheKey = "gamePlayerStatisticsLeaderboardFriend_" + request.userId;
32427
32701
  if (request.loadFromCache) {
32428
- if (!this.gnServer.getCacheData().isValid(cacheKey)) {
32702
+ if (!cacheData.isValid(cacheKey)) {
32429
32703
  request.loadFromCache = false;
32430
32704
  }
32431
32705
  }
32432
32706
  let gnResults = new GNData_1.GNArray();
32433
32707
  let gamePlayers;
32434
32708
  if (request.loadFromCache) {
32435
- gamePlayers = this.gnServer.getCacheData().getData(cacheKey);
32709
+ gamePlayers = cacheData.getData(cacheKey);
32436
32710
  }
32437
32711
  else {
32438
32712
  let gamePlayer = yield this.gnServer.getDatabase().loadGamePlayerAsync(request.userId, secretInfo.getGameId(), null);
@@ -32454,7 +32728,7 @@ class GetFriendStatisticsLeaderboardRequestHandler extends GamePlayerBaseRequest
32454
32728
  gamePlayers = statisticsAggregationMethod == xStatisticsAggregationMethod_1.xStatisticsAggregationMethod.Minimum
32455
32729
  ? GetFriendStatisticsLeaderboardRequestHandler.quickSortAsc(request.key, allGamePlayers, playerStatisticsSettingsItem.initialValue)
32456
32730
  : GetFriendStatisticsLeaderboardRequestHandler.quickSort(request.key, allGamePlayers, playerStatisticsSettingsItem.initialValue);
32457
- this.gnServer.getCacheData().setData(cacheKey, gamePlayers, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
32731
+ cacheData.setData(cacheKey, gamePlayers, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
32458
32732
  }
32459
32733
  for (let i = request.skip; i < request.skip + request.limit; i++) {
32460
32734
  if (i >= gamePlayers.length)
@@ -32870,15 +33144,16 @@ class GetLastLoginLeaderboardRequestHandler extends GamePlayerBaseRequestHandler
32870
33144
  request.loadFromCache = false;
32871
33145
  }
32872
33146
  }
33147
+ let cacheData = this.gnServer.getCacheData(secretInfo.getGameId());
32873
33148
  if (request.loadFromCache) {
32874
- if (!this.gnServer.getCacheData().isValid(cacheKey)) {
33149
+ if (!cacheData.isValid(cacheKey)) {
32875
33150
  request.loadFromCache = false;
32876
33151
  }
32877
33152
  }
32878
33153
  let gnResults = new GNData_1.GNArray();
32879
33154
  let gamePlayers;
32880
33155
  if (request.loadFromCache) {
32881
- gamePlayers = this.gnServer.getCacheData().getData(cacheKey);
33156
+ gamePlayers = cacheData.getData(cacheKey);
32882
33157
  for (let i = request.skip; i < request.skip + request.limit; i++) {
32883
33158
  if (i >= gamePlayers.length)
32884
33159
  break;
@@ -32904,7 +33179,7 @@ class GetLastLoginLeaderboardRequestHandler extends GamePlayerBaseRequestHandler
32904
33179
  gnResult.add(GNParameterCode_1.GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(gamePlayer, request.infoRequestParam, secretInfo.getGameId()));
32905
33180
  gnResults.add(gnResult);
32906
33181
  }
32907
- this.gnServer.getCacheData().setData(cacheKey, gamePlayers, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
33182
+ cacheData.setData(cacheKey, gamePlayers, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
32908
33183
  }
32909
33184
  else {
32910
33185
  gamePlayers = yield this.gnServer.getDatabase().loadGamePlayersLeaderboardWithLastLoginAsync(request.skip, request.limit, secretInfo.getGameId(), gamePlayerFindOptions);
@@ -34266,7 +34541,7 @@ class GetPlayerInformationRequestHandler extends GamePlayerBaseRequestHandler_1.
34266
34541
  }
34267
34542
  gamePlayer = yield this.gnServer.getDatabase().createGamePlayerAsync(result, secretInfo.getGameId());
34268
34543
  }
34269
- if (request.updateTsLastLogin === true) {
34544
+ if (request.updateTsLastLogin) {
34270
34545
  gamePlayer.setTsLastLogin(xDatetime_1.xDatetime.getCurrentMilliseconds());
34271
34546
  gamePlayer.saveAsync();
34272
34547
  }
@@ -35451,8 +35726,9 @@ class GetStatisticsLeaderboardAroundPlayerRequestHandler extends GamePlayerBaseR
35451
35726
  request.loadFromCache = false;
35452
35727
  }
35453
35728
  }
35729
+ let cacheData = this.gnServer.getCacheData(secretInfo.getGameId());
35454
35730
  if (request.loadFromCache) {
35455
- if (!this.gnServer.getCacheData().isValid(cacheKey) || !this.gnServer.getCacheData().isValid(positionCacheKey)) {
35731
+ if (!cacheData.isValid(cacheKey) || !cacheData.isValid(positionCacheKey)) {
35456
35732
  request.loadFromCache = false;
35457
35733
  }
35458
35734
  }
@@ -35460,8 +35736,8 @@ class GetStatisticsLeaderboardAroundPlayerRequestHandler extends GamePlayerBaseR
35460
35736
  let thisPosition;
35461
35737
  let gamePlayers;
35462
35738
  if (request.loadFromCache) {
35463
- thisPosition = this.gnServer.getCacheData().getData(positionCacheKey);
35464
- gamePlayers = this.gnServer.getCacheData().getData(cacheKey);
35739
+ thisPosition = cacheData.getData(positionCacheKey);
35740
+ gamePlayers = cacheData.getData(cacheKey);
35465
35741
  for (let i = request.skip; i < request.skip + request.limit; i++) {
35466
35742
  if (i >= gamePlayers.length)
35467
35743
  break;
@@ -35478,7 +35754,7 @@ class GetStatisticsLeaderboardAroundPlayerRequestHandler extends GamePlayerBaseR
35478
35754
  let direction = statisticsAggregationMethod == xStatisticsAggregationMethod_1.xStatisticsAggregationMethod.Minimum ? 1 : -1;
35479
35755
  thisPosition = yield this.gnServer.getDatabase().loadPositionGamePlayerLeaderboardWithStatisticsAsync(request.key, request.userId, secretInfo.getGameId(), playerStatisticsSettingsItem.initialValue, direction);
35480
35756
  if (thisPosition != -1) {
35481
- this.gnServer.getCacheData().setData(positionCacheKey, thisPosition, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
35757
+ cacheData.setData(positionCacheKey, thisPosition, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
35482
35758
  let gamePlayerFindOptions = this.convertToGamePlayerFindOptions(request.infoRequestParam);
35483
35759
  if (request.skip + request.limit <= 100) {
35484
35760
  gamePlayerFindOptions = null;
@@ -35493,7 +35769,7 @@ class GetStatisticsLeaderboardAroundPlayerRequestHandler extends GamePlayerBaseR
35493
35769
  gnResult.add(GNParameterCode_1.GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(gamePlayer, request.infoRequestParam, secretInfo.getGameId()));
35494
35770
  gnResults.add(gnResult);
35495
35771
  }
35496
- this.gnServer.getCacheData().setData(cacheKey, gamePlayers, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
35772
+ cacheData.setData(cacheKey, gamePlayers, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
35497
35773
  }
35498
35774
  else {
35499
35775
  gamePlayers = yield this.gnServer.getDatabase().loadGamePlayersLeaderboardWithStatisticsAsync(request.key, thisPosition + request.skip, request.limit, secretInfo.getGameId(), direction, gamePlayerFindOptions);
@@ -35683,6 +35959,7 @@ class GetStatisticsLeaderboardRequestHandler extends GamePlayerBaseRequestHandle
35683
35959
  operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.KeyNotFound);
35684
35960
  return operationResponse;
35685
35961
  }
35962
+ let cacheData = this.gnServer.getCacheData(secretInfo.getGameId());
35686
35963
  if (!request.version) {
35687
35964
  let cacheKey = "gamePlayerStatisticsLeaderboard_" + request.key;
35688
35965
  if (request.loadFromCache) {
@@ -35691,14 +35968,14 @@ class GetStatisticsLeaderboardRequestHandler extends GamePlayerBaseRequestHandle
35691
35968
  }
35692
35969
  }
35693
35970
  if (request.loadFromCache) {
35694
- if (!this.gnServer.getCacheData().isValid(cacheKey)) {
35971
+ if (!cacheData.isValid(cacheKey)) {
35695
35972
  request.loadFromCache = false;
35696
35973
  }
35697
35974
  }
35698
35975
  let gnResults = new GNData_1.GNArray();
35699
35976
  let gamePlayers;
35700
35977
  if (request.loadFromCache) {
35701
- gamePlayers = this.gnServer.getCacheData().getData(cacheKey);
35978
+ gamePlayers = cacheData.getData(cacheKey);
35702
35979
  for (let i = request.skip; i < request.skip + request.limit; i++) {
35703
35980
  if (i >= gamePlayers.length)
35704
35981
  break;
@@ -35727,7 +36004,7 @@ class GetStatisticsLeaderboardRequestHandler extends GamePlayerBaseRequestHandle
35727
36004
  gnResult.add(GNParameterCode_1.GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(gamePlayer, request.infoRequestParam, secretInfo.getGameId()));
35728
36005
  gnResults.add(gnResult);
35729
36006
  }
35730
- this.gnServer.getCacheData().setData(cacheKey, gamePlayers, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
36007
+ cacheData.setData(cacheKey, gamePlayers, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
35731
36008
  }
35732
36009
  else {
35733
36010
  gamePlayers = yield this.gnServer.getDatabase().loadGamePlayersLeaderboardWithStatisticsAsync(request.key, request.skip, request.limit, secretInfo.getGameId(), direction, gamePlayerFindOptions);
@@ -35749,15 +36026,15 @@ class GetStatisticsLeaderboardRequestHandler extends GamePlayerBaseRequestHandle
35749
36026
  let key = request.key;
35750
36027
  let version = request.version;
35751
36028
  let cacheKey = "gamePlayerStatisticsLeaderboard_" + key + "_" + version;
35752
- if (!this.gnServer.getCacheData().isValid(cacheKey)) {
36029
+ if (!cacheData.isValid(cacheKey)) {
35753
36030
  let result = yield backupStatisticsLeaderboardCollection.findOne({ key: key, version: version });
35754
36031
  if (result == null) {
35755
36032
  operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.VersionInvalid);
35756
36033
  return operationResponse;
35757
36034
  }
35758
- this.gnServer.getCacheData().setData(cacheKey, result, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
36035
+ cacheData.setData(cacheKey, result, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
35759
36036
  }
35760
- let backupData = this.gnServer.getCacheData().getData(cacheKey);
36037
+ let backupData = cacheData.getData(cacheKey);
35761
36038
  let gnResults = new GNData_1.GNArray();
35762
36039
  let gamePlayerFindOptions = this.convertToGamePlayerFindOptions(request.infoRequestParam);
35763
36040
  for (let i = request.skip; i < request.skip + request.limit; i++) {
@@ -35862,9 +36139,6 @@ class AdminGetStatisticsLogOperationRequest extends ServerGetStatisticsLogOperat
35862
36139
  }
35863
36140
  }
35864
36141
  class GetStatisticsLogRequestHandler extends RequestHandler_1.RequestHandler {
35865
- init() {
35866
- this.gnServer.getCacheData;
35867
- }
35868
36142
  getCode() {
35869
36143
  return OperationCode_1.OperationCode.GetStatisticsLog;
35870
36144
  }
@@ -41439,15 +41713,16 @@ class GetCreateLeaderboardRequestHandler extends GroupBaseRequestHandler_1.Group
41439
41713
  request.loadFromCache = false;
41440
41714
  }
41441
41715
  }
41716
+ let cacheData = this.gnServer.getCacheData(secretInfo.getGameId());
41442
41717
  if (request.loadFromCache) {
41443
- if (!this.gnServer.getCacheData().isValid(cacheKey)) {
41718
+ if (!cacheData.isValid(cacheKey)) {
41444
41719
  request.loadFromCache = false;
41445
41720
  }
41446
41721
  }
41447
41722
  let gnResults = new GNData_1.GNArray();
41448
41723
  let groups;
41449
41724
  if (request.loadFromCache) {
41450
- groups = this.gnServer.getCacheData().getData(cacheKey);
41725
+ groups = cacheData.getData(cacheKey);
41451
41726
  for (let i = request.skip; i < request.skip + request.limit; i++) {
41452
41727
  if (i >= groups.length)
41453
41728
  break;
@@ -41473,7 +41748,7 @@ class GetCreateLeaderboardRequestHandler extends GroupBaseRequestHandler_1.Group
41473
41748
  gnResult.add(GNParameterCode_1.GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(group, request.infoRequestParam, secretInfo.getGameId()));
41474
41749
  gnResults.add(gnResult);
41475
41750
  }
41476
- this.gnServer.getCacheData().setData(cacheKey, groups, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
41751
+ cacheData.setData(cacheKey, groups, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
41477
41752
  }
41478
41753
  else {
41479
41754
  groups = yield this.gnServer.getDatabase().loadGroupsLeaderboardWithCreateAsync(request.skip, request.limit, secretInfo.getGameId(), groupFindOptions);
@@ -41571,9 +41846,6 @@ class AdminGetCurrencyLogOperationRequest extends ServerGetCurrencyLogOperationR
41571
41846
  }
41572
41847
  }
41573
41848
  class GetCurrencyLogRequestHandler extends RequestHandler_1.RequestHandler {
41574
- init() {
41575
- this.gnServer.getCacheData;
41576
- }
41577
41849
  getCode() {
41578
41850
  return OperationCode_1.OperationCode.GetCurrencyLog;
41579
41851
  }
@@ -44036,8 +44308,9 @@ class GetStatisticsLeaderboardAroundGroupRequestHandler extends GroupBaseRequest
44036
44308
  request.loadFromCache = false;
44037
44309
  }
44038
44310
  }
44311
+ let cacheData = this.gnServer.getCacheData(secretInfo.getGameId());
44039
44312
  if (request.loadFromCache) {
44040
- if (!this.gnServer.getCacheData().isValid(cacheKey) || !this.gnServer.getCacheData().isValid(positionCacheKey)) {
44313
+ if (!cacheData.isValid(cacheKey) || !cacheData.isValid(positionCacheKey)) {
44041
44314
  request.loadFromCache = false;
44042
44315
  }
44043
44316
  }
@@ -44045,8 +44318,8 @@ class GetStatisticsLeaderboardAroundGroupRequestHandler extends GroupBaseRequest
44045
44318
  let thisPosition;
44046
44319
  let groups;
44047
44320
  if (request.loadFromCache) {
44048
- thisPosition = this.gnServer.getCacheData().getData(positionCacheKey);
44049
- groups = this.gnServer.getCacheData().getData(cacheKey);
44321
+ thisPosition = cacheData.getData(positionCacheKey);
44322
+ groups = cacheData.getData(cacheKey);
44050
44323
  for (let i = request.skip; i < request.skip + request.limit; i++) {
44051
44324
  if (i >= groups.length)
44052
44325
  break;
@@ -44063,7 +44336,7 @@ class GetStatisticsLeaderboardAroundGroupRequestHandler extends GroupBaseRequest
44063
44336
  let direction = statisticsAggregationMethod == xStatisticsAggregationMethod_1.xStatisticsAggregationMethod.Minimum ? 1 : -1;
44064
44337
  thisPosition = yield this.gnServer.getDatabase().loadPositionGroupLeaderboardWithStatisticsAsync(request.key, request.groupId, request.catalogId, secretInfo.getGameId(), groupStatisticsSettingsItem.initialValue, direction);
44065
44338
  if (thisPosition != -1) {
44066
- this.gnServer.getCacheData().setData(positionCacheKey, thisPosition, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
44339
+ cacheData.setData(positionCacheKey, thisPosition, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
44067
44340
  let groupFindOptions = this.convertToGroupFindOptions(request.infoRequestParam);
44068
44341
  if (request.skip + request.limit <= 100) {
44069
44342
  groupFindOptions = null;
@@ -44078,7 +44351,7 @@ class GetStatisticsLeaderboardAroundGroupRequestHandler extends GroupBaseRequest
44078
44351
  gnResult.add(GNParameterCode_1.GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(group, request.infoRequestParam, secretInfo.getGameId()));
44079
44352
  gnResults.add(gnResult);
44080
44353
  }
44081
- this.gnServer.getCacheData().setData(cacheKey, groups, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
44354
+ cacheData.setData(cacheKey, groups, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
44082
44355
  }
44083
44356
  else {
44084
44357
  groups = yield this.gnServer.getDatabase().loadGroupsLeaderboardWithStatisticsAsync(request.key, thisPosition + request.skip, request.limit, request.catalogId, secretInfo.getGameId(), direction, groupFindOptions);
@@ -44275,6 +44548,7 @@ class GetStatisticsLeaderboardRequestHandler extends GroupBaseRequestHandler_1.G
44275
44548
  operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.KeyNotFound);
44276
44549
  return operationResponse;
44277
44550
  }
44551
+ let cacheData = this.gnServer.getCacheData(secretInfo.getGameId());
44278
44552
  if (!request.version) {
44279
44553
  let cacheKey = "groupStatisticsLeaderboard_" + request.key;
44280
44554
  if (request.catalogId)
@@ -44285,14 +44559,14 @@ class GetStatisticsLeaderboardRequestHandler extends GroupBaseRequestHandler_1.G
44285
44559
  }
44286
44560
  }
44287
44561
  if (request.loadFromCache) {
44288
- if (!this.gnServer.getCacheData().isValid(cacheKey)) {
44562
+ if (!cacheData.isValid(cacheKey)) {
44289
44563
  request.loadFromCache = false;
44290
44564
  }
44291
44565
  }
44292
44566
  let gnResults = new GNData_1.GNArray();
44293
44567
  let groups;
44294
44568
  if (request.loadFromCache) {
44295
- groups = this.gnServer.getCacheData().getData(cacheKey);
44569
+ groups = cacheData.getData(cacheKey);
44296
44570
  for (let i = request.skip; i < request.skip + request.limit; i++) {
44297
44571
  if (i >= groups.length)
44298
44572
  break;
@@ -44321,7 +44595,7 @@ class GetStatisticsLeaderboardRequestHandler extends GroupBaseRequestHandler_1.G
44321
44595
  gnResult.add(GNParameterCode_1.GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(group, request.infoRequestParam, secretInfo.getGameId()));
44322
44596
  gnResults.add(gnResult);
44323
44597
  }
44324
- this.gnServer.getCacheData().setData(cacheKey, groups, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
44598
+ cacheData.setData(cacheKey, groups, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
44325
44599
  }
44326
44600
  else {
44327
44601
  groups = yield this.gnServer.getDatabase().loadGroupsLeaderboardWithStatisticsAsync(request.key, request.skip, request.limit, request.catalogId, secretInfo.getGameId(), direction, groupFindOptions);
@@ -44343,15 +44617,15 @@ class GetStatisticsLeaderboardRequestHandler extends GroupBaseRequestHandler_1.G
44343
44617
  let key = request.key;
44344
44618
  let version = request.version;
44345
44619
  let cacheKey = "groupStatisticsLeaderboard_" + key + "_" + version;
44346
- if (!this.gnServer.getCacheData().isValid(cacheKey)) {
44620
+ if (!cacheData.isValid(cacheKey)) {
44347
44621
  let result = yield backupStatisticsLeaderboardCollection.findOne({ key: key, version: version });
44348
44622
  if (result == null) {
44349
44623
  operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.VersionInvalid);
44350
44624
  return operationResponse;
44351
44625
  }
44352
- this.gnServer.getCacheData().setData(cacheKey, result, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
44626
+ cacheData.setData(cacheKey, result, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
44353
44627
  }
44354
- let backupData = this.gnServer.getCacheData().getData(cacheKey);
44628
+ let backupData = cacheData.getData(cacheKey);
44355
44629
  let gnResults = new GNData_1.GNArray();
44356
44630
  let groupFindOptions = this.convertToGroupFindOptions(request.infoRequestParam);
44357
44631
  for (let i = request.skip; i < request.skip + request.limit; i++) {
@@ -44456,9 +44730,6 @@ class AdminGetStatisticsLogOperationRequest extends ServerGetStatisticsLogOperat
44456
44730
  }
44457
44731
  }
44458
44732
  class GetStatisticsLogRequestHandler extends RequestHandler_1.RequestHandler {
44459
- init() {
44460
- this.gnServer.getCacheData;
44461
- }
44462
44733
  getCode() {
44463
44734
  return OperationCode_1.OperationCode.GetStatisticsLog;
44464
44735
  }
@@ -45564,7 +45835,7 @@ class GroupBaseRequestHandler extends RequestHandler_1.RequestHandler {
45564
45835
  }
45565
45836
  getGroupMessages(groupId, gameId, skip, limit) {
45566
45837
  return __awaiter(this, void 0, void 0, function* () {
45567
- let cacheData = this.gnServer.getCacheData();
45838
+ let cacheData = this.gnServer.getCacheData(gameId);
45568
45839
  if (!cacheData.hasData("GroupMessages_" + groupId)) {
45569
45840
  cacheData.setData("GroupMessages_" + groupId, yield this.getDatabaseGroupMessage(groupId, gameId), GroupBaseRequestHandler.EXPIRED_CACHE);
45570
45841
  }
@@ -45606,7 +45877,7 @@ class GroupBaseRequestHandler extends RequestHandler_1.RequestHandler {
45606
45877
  }
45607
45878
  sendGroupMessage(groupId, gameId, groupMessageItem) {
45608
45879
  return __awaiter(this, void 0, void 0, function* () {
45609
- let cacheData = this.gnServer.getCacheData();
45880
+ let cacheData = this.gnServer.getCacheData(gameId);
45610
45881
  if (!cacheData.isValid("GroupMessages_" + groupId)) {
45611
45882
  cacheData.setData("GroupMessages_" + groupId, yield this.getDatabaseGroupMessage(groupId, gameId), GroupBaseRequestHandler.EXPIRED_CACHE);
45612
45883
  }
@@ -49064,15 +49335,16 @@ class GetCreateLeaderboardRequestHandler extends ItemBaseRequestHandler_1.ItemBa
49064
49335
  request.loadFromCache = false;
49065
49336
  }
49066
49337
  }
49338
+ let cacheData = this.gnServer.getCacheData(secretInfo.getGameId());
49067
49339
  if (request.loadFromCache) {
49068
- if (!this.gnServer.getCacheData().isValid(cacheKey)) {
49340
+ if (!cacheData.isValid(cacheKey)) {
49069
49341
  request.loadFromCache = false;
49070
49342
  }
49071
49343
  }
49072
49344
  let gnResults = new GNData_1.GNArray();
49073
49345
  let inventorys;
49074
49346
  if (request.loadFromCache) {
49075
- inventorys = this.gnServer.getCacheData().getData(cacheKey);
49347
+ inventorys = cacheData.getData(cacheKey);
49076
49348
  for (let i = request.skip; i < request.skip + request.limit; i++) {
49077
49349
  if (i >= inventorys.length)
49078
49350
  break;
@@ -49098,7 +49370,7 @@ class GetCreateLeaderboardRequestHandler extends ItemBaseRequestHandler_1.ItemBa
49098
49370
  gnResult.add(GNParameterCode_1.GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(inventory, request.infoRequestParam, secretInfo.getGameId()));
49099
49371
  gnResults.add(gnResult);
49100
49372
  }
49101
- this.gnServer.getCacheData().setData(cacheKey, inventorys, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
49373
+ cacheData.setData(cacheKey, inventorys, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
49102
49374
  }
49103
49375
  else {
49104
49376
  inventorys = yield this.gnServer.getDatabase().loadInventoriesLeaderboardWithCreateAsync(request.skip, request.limit, secretInfo.getGameId(), inventoryFindOptions);
@@ -51116,8 +51388,9 @@ class GetStatisticsLeaderboardAroundItemRequestHandler extends ItemBaseRequestHa
51116
51388
  request.loadFromCache = false;
51117
51389
  }
51118
51390
  }
51391
+ let cacheData = this.gnServer.getCacheData(secretInfo.getGameId());
51119
51392
  if (request.loadFromCache) {
51120
- if (!this.gnServer.getCacheData().isValid(cacheKey) || !this.gnServer.getCacheData().isValid(positionCacheKey)) {
51393
+ if (!cacheData.isValid(cacheKey) || !cacheData.isValid(positionCacheKey)) {
51121
51394
  request.loadFromCache = false;
51122
51395
  }
51123
51396
  }
@@ -51125,8 +51398,8 @@ class GetStatisticsLeaderboardAroundItemRequestHandler extends ItemBaseRequestHa
51125
51398
  let thisPosition;
51126
51399
  let inventories;
51127
51400
  if (request.loadFromCache) {
51128
- thisPosition = this.gnServer.getCacheData().getData(positionCacheKey);
51129
- inventories = this.gnServer.getCacheData().getData(cacheKey);
51401
+ thisPosition = cacheData.getData(positionCacheKey);
51402
+ inventories = cacheData.getData(cacheKey);
51130
51403
  for (let i = request.skip; i < request.skip + request.limit; i++) {
51131
51404
  if (i >= inventories.length)
51132
51405
  break;
@@ -51143,7 +51416,7 @@ class GetStatisticsLeaderboardAroundItemRequestHandler extends ItemBaseRequestHa
51143
51416
  let direction = statisticsAggregationMethod == xStatisticsAggregationMethod_1.xStatisticsAggregationMethod.Minimum ? 1 : -1;
51144
51417
  thisPosition = yield this.gnServer.getDatabase().loadPositionInventoryLeaderboardWithStatisticsAsync(request.key, request.itemId, request.catalogId, secretInfo.getGameId(), inventoryStatisticsSettingsItem.initialValue, direction);
51145
51418
  if (thisPosition != -1) {
51146
- this.gnServer.getCacheData().setData(positionCacheKey, thisPosition, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
51419
+ cacheData.setData(positionCacheKey, thisPosition, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
51147
51420
  let inventoryFindOptions = this.convertToInventoryFindOptions(request.infoRequestParam);
51148
51421
  if (request.skip + request.limit <= 100) {
51149
51422
  inventoryFindOptions = null;
@@ -51158,7 +51431,7 @@ class GetStatisticsLeaderboardAroundItemRequestHandler extends ItemBaseRequestHa
51158
51431
  gnResult.add(GNParameterCode_1.GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(inventory, request.infoRequestParam, secretInfo.getGameId()));
51159
51432
  gnResults.add(gnResult);
51160
51433
  }
51161
- this.gnServer.getCacheData().setData(cacheKey, inventories, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
51434
+ cacheData.setData(cacheKey, inventories, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
51162
51435
  }
51163
51436
  else {
51164
51437
  inventories = yield this.gnServer.getDatabase().loadInventoriesLeaderboardWithStatisticsAsync(request.key, thisPosition + request.skip, request.limit, request.catalogId, secretInfo.getGameId(), direction, inventoryFindOptions);
@@ -51355,6 +51628,7 @@ class GetStatisticsLeaderboardRequestHandler extends ItemBaseRequestHandler_1.It
51355
51628
  operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.KeyNotFound);
51356
51629
  return operationResponse;
51357
51630
  }
51631
+ let cacheData = this.gnServer.getCacheData(secretInfo.getGameId());
51358
51632
  if (!request.version) {
51359
51633
  let cacheKey = "inventoryStatisticsLeaderboard_" + request.key;
51360
51634
  if (request.catalogId)
@@ -51365,14 +51639,14 @@ class GetStatisticsLeaderboardRequestHandler extends ItemBaseRequestHandler_1.It
51365
51639
  }
51366
51640
  }
51367
51641
  if (request.loadFromCache) {
51368
- if (!this.gnServer.getCacheData().isValid(cacheKey)) {
51642
+ if (!cacheData.isValid(cacheKey)) {
51369
51643
  request.loadFromCache = false;
51370
51644
  }
51371
51645
  }
51372
51646
  let gnResults = new GNData_1.GNArray();
51373
51647
  let inventorys;
51374
51648
  if (request.loadFromCache) {
51375
- inventorys = this.gnServer.getCacheData().getData(cacheKey);
51649
+ inventorys = cacheData.getData(cacheKey);
51376
51650
  for (let i = request.skip; i < request.skip + request.limit; i++) {
51377
51651
  if (i >= inventorys.length)
51378
51652
  break;
@@ -51401,7 +51675,7 @@ class GetStatisticsLeaderboardRequestHandler extends ItemBaseRequestHandler_1.It
51401
51675
  gnResult.add(GNParameterCode_1.GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(inventory, request.infoRequestParam, secretInfo.getGameId()));
51402
51676
  gnResults.add(gnResult);
51403
51677
  }
51404
- this.gnServer.getCacheData().setData(cacheKey, inventorys, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
51678
+ cacheData.setData(cacheKey, inventorys, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
51405
51679
  }
51406
51680
  else {
51407
51681
  inventorys = yield this.gnServer.getDatabase().loadInventoriesLeaderboardWithStatisticsAsync(request.key, request.skip, request.limit, request.catalogId, secretInfo.getGameId(), direction, inventoryFindOptions);
@@ -51423,15 +51697,15 @@ class GetStatisticsLeaderboardRequestHandler extends ItemBaseRequestHandler_1.It
51423
51697
  let key = request.key;
51424
51698
  let version = request.version;
51425
51699
  let cacheKey = "inventoryStatisticsLeaderboard_" + key + "_" + version;
51426
- if (!this.gnServer.getCacheData().isValid(cacheKey)) {
51700
+ if (!cacheData.isValid(cacheKey)) {
51427
51701
  let result = yield backupStatisticsLeaderboardCollection.findOne({ key: key, version: version });
51428
51702
  if (result == null) {
51429
51703
  operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.VersionInvalid);
51430
51704
  return operationResponse;
51431
51705
  }
51432
- this.gnServer.getCacheData().setData(cacheKey, result, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
51706
+ cacheData.setData(cacheKey, result, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
51433
51707
  }
51434
- let backupData = this.gnServer.getCacheData().getData(cacheKey);
51708
+ let backupData = cacheData.getData(cacheKey);
51435
51709
  let gnResults = new GNData_1.GNArray();
51436
51710
  let inventoryFindOptions = this.convertToInventoryFindOptions(request.infoRequestParam);
51437
51711
  for (let i = request.skip; i < request.skip + request.limit; i++) {
@@ -51536,9 +51810,6 @@ class AdminGetStatisticsLogOperationRequest extends ServerGetStatisticsLogOperat
51536
51810
  }
51537
51811
  }
51538
51812
  class GetStatisticsLogRequestHandler extends RequestHandler_1.RequestHandler {
51539
- init() {
51540
- this.gnServer.getCacheData;
51541
- }
51542
51813
  getCode() {
51543
51814
  return OperationCode_1.OperationCode.GetStatisticsLog;
51544
51815
  }
@@ -55459,15 +55730,16 @@ class GetCreateLeaderboardRequestHandler extends MasterPlayerBaseRequestHandler_
55459
55730
  request.loadFromCache = false;
55460
55731
  }
55461
55732
  }
55733
+ let cacheData = this.gnServer.getCacheData(secretInfo.getGameId());
55462
55734
  if (request.loadFromCache) {
55463
- if (!this.gnServer.getCacheData().isValid(cacheKey)) {
55735
+ if (!cacheData.isValid(cacheKey)) {
55464
55736
  request.loadFromCache = false;
55465
55737
  }
55466
55738
  }
55467
55739
  let gnResults = new GNData_1.GNArray();
55468
55740
  let masterPlayers;
55469
55741
  if (request.loadFromCache) {
55470
- masterPlayers = this.gnServer.getCacheData().getData(cacheKey);
55742
+ masterPlayers = cacheData.getData(cacheKey);
55471
55743
  for (let i = request.skip; i < request.skip + request.limit; i++) {
55472
55744
  if (i >= masterPlayers.length)
55473
55745
  break;
@@ -55493,7 +55765,7 @@ class GetCreateLeaderboardRequestHandler extends MasterPlayerBaseRequestHandler_
55493
55765
  gnResult.add(GNParameterCode_1.GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(masterPlayer, request.infoRequestParam));
55494
55766
  gnResults.add(gnResult);
55495
55767
  }
55496
- this.gnServer.getCacheData().setData(cacheKey, masterPlayers, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
55768
+ cacheData.setData(cacheKey, masterPlayers, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
55497
55769
  }
55498
55770
  else {
55499
55771
  masterPlayers = yield this.gnServer.getDatabase().loadMasterPlayersLeaderboardWithCreateAsync(request.skip, request.limit, masterPlayerFindOptions);
@@ -55680,15 +55952,16 @@ class GetCurrencyLeaderboardRequestHandler extends MasterPlayerBaseRequestHandle
55680
55952
  request.loadFromCache = false;
55681
55953
  }
55682
55954
  }
55955
+ let cacheData = this.gnServer.getCacheData(secretInfo.getGameId());
55683
55956
  if (request.loadFromCache) {
55684
- if (!this.gnServer.getCacheData().isValid(cacheKey)) {
55957
+ if (!cacheData.isValid(cacheKey)) {
55685
55958
  request.loadFromCache = false;
55686
55959
  }
55687
55960
  }
55688
55961
  let gnResults = new GNData_1.GNArray();
55689
55962
  let masterPlayers;
55690
55963
  if (request.loadFromCache) {
55691
- masterPlayers = this.gnServer.getCacheData().getData(cacheKey);
55964
+ masterPlayers = cacheData.getData(cacheKey);
55692
55965
  for (let i = request.skip; i < request.skip + request.limit; i++) {
55693
55966
  if (i >= masterPlayers.length)
55694
55967
  break;
@@ -55715,7 +55988,7 @@ class GetCurrencyLeaderboardRequestHandler extends MasterPlayerBaseRequestHandle
55715
55988
  gnResult.add(GNParameterCode_1.GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(masterPlayer, request.infoRequestParam));
55716
55989
  gnResults.add(gnResult);
55717
55990
  }
55718
- this.gnServer.getCacheData().setData(cacheKey, masterPlayers, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
55991
+ cacheData.setData(cacheKey, masterPlayers, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
55719
55992
  }
55720
55993
  else {
55721
55994
  masterPlayers = yield this.gnServer.getDatabase().loadMasterPlayersLeaderboardWithCurrenciesAsync(request.key, request.skip, request.limit, masterPlayerFindOptions);
@@ -55813,9 +56086,6 @@ class AdminGetCurrencyLogOperationRequest extends ServerGetCurrencyLogOperationR
55813
56086
  }
55814
56087
  }
55815
56088
  class GetCurrencyLogRequestHandler extends RequestHandler_1.RequestHandler {
55816
- init() {
55817
- this.gnServer.getCacheData;
55818
- }
55819
56089
  getCode() {
55820
56090
  return OperationCode_1.OperationCode.GetCurrencyLog;
55821
56091
  }
@@ -56866,15 +57136,16 @@ class GetLastLoginLeaderboardRequestHandler extends MasterPlayerBaseRequestHandl
56866
57136
  request.loadFromCache = false;
56867
57137
  }
56868
57138
  }
57139
+ let cacheData = this.gnServer.getCacheData(secretInfo.getGameId());
56869
57140
  if (request.loadFromCache) {
56870
- if (!this.gnServer.getCacheData().isValid(cacheKey)) {
57141
+ if (!cacheData.isValid(cacheKey)) {
56871
57142
  request.loadFromCache = false;
56872
57143
  }
56873
57144
  }
56874
57145
  let gnResults = new GNData_1.GNArray();
56875
57146
  let masterPlayers;
56876
57147
  if (request.loadFromCache) {
56877
- masterPlayers = this.gnServer.getCacheData().getData(cacheKey);
57148
+ masterPlayers = cacheData.getData(cacheKey);
56878
57149
  for (let i = request.skip; i < request.skip + request.limit; i++) {
56879
57150
  if (i >= masterPlayers.length)
56880
57151
  break;
@@ -56900,7 +57171,7 @@ class GetLastLoginLeaderboardRequestHandler extends MasterPlayerBaseRequestHandl
56900
57171
  gnResult.add(GNParameterCode_1.GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(masterPlayer, request.infoRequestParam));
56901
57172
  gnResults.add(gnResult);
56902
57173
  }
56903
- this.gnServer.getCacheData().setData(cacheKey, masterPlayers, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
57174
+ cacheData.setData(cacheKey, masterPlayers, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
56904
57175
  }
56905
57176
  else {
56906
57177
  masterPlayers = yield this.gnServer.getDatabase().loadMasterPlayersLeaderboardWithLastLoginAsync(request.skip, request.limit, masterPlayerFindOptions);
@@ -59649,8 +59920,9 @@ class GetStatisticsLeaderboardAroundPlayerRequestHandler extends MasterPlayerBas
59649
59920
  request.loadFromCache = false;
59650
59921
  }
59651
59922
  }
59923
+ let cacheData = this.gnServer.getCacheData(secretInfo.getGameId());
59652
59924
  if (request.loadFromCache) {
59653
- if (!this.gnServer.getCacheData().isValid(cacheKey) || !this.gnServer.getCacheData().isValid(positionCacheKey)) {
59925
+ if (!cacheData.isValid(cacheKey) || !cacheData.isValid(positionCacheKey)) {
59654
59926
  request.loadFromCache = false;
59655
59927
  }
59656
59928
  }
@@ -59658,8 +59930,8 @@ class GetStatisticsLeaderboardAroundPlayerRequestHandler extends MasterPlayerBas
59658
59930
  let thisPosition;
59659
59931
  let masterPlayers;
59660
59932
  if (request.loadFromCache) {
59661
- thisPosition = this.gnServer.getCacheData().getData(positionCacheKey);
59662
- masterPlayers = this.gnServer.getCacheData().getData(cacheKey);
59933
+ thisPosition = cacheData.getData(positionCacheKey);
59934
+ masterPlayers = cacheData.getData(cacheKey);
59663
59935
  for (let i = request.skip; i < request.skip + request.limit; i++) {
59664
59936
  if (i >= masterPlayers.length)
59665
59937
  break;
@@ -59676,7 +59948,7 @@ class GetStatisticsLeaderboardAroundPlayerRequestHandler extends MasterPlayerBas
59676
59948
  let direction = statisticsAggregationMethod == xStatisticsAggregationMethod_1.xStatisticsAggregationMethod.Minimum ? 1 : -1;
59677
59949
  thisPosition = yield this.gnServer.getDatabase().loadPositionMasterPlayerLeaderboardWithStatisticsAsync(request.key, request.userId, playerStatisticsSettingsItem.initialValue, direction);
59678
59950
  if (thisPosition != -1) {
59679
- this.gnServer.getCacheData().setData(positionCacheKey, thisPosition, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
59951
+ cacheData.setData(positionCacheKey, thisPosition, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
59680
59952
  let masterPlayerFindOptions = this.convertToMasterPlayerFindOptions(request.infoRequestParam);
59681
59953
  if (request.skip + request.limit <= 100) {
59682
59954
  masterPlayerFindOptions = null;
@@ -59691,7 +59963,7 @@ class GetStatisticsLeaderboardAroundPlayerRequestHandler extends MasterPlayerBas
59691
59963
  gnResult.add(GNParameterCode_1.GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(masterPlayer, request.infoRequestParam));
59692
59964
  gnResults.add(gnResult);
59693
59965
  }
59694
- this.gnServer.getCacheData().setData(cacheKey, masterPlayers, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
59966
+ cacheData.setData(cacheKey, masterPlayers, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
59695
59967
  }
59696
59968
  else {
59697
59969
  masterPlayers = yield this.gnServer.getDatabase().loadMasterPlayersLeaderboardWithStatisticsAsync(request.key, thisPosition + request.skip, request.limit, direction, masterPlayerFindOptions);
@@ -59881,6 +60153,7 @@ class GetStatisticsLeaderboardRequestHandler extends MasterPlayerBaseRequestHand
59881
60153
  operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.KeyNotFound);
59882
60154
  return operationResponse;
59883
60155
  }
60156
+ let cacheData = this.gnServer.getCacheData(secretInfo.getGameId());
59884
60157
  if (!request.version) {
59885
60158
  let cacheKey = "masterPlayerStatisticsLeaderboard_" + request.key;
59886
60159
  if (request.loadFromCache) {
@@ -59889,14 +60162,14 @@ class GetStatisticsLeaderboardRequestHandler extends MasterPlayerBaseRequestHand
59889
60162
  }
59890
60163
  }
59891
60164
  if (request.loadFromCache) {
59892
- if (!this.gnServer.getCacheData().isValid(cacheKey)) {
60165
+ if (!cacheData.isValid(cacheKey)) {
59893
60166
  request.loadFromCache = false;
59894
60167
  }
59895
60168
  }
59896
60169
  let gnResults = new GNData_1.GNArray();
59897
60170
  let masterPlayers;
59898
60171
  if (request.loadFromCache) {
59899
- masterPlayers = this.gnServer.getCacheData().getData(cacheKey);
60172
+ masterPlayers = cacheData.getData(cacheKey);
59900
60173
  for (let i = request.skip; i < request.skip + request.limit; i++) {
59901
60174
  if (i >= masterPlayers.length)
59902
60175
  break;
@@ -59925,7 +60198,7 @@ class GetStatisticsLeaderboardRequestHandler extends MasterPlayerBaseRequestHand
59925
60198
  gnResult.add(GNParameterCode_1.GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(masterPlayer, request.infoRequestParam));
59926
60199
  gnResults.add(gnResult);
59927
60200
  }
59928
- this.gnServer.getCacheData().setData(cacheKey, masterPlayers, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
60201
+ cacheData.setData(cacheKey, masterPlayers, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
59929
60202
  }
59930
60203
  else {
59931
60204
  masterPlayers = yield this.gnServer.getDatabase().loadMasterPlayersLeaderboardWithStatisticsAsync(request.key, request.skip, request.limit, direction, masterPlayerFindOptions);
@@ -59946,15 +60219,15 @@ class GetStatisticsLeaderboardRequestHandler extends MasterPlayerBaseRequestHand
59946
60219
  let key = request.key;
59947
60220
  let version = request.version;
59948
60221
  let cacheKey = "masterPlayerStatisticsLeaderboard_" + key + "_" + version;
59949
- if (!this.gnServer.getCacheData().isValid(cacheKey)) {
60222
+ if (!cacheData.isValid(cacheKey)) {
59950
60223
  let result = yield backupStatisticsLeaderboardCollection.findOne({ key: key, version: version });
59951
60224
  if (result == null) {
59952
60225
  operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.VersionInvalid);
59953
60226
  return operationResponse;
59954
60227
  }
59955
- this.gnServer.getCacheData().setData(cacheKey, result, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
60228
+ cacheData.setData(cacheKey, result, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
59956
60229
  }
59957
- let backupData = this.gnServer.getCacheData().getData(cacheKey);
60230
+ let backupData = cacheData.getData(cacheKey);
59958
60231
  let gnResults = new GNData_1.GNArray();
59959
60232
  let masterPlayerFindOptions = this.convertToMasterPlayerFindOptions(request.infoRequestParam);
59960
60233
  for (let i = request.skip; i < request.skip + request.limit; i++) {
@@ -60059,9 +60332,6 @@ class AdminGetStatisticsLogOperationRequest extends ServerGetStatisticsLogOperat
60059
60332
  }
60060
60333
  }
60061
60334
  class GetStatisticsLogRequestHandler extends RequestHandler_1.RequestHandler {
60062
- init() {
60063
- this.gnServer.getCacheData;
60064
- }
60065
60335
  getCode() {
60066
60336
  return OperationCode_1.OperationCode.GetStatisticsLog;
60067
60337
  }
@@ -73239,6 +73509,7 @@ const OwnerType_1 = __webpack_require__(90062);
73239
73509
  const GroupStatus_1 = __webpack_require__(6516);
73240
73510
  const StoreReceiveType_1 = __webpack_require__(23591);
73241
73511
  const xDatetime_1 = __webpack_require__(21817);
73512
+ const StoreItemType_1 = __webpack_require__(26155);
73242
73513
  class BuyStoreItemOperationRequest extends OperationRequest_1.OperationRequest {
73243
73514
  isValidRequest() {
73244
73515
  if (!super.isValidRequest())
@@ -73247,7 +73518,7 @@ class BuyStoreItemOperationRequest extends OperationRequest_1.OperationRequest {
73247
73518
  }
73248
73519
  }
73249
73520
  __decorate([
73250
- (0, DataMember_1.StringDataMember)({ code: GNParameterCode_1.GNParameterCode.StoreId, minLength: 10, maxLength: 10, mustNonNull: true }),
73521
+ (0, DataMember_1.StringDataMember)({ code: GNParameterCode_1.GNParameterCode.StoreId, minLength: 10, maxLength: 32, mustNonNull: true }),
73251
73522
  __metadata("design:type", String)
73252
73523
  ], BuyStoreItemOperationRequest.prototype, "storeId", void 0);
73253
73524
  __decorate([
@@ -73379,6 +73650,13 @@ class BuyStoreItemRequestHandler extends StoreItemBaseRequestHandler_1.StoreItem
73379
73650
  operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.StoreItemHadBeenRemove);
73380
73651
  return operationResponse;
73381
73652
  }
73653
+ if (storeInventory.getStoreItemType() == StoreItemType_1.StoreItemType.NonConsumable) {
73654
+ let purchaseCount = yield this.gnServer.getDatabase().getCountStoreInventoryUsedAsync(request.storeId, secretInfo.getGameId(), request.id);
73655
+ if (purchaseCount != 0) {
73656
+ operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.StoreItemHadPurchaseAndNonConsumable);
73657
+ return operationResponse;
73658
+ }
73659
+ }
73382
73660
  let allPriceCurrencies = storeInventory.getAllPriceCurrencies();
73383
73661
  if (allPriceCurrencies.length == 0) {
73384
73662
  operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.CanNotBuyThisStoreItem);
@@ -73768,6 +74046,8 @@ class BuyStoreItemRequestHandler extends StoreItemBaseRequestHandler_1.StoreItem
73768
74046
  operationResponse.setParameter(GNParameterCode_1.GNParameterCode.InfoResponseParameters, gnInfoResponseParameters);
73769
74047
  }
73770
74048
  this.gnServer.getDatabase().insertStoreInventoryLogAsync(request.storeId, secretInfo.getGameId(), request.id, request.type, priceCurrencyStartValues, priceCurrencyAmountValues, priceCurrencyFinalValues, storeCurrencyStartValues, storeCurrencyAmountValues, storeCurrencyFinalValues, storeItemFinalValues, null, StoreReceiveType_1.StoreReceiveType.Buy, request.log);
74049
+ if (storeInventory.getStoreItemType() == StoreItemType_1.StoreItemType.NonConsumable)
74050
+ this.gnServer.getDatabase().insertStoreInventoryUsedAsync(storeInventory.getStoreId(), secretInfo.getGameId(), request.id, request.type);
73771
74051
  let inAppPurchase = storeInventory.getInAppPurchase();
73772
74052
  if (inAppPurchase.analyticsPrice) {
73773
74053
  this.gnServer.getDatabase().systemCollection("StoreAnalytics").insertOne({
@@ -73936,15 +74216,16 @@ class GetCreateLeaderboardRequestHandler extends StoreItemBaseRequestHandler_1.S
73936
74216
  request.loadFromCache = false;
73937
74217
  }
73938
74218
  }
74219
+ let cacheData = this.gnServer.getCacheData(secretInfo.getGameId());
73939
74220
  if (request.loadFromCache) {
73940
- if (!this.gnServer.getCacheData().isValid(cacheKey)) {
74221
+ if (!cacheData.isValid(cacheKey)) {
73941
74222
  request.loadFromCache = false;
73942
74223
  }
73943
74224
  }
73944
74225
  let gnResults = new GNData_1.GNArray();
73945
74226
  let storeInventorys;
73946
74227
  if (request.loadFromCache) {
73947
- storeInventorys = this.gnServer.getCacheData().getData(cacheKey);
74228
+ storeInventorys = cacheData.getData(cacheKey);
73948
74229
  for (let i = request.skip; i < request.skip + request.limit; i++) {
73949
74230
  if (i >= storeInventorys.length)
73950
74231
  break;
@@ -73970,7 +74251,7 @@ class GetCreateLeaderboardRequestHandler extends StoreItemBaseRequestHandler_1.S
73970
74251
  gnResult.add(GNParameterCode_1.GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(storeInventory, request.infoRequestParam, secretInfo.getGameId()));
73971
74252
  gnResults.add(gnResult);
73972
74253
  }
73973
- this.gnServer.getCacheData().setData(cacheKey, storeInventorys, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
74254
+ cacheData.setData(cacheKey, storeInventorys, xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 5);
73974
74255
  }
73975
74256
  else {
73976
74257
  storeInventorys = yield this.gnServer.getDatabase().loadStoreInventoriesLeaderboardWithCreateAsync(request.skip, request.limit, secretInfo.getGameId(), storeInventoryFindOptions);
@@ -74038,7 +74319,7 @@ class GetStoreItemInformationOperationRequest extends OperationRequest_1.Operati
74038
74319
  }
74039
74320
  }
74040
74321
  __decorate([
74041
- (0, DataMember_1.StringDataMember)({ code: GNParameterCode_1.GNParameterCode.StoreId, minLength: 10, maxLength: 10, mustNonNull: true }),
74322
+ (0, DataMember_1.StringDataMember)({ code: GNParameterCode_1.GNParameterCode.StoreId, minLength: 10, maxLength: 32, mustNonNull: true }),
74042
74323
  __metadata("design:type", String)
74043
74324
  ], GetStoreItemInformationOperationRequest.prototype, "storeId", void 0);
74044
74325
  __decorate([
@@ -74346,7 +74627,7 @@ class GetStoreLogOperationRequest extends OperationRequest_1.OperationRequest {
74346
74627
  }
74347
74628
  }
74348
74629
  __decorate([
74349
- (0, DataMember_1.StringDataMember)({ code: GNParameterCode_1.GNParameterCode.StoreId, minLength: 10, maxLength: 10, mustNonNull: true, isOptional: true }),
74630
+ (0, DataMember_1.StringDataMember)({ code: GNParameterCode_1.GNParameterCode.StoreId, minLength: 10, maxLength: 32, mustNonNull: true, isOptional: true }),
74350
74631
  __metadata("design:type", String)
74351
74632
  ], GetStoreLogOperationRequest.prototype, "storeId", void 0);
74352
74633
  __decorate([
@@ -74580,6 +74861,141 @@ class GetStoreLogRequestHandler extends StoreItemBaseRequestHandler_1.StoreItemB
74580
74861
  exports.GetStoreLogRequestHandler = GetStoreLogRequestHandler;
74581
74862
 
74582
74863
 
74864
+ /***/ }),
74865
+
74866
+ /***/ 6906:
74867
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
74868
+
74869
+
74870
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
74871
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
74872
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
74873
+ 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;
74874
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
74875
+ };
74876
+ var __metadata = (this && this.__metadata) || function (k, v) {
74877
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
74878
+ };
74879
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
74880
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
74881
+ return new (P || (P = Promise))(function (resolve, reject) {
74882
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
74883
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
74884
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
74885
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
74886
+ });
74887
+ };
74888
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
74889
+ exports.GetStoreUsedRequestHandler = void 0;
74890
+ const OperationRequest_1 = __webpack_require__(25885);
74891
+ const OperationResponse_1 = __webpack_require__(27623);
74892
+ const OperationCode_1 = __webpack_require__(10675);
74893
+ const ParameterCode_1 = __webpack_require__(35284);
74894
+ const ReturnCode_1 = __webpack_require__(99060);
74895
+ const DataMember_1 = __webpack_require__(42364);
74896
+ const GNParameterCode_1 = __webpack_require__(38343);
74897
+ const GNData_1 = __webpack_require__(67549);
74898
+ const GNErrorCode_1 = __webpack_require__(94559);
74899
+ const StoreItemBaseRequestHandler_1 = __webpack_require__(96764);
74900
+ class GetStoreUsedOperationRequest extends OperationRequest_1.OperationRequest {
74901
+ }
74902
+ __decorate([
74903
+ (0, DataMember_1.StringDataMember)({ code: GNParameterCode_1.GNParameterCode.StoreId, minLength: 10, maxLength: 32, mustNonNull: true }),
74904
+ __metadata("design:type", String)
74905
+ ], GetStoreUsedOperationRequest.prototype, "storeId", void 0);
74906
+ class ServerGetStoreUsedOperationRequest extends GetStoreUsedOperationRequest {
74907
+ isValidRequest() {
74908
+ if (!super.isValidRequest())
74909
+ return false;
74910
+ return true;
74911
+ }
74912
+ }
74913
+ class AdminGetStoreUsedOperationRequest extends ServerGetStoreUsedOperationRequest {
74914
+ isValidRequest() {
74915
+ if (!super.isValidRequest())
74916
+ return false;
74917
+ return true;
74918
+ }
74919
+ }
74920
+ class GetStoreUsedRequestHandler extends StoreItemBaseRequestHandler_1.StoreItemBaseRequestHandler {
74921
+ getCode() {
74922
+ return OperationCode_1.OperationCode.GetStoreUsed;
74923
+ }
74924
+ getCommonOperationRequest() {
74925
+ return GetStoreUsedOperationRequest;
74926
+ }
74927
+ handle(authInfo, secretInfo, operationRequest) {
74928
+ return __awaiter(this, void 0, void 0, function* () {
74929
+ let request = this.requestConverterService.createTOperationRequest(operationRequest, this.getCommonOperationRequest());
74930
+ if (!request.isValidRequest()) {
74931
+ return this.newInvalidRequestParameters(request);
74932
+ }
74933
+ if (!secretInfo.getPermission().storeInventory.getStoreUsed.otherSelfEnable) {
74934
+ return this.newOperationNotAllowError(request);
74935
+ }
74936
+ return this.execute({
74937
+ storeId: request.storeId,
74938
+ }, secretInfo, operationRequest);
74939
+ });
74940
+ }
74941
+ serverHandle(secretInfo, operationRequest) {
74942
+ return __awaiter(this, void 0, void 0, function* () {
74943
+ let request = this.requestConverterService.createTOperationRequest(operationRequest, ServerGetStoreUsedOperationRequest);
74944
+ if (!request.isValidRequest()) {
74945
+ return this.newInvalidRequestParameters(request);
74946
+ }
74947
+ if (!secretInfo.getPermission().storeInventory.getStoreUsed.serverSelfEnable) {
74948
+ return this.newOperationNotAllowError(request);
74949
+ }
74950
+ return this.execute({
74951
+ storeId: request.storeId,
74952
+ }, secretInfo, operationRequest);
74953
+ });
74954
+ }
74955
+ adminHandle(secretInfo, operationRequest) {
74956
+ return __awaiter(this, void 0, void 0, function* () {
74957
+ let request = this.requestConverterService.createTOperationRequest(operationRequest, AdminGetStoreUsedOperationRequest);
74958
+ if (!request.isValidRequest()) {
74959
+ return this.newInvalidRequestParameters(request);
74960
+ }
74961
+ if (!secretInfo.getPermission().storeInventory.getStoreUsed.adminSelfEnable) {
74962
+ return this.newOperationNotAllowError(request);
74963
+ }
74964
+ return this.execute({
74965
+ storeId: request.storeId,
74966
+ }, secretInfo, operationRequest);
74967
+ });
74968
+ }
74969
+ execute(request, secretInfo, operationRequest) {
74970
+ return __awaiter(this, void 0, void 0, function* () {
74971
+ let operationResponse = yield this.gnServer.getPreEventCallbackService().onEvent("storeInventory_GetStoreUsed", request, secretInfo, operationRequest);
74972
+ if (operationResponse != null) {
74973
+ return operationResponse;
74974
+ }
74975
+ operationResponse = new OperationResponse_1.OperationResponse(operationRequest.getOperationCode(), operationRequest.getRequestId(), operationRequest.isEncrypted());
74976
+ operationResponse.setReturnCode(ReturnCode_1.ReturnCode.Ok);
74977
+ let gnResults = new GNData_1.GNArray();
74978
+ let result = yield this.gnServer.getDatabase().getStoreInventoryUsedAsync(request.storeId, secretInfo.getGameId());
74979
+ if (result != null) {
74980
+ for (let i = 0; i < result.useIds.length; i++) {
74981
+ let useId = result.useIds[i];
74982
+ let gnResult = new GNData_1.GNHashtable();
74983
+ gnResult.add(GNParameterCode_1.GNParameterCode.OwnerId, useId.id);
74984
+ gnResult.add(GNParameterCode_1.GNParameterCode.OwnerType, useId.type);
74985
+ gnResult.add(GNParameterCode_1.GNParameterCode.TsCreate, useId.tsCreate);
74986
+ gnResults.add(gnResult);
74987
+ }
74988
+ }
74989
+ operationResponse.setParameter(GNParameterCode_1.GNParameterCode.Results, gnResults);
74990
+ operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.Ok);
74991
+ yield this.gnServer.getPostEventCallbackService().onEvent("storeInventory_GetStoreUsed", request, secretInfo, operationRequest, operationResponse);
74992
+ return operationResponse;
74993
+ });
74994
+ }
74995
+ }
74996
+ exports.GetStoreUsedRequestHandler = GetStoreUsedRequestHandler;
74997
+
74998
+
74583
74999
  /***/ }),
74584
75000
 
74585
75001
  /***/ 37593:
@@ -74626,7 +75042,7 @@ class GrantStoreItemOperationRequest extends OperationRequest_1.OperationRequest
74626
75042
  }
74627
75043
  }
74628
75044
  __decorate([
74629
- (0, DataMember_1.StringDataMember)({ code: GNParameterCode_1.GNParameterCode.StoreId, minLength: 10, maxLength: 10, mustNonNull: true, isOptional: true }),
75045
+ (0, DataMember_1.StringDataMember)({ code: GNParameterCode_1.GNParameterCode.StoreId, minLength: 10, maxLength: 32, mustNonNull: true, isOptional: true }),
74630
75046
  __metadata("design:type", String)
74631
75047
  ], GrantStoreItemOperationRequest.prototype, "storeId", void 0);
74632
75048
  __decorate([
@@ -74701,15 +75117,20 @@ class GrantStoreItemRequestHandler extends StoreItemBaseRequestHandler_1.StoreIt
74701
75117
  }
74702
75118
  execute(request, secretInfo, operationRequest) {
74703
75119
  return __awaiter(this, void 0, void 0, function* () {
75120
+ var _a;
74704
75121
  let operationResponse = yield this.gnServer.getPreEventCallbackService().onEvent("storeInventory_GrantStoreItem", request, secretInfo, operationRequest);
74705
75122
  if (operationResponse != null) {
74706
75123
  return operationResponse;
74707
75124
  }
74708
75125
  operationResponse = new OperationResponse_1.OperationResponse(operationRequest.getOperationCode(), operationRequest.getRequestId(), operationRequest.isEncrypted());
74709
75126
  operationResponse.setReturnCode(ReturnCode_1.ReturnCode.Ok);
74710
- let storeId = StringUtility_1.StringUtility.generateRandomString(10, this.gnServer.getIdTypeCase());
74711
- if (request.storeId)
74712
- storeId = request.storeId;
75127
+ let storeId = (_a = request.storeId) !== null && _a !== void 0 ? _a : StringUtility_1.StringUtility.generateRandomString(10, this.gnServer.getIdTypeCase());
75128
+ let oldStoreInventory = yield this.gnServer.getDatabase().loadStoreInventoryAsync(storeId, secretInfo.getGameId(), {
75129
+ storeId: true,
75130
+ });
75131
+ if (oldStoreInventory != null) {
75132
+ operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.StoreItemHadExists);
75133
+ }
74713
75134
  let currentMilliseconds = xDatetime_1.xDatetime.getCurrentMilliseconds();
74714
75135
  let result = {};
74715
75136
  result["storeId"] = storeId;
@@ -74777,6 +75198,7 @@ const StoreItemBaseRequestHandler_1 = __webpack_require__(96764);
74777
75198
  const OwnerType_1 = __webpack_require__(90062);
74778
75199
  const GroupStatus_1 = __webpack_require__(6516);
74779
75200
  const StoreReceiveType_1 = __webpack_require__(23591);
75201
+ const StoreItemType_1 = __webpack_require__(26155);
74780
75202
  class PresentStoreItemOperationRequest extends OperationRequest_1.OperationRequest {
74781
75203
  isValidRequest() {
74782
75204
  if (!super.isValidRequest())
@@ -74785,7 +75207,7 @@ class PresentStoreItemOperationRequest extends OperationRequest_1.OperationReque
74785
75207
  }
74786
75208
  }
74787
75209
  __decorate([
74788
- (0, DataMember_1.StringDataMember)({ code: GNParameterCode_1.GNParameterCode.StoreId, minLength: 10, maxLength: 10, mustNonNull: true }),
75210
+ (0, DataMember_1.StringDataMember)({ code: GNParameterCode_1.GNParameterCode.StoreId, minLength: 10, maxLength: 32, mustNonNull: true }),
74789
75211
  __metadata("design:type", String)
74790
75212
  ], PresentStoreItemOperationRequest.prototype, "storeId", void 0);
74791
75213
  __decorate([
@@ -74917,6 +75339,13 @@ class PresentStoreItemRequestHandler extends StoreItemBaseRequestHandler_1.Store
74917
75339
  operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.StoreItemHadBeenRemove);
74918
75340
  return operationResponse;
74919
75341
  }
75342
+ if (storeInventory.getStoreItemType() == StoreItemType_1.StoreItemType.NonConsumable) {
75343
+ let purchaseCount = yield this.gnServer.getDatabase().getCountStoreInventoryUsedAsync(request.storeId, secretInfo.getGameId(), request.id);
75344
+ if (purchaseCount != 0) {
75345
+ operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.StoreItemHadPurchaseAndNonConsumable);
75346
+ return operationResponse;
75347
+ }
75348
+ }
74920
75349
  let priceCurrencyStartValues = [];
74921
75350
  let priceCurrencyAmountValues = [];
74922
75351
  let priceCurrencyFinalValues = [];
@@ -75155,6 +75584,8 @@ class PresentStoreItemRequestHandler extends StoreItemBaseRequestHandler_1.Store
75155
75584
  operationResponse.setParameter(GNParameterCode_1.GNParameterCode.InfoResponseParameters, gnInfoResponseParameters);
75156
75585
  }
75157
75586
  this.gnServer.getDatabase().insertStoreInventoryLogAsync(request.storeId, secretInfo.getGameId(), request.id, request.type, priceCurrencyStartValues, priceCurrencyAmountValues, priceCurrencyFinalValues, storeCurrencyStartValues, storeCurrencyAmountValues, storeCurrencyFinalValues, storeItemFinalValues, null, StoreReceiveType_1.StoreReceiveType.Present, request.log);
75587
+ if (storeInventory.getStoreItemType() == StoreItemType_1.StoreItemType.NonConsumable)
75588
+ this.gnServer.getDatabase().insertStoreInventoryUsedAsync(request.storeId, secretInfo.getGameId(), request.id, request.type);
75158
75589
  operationResponse.setParameter(GNParameterCode_1.GNParameterCode.StoreCurrencies, this.generateStoreCurrencies(storeInventory));
75159
75590
  operationResponse.setParameter(GNParameterCode_1.GNParameterCode.StoreItems, this.generateStoreItems(storeInventory));
75160
75591
  operationResponse.setParameter(GNParameterCode_1.GNParameterCode.PriceCurrencies, this.generatePriceCurrencies(storeInventory));
@@ -75167,6 +75598,135 @@ class PresentStoreItemRequestHandler extends StoreItemBaseRequestHandler_1.Store
75167
75598
  exports.PresentStoreItemRequestHandler = PresentStoreItemRequestHandler;
75168
75599
 
75169
75600
 
75601
+ /***/ }),
75602
+
75603
+ /***/ 5563:
75604
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
75605
+
75606
+
75607
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
75608
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
75609
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
75610
+ 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;
75611
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
75612
+ };
75613
+ var __metadata = (this && this.__metadata) || function (k, v) {
75614
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
75615
+ };
75616
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
75617
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
75618
+ return new (P || (P = Promise))(function (resolve, reject) {
75619
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
75620
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
75621
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
75622
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
75623
+ });
75624
+ };
75625
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
75626
+ exports.RemoveStoreUsedRequestHandler = void 0;
75627
+ const OperationRequest_1 = __webpack_require__(25885);
75628
+ const OperationResponse_1 = __webpack_require__(27623);
75629
+ const OperationCode_1 = __webpack_require__(10675);
75630
+ const ParameterCode_1 = __webpack_require__(35284);
75631
+ const ReturnCode_1 = __webpack_require__(99060);
75632
+ const DataMember_1 = __webpack_require__(42364);
75633
+ const GNParameterCode_1 = __webpack_require__(38343);
75634
+ const GNErrorCode_1 = __webpack_require__(94559);
75635
+ const StoreItemBaseRequestHandler_1 = __webpack_require__(96764);
75636
+ class RemoveStoreUsedOperationRequest extends OperationRequest_1.OperationRequest {
75637
+ }
75638
+ __decorate([
75639
+ (0, DataMember_1.StringDataMember)({ code: GNParameterCode_1.GNParameterCode.StoreId, minLength: 10, maxLength: 32, mustNonNull: true }),
75640
+ __metadata("design:type", String)
75641
+ ], RemoveStoreUsedOperationRequest.prototype, "storeId", void 0);
75642
+ __decorate([
75643
+ (0, DataMember_1.GNArrayDataMember)({ code: GNParameterCode_1.GNParameterCode.OwnerIds, elementCls: String, isOptional: true }),
75644
+ __metadata("design:type", Array)
75645
+ ], RemoveStoreUsedOperationRequest.prototype, "ownerIds", void 0);
75646
+ class ServerRemoveStoreUsedOperationRequest extends RemoveStoreUsedOperationRequest {
75647
+ isValidRequest() {
75648
+ if (!super.isValidRequest())
75649
+ return false;
75650
+ return true;
75651
+ }
75652
+ }
75653
+ class AdminRemoveStoreUsedOperationRequest extends ServerRemoveStoreUsedOperationRequest {
75654
+ isValidRequest() {
75655
+ if (!super.isValidRequest())
75656
+ return false;
75657
+ return true;
75658
+ }
75659
+ }
75660
+ class RemoveStoreUsedRequestHandler extends StoreItemBaseRequestHandler_1.StoreItemBaseRequestHandler {
75661
+ getCode() {
75662
+ return OperationCode_1.OperationCode.RemoveStoreUsed;
75663
+ }
75664
+ getCommonOperationRequest() {
75665
+ return RemoveStoreUsedOperationRequest;
75666
+ }
75667
+ handle(authInfo, secretInfo, operationRequest) {
75668
+ return __awaiter(this, void 0, void 0, function* () {
75669
+ let request = this.requestConverterService.createTOperationRequest(operationRequest, this.getCommonOperationRequest());
75670
+ if (!request.isValidRequest()) {
75671
+ return this.newInvalidRequestParameters(request);
75672
+ }
75673
+ if (!secretInfo.getPermission().storeInventory.removeStoreUsed.otherSelfEnable) {
75674
+ return this.newOperationNotAllowError(request);
75675
+ }
75676
+ return this.execute({
75677
+ storeId: request.storeId,
75678
+ ownerIds: request.ownerIds,
75679
+ }, secretInfo, operationRequest);
75680
+ });
75681
+ }
75682
+ serverHandle(secretInfo, operationRequest) {
75683
+ return __awaiter(this, void 0, void 0, function* () {
75684
+ let request = this.requestConverterService.createTOperationRequest(operationRequest, ServerRemoveStoreUsedOperationRequest);
75685
+ if (!request.isValidRequest()) {
75686
+ return this.newInvalidRequestParameters(request);
75687
+ }
75688
+ if (!secretInfo.getPermission().storeInventory.removeStoreUsed.serverSelfEnable) {
75689
+ return this.newOperationNotAllowError(request);
75690
+ }
75691
+ return this.execute({
75692
+ storeId: request.storeId,
75693
+ ownerIds: request.ownerIds,
75694
+ }, secretInfo, operationRequest);
75695
+ });
75696
+ }
75697
+ adminHandle(secretInfo, operationRequest) {
75698
+ return __awaiter(this, void 0, void 0, function* () {
75699
+ let request = this.requestConverterService.createTOperationRequest(operationRequest, AdminRemoveStoreUsedOperationRequest);
75700
+ if (!request.isValidRequest()) {
75701
+ return this.newInvalidRequestParameters(request);
75702
+ }
75703
+ if (!secretInfo.getPermission().storeInventory.removeStoreUsed.adminSelfEnable) {
75704
+ return this.newOperationNotAllowError(request);
75705
+ }
75706
+ return this.execute({
75707
+ storeId: request.storeId,
75708
+ ownerIds: request.ownerIds,
75709
+ }, secretInfo, operationRequest);
75710
+ });
75711
+ }
75712
+ execute(request, secretInfo, operationRequest) {
75713
+ return __awaiter(this, void 0, void 0, function* () {
75714
+ let operationResponse = yield this.gnServer.getPreEventCallbackService().onEvent("storeInventory_RemoveStoreUsed", request, secretInfo, operationRequest);
75715
+ if (operationResponse != null) {
75716
+ return operationResponse;
75717
+ }
75718
+ operationResponse = new OperationResponse_1.OperationResponse(operationRequest.getOperationCode(), operationRequest.getRequestId(), operationRequest.isEncrypted());
75719
+ operationResponse.setReturnCode(ReturnCode_1.ReturnCode.Ok);
75720
+ yield this.gnServer.getDatabase().removeStoreInventoryUsedAsync(request.storeId, secretInfo.getGameId(), request.ownerIds);
75721
+ operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.Ok);
75722
+ yield this.gnServer.getPostEventCallbackService().onEvent("storeInventory_RemoveStoreUsed", request, secretInfo, operationRequest, operationResponse);
75723
+ return operationResponse;
75724
+ });
75725
+ }
75726
+ }
75727
+ exports.RemoveStoreUsedRequestHandler = RemoveStoreUsedRequestHandler;
75728
+
75729
+
75170
75730
  /***/ }),
75171
75731
 
75172
75732
  /***/ 91345:
@@ -75211,7 +75771,7 @@ class SetRemoveStatusOperationRequest extends OperationRequest_1.OperationReques
75211
75771
  }
75212
75772
  }
75213
75773
  __decorate([
75214
- (0, DataMember_1.StringDataMember)({ code: GNParameterCode_1.GNParameterCode.StoreId, minLength: 10, maxLength: 10, mustNonNull: true }),
75774
+ (0, DataMember_1.StringDataMember)({ code: GNParameterCode_1.GNParameterCode.StoreId, minLength: 10, maxLength: 32, mustNonNull: true }),
75215
75775
  __metadata("design:type", String)
75216
75776
  ], SetRemoveStatusOperationRequest.prototype, "storeId", void 0);
75217
75777
  __decorate([
@@ -75364,9 +75924,13 @@ class SetStoreItemInformationOperationRequest extends OperationRequest_1.Operati
75364
75924
  }
75365
75925
  }
75366
75926
  __decorate([
75367
- (0, DataMember_1.StringDataMember)({ code: GNParameterCode_1.GNParameterCode.StoreId, minLength: 10, maxLength: 10, mustNonNull: true }),
75927
+ (0, DataMember_1.StringDataMember)({ code: GNParameterCode_1.GNParameterCode.StoreId, minLength: 10, maxLength: 32, mustNonNull: true }),
75368
75928
  __metadata("design:type", String)
75369
75929
  ], SetStoreItemInformationOperationRequest.prototype, "storeId", void 0);
75930
+ __decorate([
75931
+ (0, DataMember_1.NumberDataMember)({ code: GNParameterCode_1.GNParameterCode.StoreItemType, minValue: 1, maxValue: 2, mustInt: true, isOptional: true, }),
75932
+ __metadata("design:type", Number)
75933
+ ], SetStoreItemInformationOperationRequest.prototype, "storeItemType", void 0);
75370
75934
  __decorate([
75371
75935
  (0, DataMember_1.GNArrayDataMember)({ code: GNParameterCode_1.GNParameterCode.StoreDatas, minLength: 0, maxLength: 32, mustNonNull: true, isOptional: true, elementCls: StoreDataParam_1.StoreDataParam }),
75372
75936
  __metadata("design:type", Array)
@@ -75431,6 +75995,7 @@ class SetStoreItemInformationRequestHandler extends StoreItemBaseRequestHandler_
75431
75995
  }
75432
75996
  return this.execute({
75433
75997
  storeId: request.storeId,
75998
+ storeItemType: request.storeItemType,
75434
75999
  storeDataParams: request.storeDataParams,
75435
76000
  storeItemParams: request.storeItemParams,
75436
76001
  storeCurrencyParams: request.storeCurrencyParams,
@@ -75453,6 +76018,7 @@ class SetStoreItemInformationRequestHandler extends StoreItemBaseRequestHandler_
75453
76018
  }
75454
76019
  return this.execute({
75455
76020
  storeId: request.storeId,
76021
+ storeItemType: request.storeItemType,
75456
76022
  storeDataParams: request.storeDataParams,
75457
76023
  storeItemParams: request.storeItemParams,
75458
76024
  storeCurrencyParams: request.storeCurrencyParams,
@@ -75475,6 +76041,7 @@ class SetStoreItemInformationRequestHandler extends StoreItemBaseRequestHandler_
75475
76041
  }
75476
76042
  return this.execute({
75477
76043
  storeId: request.storeId,
76044
+ storeItemType: request.storeItemType,
75478
76045
  storeDataParams: request.storeDataParams,
75479
76046
  storeItemParams: request.storeItemParams,
75480
76047
  storeCurrencyParams: request.storeCurrencyParams,
@@ -75547,6 +76114,9 @@ class SetStoreItemInformationRequestHandler extends StoreItemBaseRequestHandler_
75547
76114
  if (request.avatarParam != null) {
75548
76115
  storeInventory.setAvatar(request.avatarParam.type, request.avatarParam.value);
75549
76116
  }
76117
+ if (request.storeItemType != null) {
76118
+ storeInventory.setStoreItemType(request.storeItemType);
76119
+ }
75550
76120
  if (request.tagParams != null) {
75551
76121
  storeInventory.clearTags();
75552
76122
  for (let i = 0; i < request.tagParams.length; i++) {
@@ -75557,6 +76127,7 @@ class SetStoreItemInformationRequestHandler extends StoreItemBaseRequestHandler_
75557
76127
  storeInventory.saveAsync();
75558
76128
  operationResponse.setParameter(GNParameterCode_1.GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(storeInventory, {
75559
76129
  storeItems: true,
76130
+ storeItemType: true,
75560
76131
  storeCurrencies: true,
75561
76132
  priceCurrencies: true,
75562
76133
  inAppPurchase: true,
@@ -75601,6 +76172,7 @@ const StringUtility_1 = __webpack_require__(77468);
75601
76172
  class StoreItemBaseRequestHandler extends RequestHandler_1.RequestHandler {
75602
76173
  isGetAll(infoRequestParam) {
75603
76174
  return infoRequestParam.storeItems
76175
+ && infoRequestParam.storeItemType
75604
76176
  && infoRequestParam.storeCurrencies
75605
76177
  && infoRequestParam.priceCurrencies
75606
76178
  && infoRequestParam.inAppPurchase
@@ -75644,6 +76216,8 @@ class StoreItemBaseRequestHandler extends RequestHandler_1.RequestHandler {
75644
76216
  answer.storeId = true;
75645
76217
  if (infoRequestParam.storeItems)
75646
76218
  answer.storeItems = infoRequestParam.storeItems;
76219
+ if (infoRequestParam.storeItemType)
76220
+ answer.storeItemType = infoRequestParam.storeItemType;
75647
76221
  if (infoRequestParam.storeCurrencies)
75648
76222
  answer.storeCurrencies = infoRequestParam.storeCurrencies;
75649
76223
  if (infoRequestParam.priceCurrencies)
@@ -75668,6 +76242,8 @@ class StoreItemBaseRequestHandler extends RequestHandler_1.RequestHandler {
75668
76242
  let answer = new GNData_1.GNHashtable();
75669
76243
  if (infoRequestParam.storeItems)
75670
76244
  answer.add(GNParameterCode_1.GNParameterCode.StoreItems, this.generateStoreItems(storeInventory));
76245
+ if (infoRequestParam.storeItemType)
76246
+ answer.add(GNParameterCode_1.GNParameterCode.StoreItemType, this.generateStoreItemType(storeInventory));
75671
76247
  if (infoRequestParam.storeCurrencies)
75672
76248
  answer.add(GNParameterCode_1.GNParameterCode.StoreCurrencies, this.generateStoreCurrencies(storeInventory));
75673
76249
  if (infoRequestParam.priceCurrencies)
@@ -75701,6 +76277,9 @@ class StoreItemBaseRequestHandler extends RequestHandler_1.RequestHandler {
75701
76277
  }
75702
76278
  return gnStoreItems;
75703
76279
  }
76280
+ generateStoreItemType(storeInventory) {
76281
+ return storeInventory.getStoreItemType();
76282
+ }
75704
76283
  generateStoreCurrencies(storeInventory) {
75705
76284
  let gnStoreCurrenciess = new GNData_1.GNArray();
75706
76285
  let allStoreCurrencies = storeInventory.getAllStoreCurrencies();
@@ -75823,6 +76402,7 @@ const xDebug_1 = __webpack_require__(32501);
75823
76402
  const Md5Generate_1 = __webpack_require__(38632);
75824
76403
  const xDatetime_1 = __webpack_require__(21817);
75825
76404
  const StoreReceiveType_1 = __webpack_require__(23591);
76405
+ const StoreItemType_1 = __webpack_require__(26155);
75826
76406
  class ValidateAppleAppStoreReceiptOperationRequest extends OperationRequest_1.OperationRequest {
75827
76407
  isValidRequest() {
75828
76408
  if (!super.isValidRequest())
@@ -75994,6 +76574,13 @@ class ValidateAppleAppStoreReceiptRequestHandler extends StoreItemBaseRequestHan
75994
76574
  operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.StoreItemHadBeenRemove);
75995
76575
  return operationResponse;
75996
76576
  }
76577
+ if (storeInventory.getStoreItemType() == StoreItemType_1.StoreItemType.NonConsumable) {
76578
+ let purchaseCount = yield this.gnServer.getDatabase().getCountStoreInventoryUsedAsync(storeInventory.getStoreId(), secretInfo.getGameId(), request.id);
76579
+ if (purchaseCount != 0) {
76580
+ operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.StoreItemHadPurchaseAndNonConsumable);
76581
+ return operationResponse;
76582
+ }
76583
+ }
75997
76584
  this.gnServer.getDatabase().systemGameCollection("ReceiptIAP", secretInfo.getGameId()).insertOne({
75998
76585
  payloadMd5: Md5Generate_1.Md5Generate.getMd5(payload),
75999
76586
  transactionId: transactionId,
@@ -76244,6 +76831,8 @@ class ValidateAppleAppStoreReceiptRequestHandler extends StoreItemBaseRequestHan
76244
76831
  operationResponse.setParameter(GNParameterCode_1.GNParameterCode.InfoResponseParameters, gnInfoResponseParameters);
76245
76832
  }
76246
76833
  this.gnServer.getDatabase().insertStoreInventoryLogAsync(storeInventory.getStoreId(), secretInfo.getGameId(), request.id, request.type, priceCurrencyStartValues, priceCurrencyAmountValues, priceCurrencyFinalValues, storeCurrencyStartValues, storeCurrencyAmountValues, storeCurrencyFinalValues, storeItemFinalValues, transactionId, StoreReceiveType_1.StoreReceiveType.AppleAppStore, request.log);
76834
+ if (storeInventory.getStoreItemType() == StoreItemType_1.StoreItemType.NonConsumable)
76835
+ this.gnServer.getDatabase().insertStoreInventoryUsedAsync(storeInventory.getStoreId(), secretInfo.getGameId(), request.id, request.type);
76247
76836
  let inAppPurchase = storeInventory.getInAppPurchase();
76248
76837
  if (inAppPurchase.analyticsPrice) {
76249
76838
  this.gnServer.getDatabase().systemCollection("StoreAnalytics").insertOne({
@@ -76306,6 +76895,7 @@ const xDebug_1 = __webpack_require__(32501);
76306
76895
  const Md5Generate_1 = __webpack_require__(38632);
76307
76896
  const xDatetime_1 = __webpack_require__(21817);
76308
76897
  const StoreReceiveType_1 = __webpack_require__(23591);
76898
+ const StoreItemType_1 = __webpack_require__(26155);
76309
76899
  class ValidateFacebookStoreReceiptOperationRequest extends OperationRequest_1.OperationRequest {
76310
76900
  isValidRequest() {
76311
76901
  if (!super.isValidRequest())
@@ -76477,6 +77067,13 @@ class ValidateFacebookStoreReceiptRequestHandler extends StoreItemBaseRequestHan
76477
77067
  operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.StoreItemHadBeenRemove);
76478
77068
  return operationResponse;
76479
77069
  }
77070
+ if (storeInventory.getStoreItemType() == StoreItemType_1.StoreItemType.NonConsumable) {
77071
+ let purchaseCount = yield this.gnServer.getDatabase().getCountStoreInventoryUsedAsync(storeInventory.getStoreId(), secretInfo.getGameId(), request.id);
77072
+ if (purchaseCount != 0) {
77073
+ operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.StoreItemHadPurchaseAndNonConsumable);
77074
+ return operationResponse;
77075
+ }
77076
+ }
76480
77077
  this.gnServer.getDatabase().systemGameCollection("ReceiptIAP", secretInfo.getGameId()).insertOne({
76481
77078
  payloadMd5: Md5Generate_1.Md5Generate.getMd5(payload),
76482
77079
  transactionId: transactionId,
@@ -76727,6 +77324,8 @@ class ValidateFacebookStoreReceiptRequestHandler extends StoreItemBaseRequestHan
76727
77324
  operationResponse.setParameter(GNParameterCode_1.GNParameterCode.InfoResponseParameters, gnInfoResponseParameters);
76728
77325
  }
76729
77326
  this.gnServer.getDatabase().insertStoreInventoryLogAsync(storeInventory.getStoreId(), secretInfo.getGameId(), request.id, request.type, priceCurrencyStartValues, priceCurrencyAmountValues, priceCurrencyFinalValues, storeCurrencyStartValues, storeCurrencyAmountValues, storeCurrencyFinalValues, storeItemFinalValues, transactionId, StoreReceiveType_1.StoreReceiveType.FacebookStore, request.log);
77327
+ if (storeInventory.getStoreItemType() == StoreItemType_1.StoreItemType.NonConsumable)
77328
+ this.gnServer.getDatabase().insertStoreInventoryUsedAsync(storeInventory.getStoreId(), secretInfo.getGameId(), request.id, request.type);
76730
77329
  let inAppPurchase = storeInventory.getInAppPurchase();
76731
77330
  if (inAppPurchase.analyticsPrice) {
76732
77331
  this.gnServer.getDatabase().systemCollection("StoreAnalytics").insertOne({
@@ -76789,6 +77388,7 @@ const xDebug_1 = __webpack_require__(32501);
76789
77388
  const Md5Generate_1 = __webpack_require__(38632);
76790
77389
  const xDatetime_1 = __webpack_require__(21817);
76791
77390
  const StoreReceiveType_1 = __webpack_require__(23591);
77391
+ const StoreItemType_1 = __webpack_require__(26155);
76792
77392
  class ValidateGooglePlayStoreReceiptOperationRequest extends OperationRequest_1.OperationRequest {
76793
77393
  isValidRequest() {
76794
77394
  if (!super.isValidRequest())
@@ -76960,6 +77560,13 @@ class ValidateGooglePlayStoreReceiptRequestHandler extends StoreItemBaseRequestH
76960
77560
  operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.StoreItemHadBeenRemove);
76961
77561
  return operationResponse;
76962
77562
  }
77563
+ if (storeInventory.getStoreItemType() == StoreItemType_1.StoreItemType.NonConsumable) {
77564
+ let purchaseCount = yield this.gnServer.getDatabase().getCountStoreInventoryUsedAsync(storeInventory.getStoreId(), secretInfo.getGameId(), request.id);
77565
+ if (purchaseCount != 0) {
77566
+ operationResponse.setParameter(ParameterCode_1.ParameterCode.ErrorCode, GNErrorCode_1.GNErrorCode.StoreItemHadPurchaseAndNonConsumable);
77567
+ return operationResponse;
77568
+ }
77569
+ }
76963
77570
  this.gnServer.getDatabase().systemGameCollection("ReceiptIAP", secretInfo.getGameId()).insertOne({
76964
77571
  payloadMd5: Md5Generate_1.Md5Generate.getMd5(payload),
76965
77572
  transactionId: transactionId,
@@ -77210,6 +77817,8 @@ class ValidateGooglePlayStoreReceiptRequestHandler extends StoreItemBaseRequestH
77210
77817
  operationResponse.setParameter(GNParameterCode_1.GNParameterCode.InfoResponseParameters, gnInfoResponseParameters);
77211
77818
  }
77212
77819
  this.gnServer.getDatabase().insertStoreInventoryLogAsync(storeInventory.getStoreId(), secretInfo.getGameId(), request.id, request.type, priceCurrencyStartValues, priceCurrencyAmountValues, priceCurrencyFinalValues, storeCurrencyStartValues, storeCurrencyAmountValues, storeCurrencyFinalValues, storeItemFinalValues, transactionId, StoreReceiveType_1.StoreReceiveType.GooglePlayStore, request.log);
77820
+ if (storeInventory.getStoreItemType() == StoreItemType_1.StoreItemType.NonConsumable)
77821
+ this.gnServer.getDatabase().insertStoreInventoryUsedAsync(storeInventory.getStoreId(), secretInfo.getGameId(), request.id, request.type);
77213
77822
  let inAppPurchase = storeInventory.getInAppPurchase();
77214
77823
  if (inAppPurchase.analyticsPrice) {
77215
77824
  this.gnServer.getDatabase().systemCollection("StoreAnalytics").insertOne({
@@ -77360,6 +77969,10 @@ __decorate([
77360
77969
  (0, DataMember_1.BooleanDataMember)({ code: GNParameterCode_1.GNParameterCode.StoreItems, isOptional: true, defaultValue: false }),
77361
77970
  __metadata("design:type", Boolean)
77362
77971
  ], InfoRequestParam.prototype, "storeItems", void 0);
77972
+ __decorate([
77973
+ (0, DataMember_1.BooleanDataMember)({ code: GNParameterCode_1.GNParameterCode.StoreItemType, isOptional: true, defaultValue: false }),
77974
+ __metadata("design:type", Boolean)
77975
+ ], InfoRequestParam.prototype, "storeItemType", void 0);
77363
77976
  __decorate([
77364
77977
  (0, DataMember_1.BooleanDataMember)({ code: GNParameterCode_1.GNParameterCode.StoreCurrencies, isOptional: true, defaultValue: false }),
77365
77978
  __metadata("design:type", Boolean)
@@ -78270,9 +78883,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
78270
78883
  Object.defineProperty(exports, "__esModule", ({ value: true }));
78271
78884
  exports.CloudScriptService = void 0;
78272
78885
  const ICloudScriptService_1 = __webpack_require__(64469);
78273
- const worker_threads_1 = __webpack_require__(28167);
78274
78886
  const child_process_1 = __webpack_require__(35317);
78275
- const fs_1 = __importDefault(__webpack_require__(94383));
78887
+ const fs_1 = __importDefault(__webpack_require__(79896));
78276
78888
  const StringUtility_1 = __webpack_require__(77468);
78277
78889
  const xDatetime_1 = __webpack_require__(21817);
78278
78890
  const OperationEvent_1 = __webpack_require__(42663);
@@ -78359,7 +78971,7 @@ class CloudScriptService {
78359
78971
  parameters: functionParameters,
78360
78972
  customTags: customTags,
78361
78973
  };
78362
- cloudScriptWorker.postMessage(cloudScriptRequest);
78974
+ cloudScriptWorker.send(cloudScriptRequest);
78363
78975
  let thiz = this;
78364
78976
  let isResolved = false;
78365
78977
  let cloudScriptResponse = yield new Promise((resolve) => {
@@ -78506,7 +79118,7 @@ class CloudScriptService {
78506
79118
  this.cloudScriptWorkerDict.delete(version);
78507
79119
  setTimeout(() => {
78508
79120
  if (!this.cloudScriptWorkerDict.has(version) && cloudScriptWorker) {
78509
- cloudScriptWorker.terminate();
79121
+ cloudScriptWorker.kill("SIGKILL");
78510
79122
  }
78511
79123
  }, 20000);
78512
79124
  }
@@ -78569,15 +79181,15 @@ class CloudScriptService {
78569
79181
  loadCloudScriptWorker(version) {
78570
79182
  let filePath = __dirname + "/./GN-startup/cloudScript/" + version + ".js";
78571
79183
  xDebug_1.Debug.log("[GN] [CloudScript] run cloudScript " + version);
78572
- let cloudScriptWorker = new worker_threads_1.Worker(filePath, {
78573
- workerData: {
79184
+ let cloudScriptWorker = (0, child_process_1.fork)(filePath, {
79185
+ env: {
78574
79186
  gameId: this.gameId,
78575
- gnServerSettingsOptions: this.gnServerSettingsOptions,
78576
- dbConnection: this.dbConnection,
79187
+ gnServerSettingsOptions: JSON.stringify(this.gnServerSettingsOptions),
79188
+ dbConnection: JSON.stringify(this.dbConnection),
78577
79189
  }
78578
79190
  });
78579
79191
  let thiz = this;
78580
- cloudScriptWorker.on('message', (cloudScriptResponse) => {
79192
+ cloudScriptWorker.on("message", (cloudScriptResponse) => {
78581
79193
  if (cloudScriptResponse.responseId) {
78582
79194
  let callback = thiz.cloudScriptWaitingResponseCallbackDict.get(cloudScriptResponse.responseId);
78583
79195
  if (callback != null) {
@@ -78625,7 +79237,7 @@ class CloudScriptService {
78625
79237
  }
78626
79238
  }
78627
79239
  });
78628
- cloudScriptWorker.on('exit', (code) => {
79240
+ cloudScriptWorker.on("exit", (code) => {
78629
79241
  xDebug_1.Debug.log("[GN] [CloudScript] terminal cloudScript " + version + " with code " + code);
78630
79242
  thiz.cloudScriptWorkerDict.delete(version);
78631
79243
  });
@@ -78676,7 +79288,9 @@ class CountryIPDetailService {
78676
79288
  statusCode: "CantQuery",
78677
79289
  };
78678
79290
  try {
78679
- let response = yield axios_1.default.get(this.getIPApiUrl + "/" + ipAddress);
79291
+ let response = yield axios_1.default.get(this.getIPApiUrl + "/" + ipAddress, {
79292
+ timeout: 10000
79293
+ });
78680
79294
  let answer = response.data;
78681
79295
  if (answer.statusCode == "Ok") {
78682
79296
  let countryCode = answer.detail.countryCode;
@@ -78764,9 +79378,8 @@ const OperationHelper_1 = __webpack_require__(82095);
78764
79378
  const OperationResponse_1 = __webpack_require__(27623);
78765
79379
  const xDatetime_1 = __webpack_require__(21817);
78766
79380
  const xDebug_1 = __webpack_require__(32501);
78767
- const fs_1 = __importDefault(__webpack_require__(94383));
79381
+ const fs_1 = __importDefault(__webpack_require__(79896));
78768
79382
  const ICloudScriptService_1 = __webpack_require__(64469);
78769
- const worker_threads_1 = __webpack_require__(28167);
78770
79383
  const child_process_1 = __webpack_require__(35317);
78771
79384
  const StringUtility_1 = __webpack_require__(77468);
78772
79385
  const OperationEvent_1 = __webpack_require__(42663);
@@ -78868,7 +79481,7 @@ class EventCallbackCloudScriptService {
78868
79481
  request: null,
78869
79482
  secretInfo: null,
78870
79483
  };
78871
- cloudScriptWorker.postMessage(cloudScriptRequest);
79484
+ cloudScriptWorker.send(cloudScriptRequest);
78872
79485
  let thiz = this;
78873
79486
  let isResolved = false;
78874
79487
  let cloudScriptResponse = yield new Promise((resolve) => {
@@ -78933,7 +79546,7 @@ class EventCallbackCloudScriptService {
78933
79546
  },
78934
79547
  secretInfo: null,
78935
79548
  };
78936
- cloudScriptWorker.postMessage(cloudScriptRequest);
79549
+ cloudScriptWorker.send(cloudScriptRequest);
78937
79550
  let thiz = this;
78938
79551
  let isResolved = false;
78939
79552
  let cloudScriptResponse = yield new Promise((resolve) => {
@@ -79000,7 +79613,7 @@ class EventCallbackCloudScriptService {
79000
79613
  request: request,
79001
79614
  secretInfo: null,
79002
79615
  };
79003
- cloudScriptWorker.postMessage(cloudScriptRequest);
79616
+ cloudScriptWorker.send(cloudScriptRequest);
79004
79617
  let thiz = this;
79005
79618
  let isResolved = false;
79006
79619
  let cloudScriptResponse = yield new Promise((resolve) => {
@@ -79078,7 +79691,7 @@ class EventCallbackCloudScriptService {
79078
79691
  request: request,
79079
79692
  secretInfo: finalSecretInfo,
79080
79693
  };
79081
- cloudScriptWorker.postMessage(cloudScriptRequest);
79694
+ cloudScriptWorker.send(cloudScriptRequest);
79082
79695
  let thiz = this;
79083
79696
  let isResolved = false;
79084
79697
  let cloudScriptResponse = yield new Promise((resolve) => {
@@ -79171,7 +79784,7 @@ class EventCallbackCloudScriptService {
79171
79784
  request: request,
79172
79785
  secretInfo: finalSecretInfo,
79173
79786
  };
79174
- cloudScriptWorker.postMessage(cloudScriptRequest);
79787
+ cloudScriptWorker.send(cloudScriptRequest);
79175
79788
  let thiz = this;
79176
79789
  let isResolved = false;
79177
79790
  let cloudScriptResponse = yield new Promise((resolve) => {
@@ -79276,7 +79889,7 @@ class EventCallbackCloudScriptService {
79276
79889
  setTimeout(() => {
79277
79890
  let cloudScriptWorker = this.cloudScriptWorkerDict.get(finalVersion);
79278
79891
  if (cloudScriptWorker != null) {
79279
- cloudScriptWorker.terminate();
79892
+ cloudScriptWorker.kill("SIGKILL");
79280
79893
  }
79281
79894
  }, EventCallbackCloudScriptService.ExecuteTimeoutInMs + 10000);
79282
79895
  this.loadCloudScriptFunctionWorker(type, version, fullScriptJs);
@@ -79337,10 +79950,10 @@ class EventCallbackCloudScriptService {
79337
79950
  let finalVersion = type + "_" + version;
79338
79951
  let filePath = __dirname + "/./GN-startup/cloudScript/" + finalVersion + ".js";
79339
79952
  xDebug_1.Debug.log("[GN] [EventCallback] run cloudScript " + finalVersion);
79340
- let cloudScriptWorker = new worker_threads_1.Worker(filePath, {
79341
- workerData: {
79342
- gnServerSettingsOptions: this.gnServerSettingsOptions,
79343
- dbConnection: this.dbConnection,
79953
+ let cloudScriptWorker = (0, child_process_1.fork)(filePath, {
79954
+ env: {
79955
+ gnServerSettingsOptions: JSON.stringify(this.gnServerSettingsOptions),
79956
+ dbConnection: JSON.stringify(this.dbConnection),
79344
79957
  },
79345
79958
  });
79346
79959
  let thiz = this;
@@ -82203,6 +82816,8 @@ OperationCode.SendPushNotification = 188;
82203
82816
  OperationCode.AddPushNotification = 189;
82204
82817
  OperationCode.RemovePushNotification = 190;
82205
82818
  OperationCode.GetPushNotification = 191;
82819
+ OperationCode.GetStoreUsed = 192;
82820
+ OperationCode.RemoveStoreUsed = 193;
82206
82821
 
82207
82822
 
82208
82823
  /***/ }),
@@ -82445,6 +83060,21 @@ var RequestType;
82445
83060
  })(RequestType || (exports.RequestType = RequestType = {}));
82446
83061
 
82447
83062
 
83063
+ /***/ }),
83064
+
83065
+ /***/ 26155:
83066
+ /***/ ((__unused_webpack_module, exports) => {
83067
+
83068
+
83069
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
83070
+ exports.StoreItemType = void 0;
83071
+ var StoreItemType;
83072
+ (function (StoreItemType) {
83073
+ StoreItemType[StoreItemType["NonConsumable"] = 1] = "NonConsumable";
83074
+ StoreItemType[StoreItemType["Consumable"] = 2] = "Consumable";
83075
+ })(StoreItemType || (exports.StoreItemType = StoreItemType = {}));
83076
+
83077
+
82448
83078
  /***/ }),
82449
83079
 
82450
83080
  /***/ 23591:
@@ -82522,6 +83152,8 @@ GNErrorCode.TicketSizeError = 45;
82522
83152
  GNErrorCode.ExecuteError = 46;
82523
83153
  GNErrorCode.VersionInvalid = 47;
82524
83154
  GNErrorCode.EmailInvalid = 48;
83155
+ GNErrorCode.StoreItemHadPurchaseAndNonConsumable = 49;
83156
+ GNErrorCode.StoreItemHadExists = 50;
82525
83157
 
82526
83158
 
82527
83159
  /***/ }),
@@ -83122,6 +83754,10 @@ GNParameterCode.MatchmakingRequestCount = "matchmakingRequestCount";
83122
83754
  GNParameterCode.CloudScriptGBs = "cloudScriptGBs";
83123
83755
  GNParameterCode.StorageSizeInBytes = "storageSizeInBytes";
83124
83756
  GNParameterCode.DataTransferSizeInBytes = "dataTransferSizeInBytes";
83757
+ GNParameterCode.StoreItemType = "storeItemType";
83758
+ GNParameterCode.OwnerIds = "ownerIds";
83759
+ GNParameterCode.GetStoreUsed = "getStoreUsed";
83760
+ GNParameterCode.RemoveStoreUsed = "removeStoreUsed";
83125
83761
 
83126
83762
 
83127
83763
  /***/ }),
@@ -86006,6 +86642,7 @@ class StoreInventory extends DataObjectBase_1.DataObjectBase {
86006
86642
  this.setDocumentStoreInventory(result);
86007
86643
  }
86008
86644
  setDocumentStoreInventory(result) {
86645
+ this.storeItemType = result[StoreInventory._storeItemType];
86009
86646
  this.storeItems = result[StoreInventory._storeItems];
86010
86647
  this.storeCurrencies = result[StoreInventory._storeCurrencies];
86011
86648
  this.priceCurrencies = result[StoreInventory._priceCurrencies];
@@ -86180,9 +86817,17 @@ class StoreInventory extends DataObjectBase_1.DataObjectBase {
86180
86817
  }
86181
86818
  throw Error("can not found the key to remove");
86182
86819
  }
86820
+ getStoreItemType() {
86821
+ return this.storeItemType;
86822
+ }
86823
+ setStoreItemType(storeItemType) {
86824
+ this.storeItemType = storeItemType;
86825
+ this.set(StoreInventory._storeItemType, this.storeItemType);
86826
+ }
86183
86827
  }
86184
86828
  exports.StoreInventory = StoreInventory;
86185
86829
  StoreInventory._storeId = "storeId";
86830
+ StoreInventory._storeItemType = "storeItemType";
86186
86831
  StoreInventory._storeItems = "storeItems";
86187
86832
  StoreInventory._storeCurrencies = "storeCurrencies";
86188
86833
  StoreInventory._priceCurrencies = "priceCurrencies";
@@ -87681,6 +88326,17 @@ class xDatabase {
87681
88326
  return this.convertToCharacterPlayers(results, collection);
87682
88327
  });
87683
88328
  }
88329
+ loadCharacterPlayersLeaderboardWithLastLoginAsync(skip, limit, gameId, characterPlayerFindOptions) {
88330
+ return __awaiter(this, void 0, void 0, function* () {
88331
+ let collection = this.systemGameCollection("CharacterPlayer", gameId);
88332
+ let $sort = {};
88333
+ $sort["tsLastLogin"] = -1;
88334
+ let results = yield collection.find({}, {
88335
+ projection: this.getFindOptions(characterPlayerFindOptions)
88336
+ }).sort($sort).skip(skip).limit(limit);
88337
+ return this.convertToCharacterPlayers(results, collection);
88338
+ });
88339
+ }
87684
88340
  loadCharacterPlayersLeaderboardWithCurrenciesAsync(key, skip, limit, catalogId, gameId, characterPlayerFindOptions) {
87685
88341
  return __awaiter(this, void 0, void 0, function* () {
87686
88342
  let collection = this.systemGameCollection("CharacterPlayer", gameId);
@@ -88221,6 +88877,56 @@ class xDatabase {
88221
88877
  return answer;
88222
88878
  });
88223
88879
  }
88880
+ getStoreInventoryUsedAsync(storeId, gameId) {
88881
+ return __awaiter(this, void 0, void 0, function* () {
88882
+ let collection = this.systemGameCollection("StoreInventory.StoreUsed", gameId);
88883
+ let result = yield collection.findOne({ storeId: storeId });
88884
+ return result;
88885
+ });
88886
+ }
88887
+ insertStoreInventoryUsedAsync(storeId, gameId, ownerId, ownerType) {
88888
+ return __awaiter(this, void 0, void 0, function* () {
88889
+ let collection = this.systemGameCollection("StoreInventory.StoreUsed", gameId);
88890
+ collection.updateOne({ storeId: storeId }, {
88891
+ $push: {
88892
+ useIds: {
88893
+ id: ownerId,
88894
+ type: ownerType,
88895
+ tsCreate: xDatetime_1.xDatetime.getCurrentMilliseconds(),
88896
+ }
88897
+ }
88898
+ }, {
88899
+ upsert: true,
88900
+ });
88901
+ });
88902
+ }
88903
+ removeStoreInventoryUsedAsync(storeId, gameId, ownerIds) {
88904
+ return __awaiter(this, void 0, void 0, function* () {
88905
+ let collection = this.systemGameCollection("StoreInventory.StoreUsed", gameId);
88906
+ if (ownerIds == null) {
88907
+ yield collection.deleteOne({ storeId: storeId });
88908
+ }
88909
+ else {
88910
+ collection.updateOne({ storeId: storeId }, {
88911
+ $pull: {
88912
+ useIds: {
88913
+ id: { $in: ownerIds },
88914
+ }
88915
+ }
88916
+ });
88917
+ }
88918
+ });
88919
+ }
88920
+ getCountStoreInventoryUsedAsync(storeId, gameId, ownerId) {
88921
+ return __awaiter(this, void 0, void 0, function* () {
88922
+ let collection = this.systemGameCollection("StoreInventory.StoreUsed", gameId);
88923
+ let count = yield collection.countDocuments({
88924
+ storeId: storeId,
88925
+ useIds: { $elemMatch: { id: ownerId } }
88926
+ });
88927
+ return count;
88928
+ });
88929
+ }
88224
88930
  loadStoreInventoryAsync(storeId, gameId, storeInventoryFindOptions) {
88225
88931
  return __awaiter(this, void 0, void 0, function* () {
88226
88932
  let collection = this.systemGameCollection("StoreInventory", gameId);
@@ -89001,7 +89707,7 @@ const UploadFileSettings_1 = __webpack_require__(61356);
89001
89707
  const DDosSettings_1 = __webpack_require__(19025);
89002
89708
  class DefaultApplicationStartup {
89003
89709
  run(onRunSuccess) {
89004
- let applicationSettings = ApplicationSettings_1.ApplicationSettings.Builder().setUseSSL(false).setCertFilePath("").setKeyFilePath("").setPort(2202).setExpiredToken(2 * 24 * 60 * 60 * 1000).setPrivateKeyToken("defaultApplicationStartup").build();
89710
+ let applicationSettings = ApplicationSettings_1.ApplicationSettings.Builder().setUseSSL(false).setCertFilePath("").setKeyFilePath("").setPort(2202).setSocketPort(2901).setExpiredToken(2 * 24 * 60 * 60 * 1000).setPrivateKeyToken("defaultApplicationStartup").build();
89005
89711
  let httpAppSettings = HttpAppSettings_1.HttpAppSettings.Builder()
89006
89712
  .setEnable(true)
89007
89713
  .setOrigins("*")
@@ -89216,7 +89922,7 @@ const SocketApp_1 = __webpack_require__(30448);
89216
89922
  const express_1 = __importDefault(__webpack_require__(7252));
89217
89923
  const http_1 = __importDefault(__webpack_require__(58611));
89218
89924
  const https_1 = __importDefault(__webpack_require__(65692));
89219
- const fs_1 = __importDefault(__webpack_require__(94383));
89925
+ const fs_1 = __importDefault(__webpack_require__(79896));
89220
89926
  const GNServer_1 = __webpack_require__(47448);
89221
89927
  const ApiMiddleware_1 = __webpack_require__(68429);
89222
89928
  const xDebug_1 = __webpack_require__(32501);
@@ -89234,6 +89940,7 @@ const xDatetime_1 = __webpack_require__(21817);
89234
89940
  const gn_typescript_client_1 = __webpack_require__(99183);
89235
89941
  const CloudScriptService_1 = __webpack_require__(58414);
89236
89942
  const xConfig_1 = __webpack_require__(12473);
89943
+ const xCacheData_1 = __webpack_require__(1627);
89237
89944
  class BuilderBase {
89238
89945
  getApplicationSettings() {
89239
89946
  return this.applicationSettings;
@@ -89325,8 +90032,12 @@ class ServerApplication extends BuilderBase {
89325
90032
  xDebug_1.Debug.log("[GN XmobiTea] -->>==>>>--<<<==<<-- [GN XmobiTea]");
89326
90033
  const port = this.applicationSettings.getPort();
89327
90034
  xDebug_1.Debug.log("[GN] Try run server on the port " + port);
90035
+ const socketPort = this.applicationSettings.getSocketPort();
90036
+ xDebug_1.Debug.log("[GN] Try run socket server on the port " + socketPort);
89328
90037
  const app = (0, express_1.default)();
89329
90038
  const server = this.getServer(app, this.getApplicationSettings());
90039
+ const useOtherSocketServer = this.getApplicationSettings().getPort() != this.getApplicationSettings().getSocketPort() && this.getSocketAppSettings().getEnable();
90040
+ const socketServer = useOtherSocketServer ? http_1.default.createServer() : server;
89330
90041
  this.uploadFileMiddleware = this.newUploadMiddleware();
89331
90042
  this.uploadFileMiddleware.setMaxSizeUpload(this.getUploadFileSettings().getMaxSizeUpload());
89332
90043
  this.uploadFileMiddleware.setMimeTypeAccepts(this.getUploadFileSettings().getMimeTypeAccepts());
@@ -89365,7 +90076,7 @@ class ServerApplication extends BuilderBase {
89365
90076
  this.socketApp = this.newSocketApp();
89366
90077
  this.socketApp.setApiMiddleware(this.apiMiddleware);
89367
90078
  this.socketApp.setAppSettings(this.getSocketAppSettings());
89368
- this.socketApp.setServer(server);
90079
+ this.socketApp.setServer(socketServer);
89369
90080
  this.socketApp.setGNServer(this.gnServer);
89370
90081
  this.socketApp.setAntiDdosMiddleware(this.antiDdosMiddleware);
89371
90082
  this.socketApp.run();
@@ -89414,6 +90125,7 @@ class ServerApplication extends BuilderBase {
89414
90125
  let gnServerSettingsOptions = {
89415
90126
  serverAddress: "127.0.0.1",
89416
90127
  serverPort: this.applicationSettings.getPort(),
90128
+ serverSocketPort: this.applicationSettings.getSocketPort(),
89417
90129
  useSsl: false,
89418
90130
  useSocket: false,
89419
90131
  useHttp: true,
@@ -89447,29 +90159,18 @@ class ServerApplication extends BuilderBase {
89447
90159
  this.gnServer.getPreEventCallbackService().setCloudScriptService(this.gnServer.getEventCallbackCloudScriptService());
89448
90160
  server.listen(port, () => {
89449
90161
  xDebug_1.Debug.log("[GN XmobiTea] -->>==>>>--<<<==<<-- [GN XmobiTea]");
89450
- xDebug_1.Debug.log("[GN] Server Application running on port " + port + " with id: " + this.sessionId);
90162
+ xDebug_1.Debug.log("[GN] Server Application running on the port " + port + " with id: " + this.sessionId);
90163
+ if (useOtherSocketServer) {
90164
+ socketServer.listen(socketPort, () => {
90165
+ xDebug_1.Debug.log("[GN] Socket Server running on the port " + socketPort);
90166
+ });
90167
+ }
89451
90168
  if (onRunSuccess != null)
89452
90169
  onRunSuccess();
89453
90170
  });
89454
90171
  {
89455
90172
  for (let i = 0; i < gameIds.length; i++) {
89456
90173
  let gameId = gameIds[i];
89457
- let gnServerSettingsOptions = {
89458
- serverAddress: "127.0.0.1",
89459
- serverPort: this.applicationSettings.getPort(),
89460
- useSsl: false,
89461
- useSocket: false,
89462
- useHttp: true,
89463
- sendRate: 20,
89464
- reconnectDelay: 5000,
89465
- pingInterval: 20000,
89466
- pingTimeout: 20000,
89467
- gnServerSourcePath: "",
89468
- logType: gn_typescript_client_1.LogType.Off,
89469
- adminSecretKey: secretKey,
89470
- serverSecretKey: secretKey,
89471
- clientSecretKey: secretKey,
89472
- };
89473
90174
  {
89474
90175
  let cloudScriptService = this.gnServer.getCloudScriptService(gameId);
89475
90176
  cloudScriptService.init(gameId, gnServerSettingsOptions, dbConnection, this.gnServer);
@@ -89519,7 +90220,7 @@ class ServerApplication extends BuilderBase {
89519
90220
  }
89520
90221
  let userId = StringUtility_1.StringUtility.generateRandomString(10, 0);
89521
90222
  {
89522
- let permission = GrantSecretInfoRequestHandler_1.GrantSecretInfoRequestHandler.generateDefaultPermission(true, true, true, true);
90223
+ let permission = GrantSecretInfoRequestHandler_1.GrantSecretInfoRequestHandler.generateRecommendAdminPermission();
89523
90224
  {
89524
90225
  permission.masterAdmin.setMasterGameSettings = {
89525
90226
  selfEnable: false,
@@ -89646,13 +90347,11 @@ class ServerApplication extends BuilderBase {
89646
90347
  // create secretInfo for admin account
89647
90348
  {
89648
90349
  let adminPermission = structuredClone(permission);
89649
- adminPermission.masterAdmin.setSecretKeyAdminAccount.selfEnable = false;
89650
- adminPermission.masterAdmin.setSecretKeyAdminAccount.selfEnable = false;
89651
- adminPermission.masterAdmin.grantAdminAccount.selfEnable = false;
89652
- adminPermission.masterAdmin.removeAdminAccount.selfEnable = false;
89653
- adminPermission.masterAdmin.setPasswordAdminAccount.selfEnable = false;
89654
- adminPermission.masterAdmin.setSecretKeyAdminAccount.selfEnable = false;
89655
- adminPermission.masterAdmin.grantGame.selfEnable = false;
90350
+ // adminPermission.masterAdmin.grantAdminAccount.selfEnable = false;
90351
+ // adminPermission.masterAdmin.removeAdminAccount.selfEnable = false;
90352
+ // adminPermission.masterAdmin.setPasswordAdminAccount.selfEnable = false;
90353
+ // adminPermission.masterAdmin.setSecretKeyAdminAccount.selfEnable = false;
90354
+ // adminPermission.masterAdmin.grantGame.selfEnable = false;
89656
90355
  let result = {
89657
90356
  type: "secretInfo",
89658
90357
  secretKey: "admin_" + StringUtility_1.StringUtility.generateRandomString(14, 0),
@@ -89731,6 +90430,7 @@ class ServerApplication extends BuilderBase {
89731
90430
  let username = (_b = process.env["defaultUsername"]) !== null && _b !== void 0 ? _b : "gnadmin";
89732
90431
  // create secretInfo for admin account
89733
90432
  {
90433
+ let permission = GrantSecretInfoRequestHandler_1.GrantSecretInfoRequestHandler.generateDefaultPermission(true, true, true, true);
89734
90434
  let secretKey = "admin_" + StringUtility_1.StringUtility.generateRandomString(14, 0);
89735
90435
  let newSecretInfo = SecretInfo_1.SecretInfo.Builder()
89736
90436
  .setGameId("")
@@ -89839,8 +90539,8 @@ class ServerApplication extends BuilderBase {
89839
90539
  max: 100000000
89840
90540
  });
89841
90541
  let currencyLogCollection = this.gnServer.getDatabase().runtimeCollection("MasterPlayer.CurrencyLog");
89842
- yield currencyLogCollection.createIndex({ "key": 1, "_id": -1 }, { background: true, name: "key_1_id_-1" });
89843
- yield currencyLogCollection.createIndex({ "userId": 1, "key": 1, "_id": -1 }, { background: true, name: "userId_1_key_1_id_-1" });
90542
+ yield currencyLogCollection.createIndex({ key: 1, _id: -1 }, { background: true, name: "key_1_id_-1" });
90543
+ yield currencyLogCollection.createIndex({ userId: 1, key: 1, _id: -1 }, { background: true, name: "userId_1_key_1_id_-1" });
89844
90544
  }
89845
90545
  {
89846
90546
  yield this.gnServer.getDatabase().createCollection("Runtime.MasterPlayer.StatisticsLog", {
@@ -89849,20 +90549,20 @@ class ServerApplication extends BuilderBase {
89849
90549
  max: 100000000
89850
90550
  });
89851
90551
  let statisticsLogCollection = this.gnServer.getDatabase().runtimeCollection("MasterPlayer.StatisticsLog");
89852
- yield statisticsLogCollection.createIndex({ "key": 1, "_id": -1 }, { background: true, name: "key_1_id_-1" });
89853
- yield statisticsLogCollection.createIndex({ "userId": 1, "key": 1, "_id": -1 }, { background: true, name: "userId_1_key_1_id_-1" });
90552
+ yield statisticsLogCollection.createIndex({ key: 1, _id: -1 }, { background: true, name: "key_1_id_-1" });
90553
+ yield statisticsLogCollection.createIndex({ userId: 1, key: 1, _id: -1 }, { background: true, name: "userId_1_key_1_id_-1" });
89854
90554
  }
89855
90555
  {
89856
90556
  let userIPAddressCollection = this.gnServer.getDatabase().systemCollection("MasterPlayer.IPAddress");
89857
- yield userIPAddressCollection.createIndex({ "userId": 1 }, { background: true, name: "userId_1" });
90557
+ yield userIPAddressCollection.createIndex({ userId: 1 }, { background: true, name: "userId_1" });
89858
90558
  }
89859
90559
  {
89860
90560
  let countryRegionCollection = this.gnServer.getDatabase().systemCollection("CountryRegion");
89861
- yield countryRegionCollection.createIndex({ "countryCode": 1 }, { background: true, name: "countryCode_1" });
90561
+ yield countryRegionCollection.createIndex({ countryCode: 1 }, { background: true, name: "countryCode_1" });
89862
90562
  }
89863
90563
  {
89864
90564
  let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().runtimeCollection("MasterPlayer.StatisticsBackup");
89865
- yield backupStatisticsLeaderboardCollection.createIndex({ "key": 1, "version": 1 }, { background: true, name: "key_1_version_1" });
90565
+ yield backupStatisticsLeaderboardCollection.createIndex({ key: 1, version: 1 }, { background: true, name: "key_1_version_1" });
89866
90566
  }
89867
90567
  {
89868
90568
  yield this.gnServer.getDatabase().createCollection("System.Analytics", {
@@ -89871,7 +90571,7 @@ class ServerApplication extends BuilderBase {
89871
90571
  max: 100000
89872
90572
  });
89873
90573
  let analyticsCollection = this.gnServer.getDatabase().systemCollection("Analytics");
89874
- yield analyticsCollection.createIndex({ "tsCreate": -1 }, { background: true, name: "tsCreate_-1" });
90574
+ yield analyticsCollection.createIndex({ tsCreate: -1 }, { background: true, name: "tsCreate_-1" });
89875
90575
  }
89876
90576
  {
89877
90577
  yield this.gnServer.getDatabase().createCollection("System.StoreAnalytics", {
@@ -89880,7 +90580,7 @@ class ServerApplication extends BuilderBase {
89880
90580
  max: 100000
89881
90581
  });
89882
90582
  let storeAnalytics = this.gnServer.getDatabase().systemCollection("StoreAnalytics");
89883
- yield storeAnalytics.createIndex({ "tsCreate": -1 }, { background: true, name: "tsCreate_-1" });
90583
+ yield storeAnalytics.createIndex({ tsCreate: -1 }, { background: true, name: "tsCreate_-1" });
89884
90584
  }
89885
90585
  }
89886
90586
  {
@@ -89937,9 +90637,10 @@ class ServerApplication extends BuilderBase {
89937
90637
  yield masterAdminCollection.insertOne(gameSettingsResult);
89938
90638
  {
89939
90639
  let gamePlayerCollection = this.gnServer.getDatabase().systemGameCollection("GamePlayer", gameId);
89940
- yield gamePlayerCollection.createIndex({ "userId": 1 }, { background: true, name: "userId_1" });
89941
- yield gamePlayerCollection.createIndex({ "segments": 1 }, { background: true, name: "segments_1" });
89942
- yield gamePlayerCollection.createIndex({ "displayNameNormalize": 1 }, { background: true, name: "displayNameNormalize_1" });
90640
+ yield gamePlayerCollection.createIndex({ userId: 1 }, { background: true, name: "userId_1" });
90641
+ yield gamePlayerCollection.createIndex({ segments: 1 }, { background: true, name: "segments_1" });
90642
+ yield gamePlayerCollection.createIndex({ displayNameNormalize: 1 }, { background: true, name: "displayNameNormalize_1" });
90643
+ yield gamePlayerCollection.createIndex({ tsLastLogin: -1 }, { background: true, name: "tsLastLogin_-1" });
89943
90644
  }
89944
90645
  {
89945
90646
  yield this.gnServer.getDatabase().createCollection("Runtime." + gameId + ".GamePlayer.CurrencyLog", {
@@ -89948,8 +90649,8 @@ class ServerApplication extends BuilderBase {
89948
90649
  max: 100000000
89949
90650
  });
89950
90651
  let currencyLogCollection = this.gnServer.getDatabase().runtimeGameCollection("GamePlayer.CurrencyLog", gameId);
89951
- yield currencyLogCollection.createIndex({ "key": 1, "_id": -1 }, { background: true, name: "key_1_id_-1" });
89952
- yield currencyLogCollection.createIndex({ "userId": 1, "key": 1, "_id": -1 }, { background: true, name: "userId_1_key_1_id_-1" });
90652
+ yield currencyLogCollection.createIndex({ key: 1, _id: -1 }, { background: true, name: "key_1_id_-1" });
90653
+ yield currencyLogCollection.createIndex({ userId: 1, key: 1, _id: -1 }, { background: true, name: "userId_1_key_1_id_-1" });
89953
90654
  }
89954
90655
  {
89955
90656
  yield this.gnServer.getDatabase().createCollection("Runtime." + gameId + ".GamePlayer.StatisticsLog", {
@@ -89958,18 +90659,19 @@ class ServerApplication extends BuilderBase {
89958
90659
  max: 100000000
89959
90660
  });
89960
90661
  let statisticsLogCollection = this.gnServer.getDatabase().runtimeGameCollection("GamePlayer.StatisticsLog", gameId);
89961
- yield statisticsLogCollection.createIndex({ "key": 1, "_id": -1 }, { background: true, name: "key_1_id_-1" });
89962
- yield statisticsLogCollection.createIndex({ "userId": 1, "key": 1, "_id": -1 }, { background: true, name: "userId_1_key_1_id_-1" });
90662
+ yield statisticsLogCollection.createIndex({ key: 1, _id: -1 }, { background: true, name: "key_1_id_-1" });
90663
+ yield statisticsLogCollection.createIndex({ userId: 1, key: 1, _id: -1 }, { background: true, name: "userId_1_key_1_id_-1" });
89963
90664
  }
89964
90665
  {
89965
90666
  let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().runtimeGameCollection("GamePlayer.StatisticsBackup", gameId);
89966
- yield backupStatisticsLeaderboardCollection.createIndex({ "key": 1, "version": 1 }, { background: true, name: "key_1_version_1" });
90667
+ yield backupStatisticsLeaderboardCollection.createIndex({ key: 1, version: 1 }, { background: true, name: "key_1_version_1" });
89967
90668
  }
89968
90669
  {
89969
90670
  let characterPlayerCollection = this.gnServer.getDatabase().systemGameCollection("CharacterPlayer", gameId);
89970
- yield characterPlayerCollection.createIndex({ "characterId": 1 }, { background: true, name: "characterId_1" });
89971
- yield characterPlayerCollection.createIndex({ "segments": 1 }, { background: true, name: "segments_1" });
89972
- yield characterPlayerCollection.createIndex({ "displayNameNormalize": 1 }, { background: true, name: "displayNameNormalize_1" });
90671
+ yield characterPlayerCollection.createIndex({ characterId: 1 }, { background: true, name: "characterId_1" });
90672
+ yield characterPlayerCollection.createIndex({ segments: 1 }, { background: true, name: "segments_1" });
90673
+ yield characterPlayerCollection.createIndex({ displayNameNormalize: 1 }, { background: true, name: "displayNameNormalize_1" });
90674
+ yield characterPlayerCollection.createIndex({ tsLastLogin: -1 }, { background: true, name: "tsLastLogin_-1" });
89973
90675
  }
89974
90676
  {
89975
90677
  yield this.gnServer.getDatabase().createCollection("Runtime." + gameId + ".CharacterPlayer.CurrencyLog", {
@@ -89978,8 +90680,8 @@ class ServerApplication extends BuilderBase {
89978
90680
  max: 100000000
89979
90681
  });
89980
90682
  let currencyLogCollection = this.gnServer.getDatabase().runtimeGameCollection("CharacterPlayer.CurrencyLog", gameId);
89981
- yield currencyLogCollection.createIndex({ "key": 1, "_id": -1 }, { background: true, name: "key_1_id_-1" });
89982
- yield currencyLogCollection.createIndex({ "characterId": 1, "key": 1, "_id": -1 }, { background: true, name: "characterId_1_key_1_id_-1" });
90683
+ yield currencyLogCollection.createIndex({ key: 1, _id: -1 }, { background: true, name: "key_1_id_-1" });
90684
+ yield currencyLogCollection.createIndex({ characterId: 1, key: 1, _id: -1 }, { background: true, name: "characterId_1_key_1_id_-1" });
89983
90685
  }
89984
90686
  {
89985
90687
  yield this.gnServer.getDatabase().createCollection("Runtime." + gameId + ".CharacterPlayer.StatisticsLog", {
@@ -89988,18 +90690,18 @@ class ServerApplication extends BuilderBase {
89988
90690
  max: 100000000
89989
90691
  });
89990
90692
  let statisticsLogCollection = this.gnServer.getDatabase().runtimeGameCollection("CharacterPlayer.StatisticsLog", gameId);
89991
- yield statisticsLogCollection.createIndex({ "key": 1, "_id": -1 }, { background: true, name: "key_1_id_-1" });
89992
- yield statisticsLogCollection.createIndex({ "characterId": 1, "key": 1, "_id": -1 }, { background: true, name: "characterId_1_key_1_id_-1" });
90693
+ yield statisticsLogCollection.createIndex({ key: 1, _id: -1 }, { background: true, name: "key_1_id_-1" });
90694
+ yield statisticsLogCollection.createIndex({ characterId: 1, key: 1, _id: -1 }, { background: true, name: "characterId_1_key_1_id_-1" });
89993
90695
  }
89994
90696
  {
89995
90697
  let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().runtimeGameCollection("CharacterPlayer.StatisticsBackup", gameId);
89996
- yield backupStatisticsLeaderboardCollection.createIndex({ "key": 1, "version": 1 }, { background: true, name: "key_1_version_1" });
90698
+ yield backupStatisticsLeaderboardCollection.createIndex({ key: 1, version: 1 }, { background: true, name: "key_1_version_1" });
89997
90699
  }
89998
90700
  {
89999
90701
  let groupCollection = this.gnServer.getDatabase().systemGameCollection("Group", gameId);
90000
- yield groupCollection.createIndex({ "groupId": 1 }, { background: true, name: "groupId_1" });
90001
- yield groupCollection.createIndex({ "segments": 1 }, { background: true, name: "segments_1" });
90002
- yield groupCollection.createIndex({ "displayNameNormalize": 1 }, { background: true, name: "displayNameNormalize_1" });
90702
+ yield groupCollection.createIndex({ groupId: 1 }, { background: true, name: "groupId_1" });
90703
+ yield groupCollection.createIndex({ segments: 1 }, { background: true, name: "segments_1" });
90704
+ yield groupCollection.createIndex({ displayNameNormalize: 1 }, { background: true, name: "displayNameNormalize_1" });
90003
90705
  }
90004
90706
  {
90005
90707
  yield this.gnServer.getDatabase().createCollection("Runtime." + gameId + ".Group.CurrencyLog", {
@@ -90008,8 +90710,8 @@ class ServerApplication extends BuilderBase {
90008
90710
  max: 100000000
90009
90711
  });
90010
90712
  let currencyLogCollection = this.gnServer.getDatabase().runtimeGameCollection("Group.CurrencyLog", gameId);
90011
- yield currencyLogCollection.createIndex({ "key": 1, "_id": -1 }, { background: true, name: "key_1_id_-1" });
90012
- yield currencyLogCollection.createIndex({ "groupId": 1, "key": 1, "_id": -1 }, { background: true, name: "groupId_1_key_1_id_-1" });
90713
+ yield currencyLogCollection.createIndex({ key: 1, _id: -1 }, { background: true, name: "key_1_id_-1" });
90714
+ yield currencyLogCollection.createIndex({ groupId: 1, key: 1, _id: -1 }, { background: true, name: "groupId_1_key_1_id_-1" });
90013
90715
  }
90014
90716
  {
90015
90717
  yield this.gnServer.getDatabase().createCollection("Runtime." + gameId + ".Group.StatisticsLog", {
@@ -90018,12 +90720,12 @@ class ServerApplication extends BuilderBase {
90018
90720
  max: 100000000
90019
90721
  });
90020
90722
  let statisticsLogCollection = this.gnServer.getDatabase().runtimeGameCollection("Group.StatisticsLog", gameId);
90021
- yield statisticsLogCollection.createIndex({ "key": 1, "_id": -1 }, { background: true, name: "key_1_id_-1" });
90022
- yield statisticsLogCollection.createIndex({ "groupId": 1, "key": 1, "_id": -1 }, { background: true, name: "groupId_1_key_1_id_-1" });
90723
+ yield statisticsLogCollection.createIndex({ key: 1, _id: -1 }, { background: true, name: "key_1_id_-1" });
90724
+ yield statisticsLogCollection.createIndex({ groupId: 1, key: 1, _id: -1 }, { background: true, name: "groupId_1_key_1_id_-1" });
90023
90725
  }
90024
90726
  {
90025
90727
  let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().runtimeGameCollection("Group.StatisticsBackup", gameId);
90026
- yield backupStatisticsLeaderboardCollection.createIndex({ "key": 1, "version": 1 }, { background: true, name: "key_1_version_1" });
90728
+ yield backupStatisticsLeaderboardCollection.createIndex({ key: 1, version: 1 }, { background: true, name: "key_1_version_1" });
90027
90729
  }
90028
90730
  {
90029
90731
  yield this.gnServer.getDatabase().createCollection("Runtime." + gameId + ".Group.Message", {
@@ -90032,13 +90734,13 @@ class ServerApplication extends BuilderBase {
90032
90734
  max: 100000000
90033
90735
  });
90034
90736
  let groupMessageCollection = this.gnServer.getDatabase().runtimeGameCollection("Group.Message", gameId);
90035
- yield groupMessageCollection.createIndex({ "groupId": 1, "_id": -1 }, { background: true, name: "groupId_1_id_-1" });
90737
+ yield groupMessageCollection.createIndex({ groupId: 1, _id: -1 }, { background: true, name: "groupId_1_id_-1" });
90036
90738
  }
90037
90739
  {
90038
90740
  let inventoryCollection = this.gnServer.getDatabase().systemGameCollection("Inventory", gameId);
90039
- yield inventoryCollection.createIndex({ "itemId": 1 }, { background: true, name: "itemId_1" });
90040
- yield inventoryCollection.createIndex({ "segments": 1 }, { background: true, name: "segments_1" });
90041
- yield inventoryCollection.createIndex({ "displayNameNormalize": 1 }, { background: true, name: "displayNameNormalize_1" });
90741
+ yield inventoryCollection.createIndex({ itemId: 1 }, { background: true, name: "itemId_1" });
90742
+ yield inventoryCollection.createIndex({ segments: 1 }, { background: true, name: "segments_1" });
90743
+ yield inventoryCollection.createIndex({ displayNameNormalize: 1 }, { background: true, name: "displayNameNormalize_1" });
90042
90744
  }
90043
90745
  {
90044
90746
  yield this.gnServer.getDatabase().createCollection("Runtime." + gameId + ".Inventory.StatisticsLog", {
@@ -90047,18 +90749,18 @@ class ServerApplication extends BuilderBase {
90047
90749
  max: 100000000
90048
90750
  });
90049
90751
  let statisticsLogCollection = this.gnServer.getDatabase().runtimeGameCollection("Inventory.StatisticsLog", gameId);
90050
- yield statisticsLogCollection.createIndex({ "key": 1, "_id": -1 }, { background: true, name: "key_1_id_-1" });
90051
- yield statisticsLogCollection.createIndex({ "itemId": 1, "key": 1, "_id": -1 }, { background: true, name: "itemId_1_key_1_id_-1" });
90752
+ yield statisticsLogCollection.createIndex({ key: 1, _id: -1 }, { background: true, name: "key_1_id_-1" });
90753
+ yield statisticsLogCollection.createIndex({ itemId: 1, key: 1, _id: -1 }, { background: true, name: "itemId_1_key_1_id_-1" });
90052
90754
  }
90053
90755
  {
90054
90756
  let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().runtimeGameCollection("Inventory.StatisticsBackup", gameId);
90055
- yield backupStatisticsLeaderboardCollection.createIndex({ "key": 1, "version": 1 }, { background: true, name: "key_1_version_1" });
90757
+ yield backupStatisticsLeaderboardCollection.createIndex({ key: 1, version: 1 }, { background: true, name: "key_1_version_1" });
90056
90758
  }
90057
90759
  {
90058
90760
  let storeInventoryCollection = this.gnServer.getDatabase().systemGameCollection("StoreInventory", gameId);
90059
- yield storeInventoryCollection.createIndex({ "storeId": 1 }, { background: true, name: "storeId_1" });
90060
- yield storeInventoryCollection.createIndex({ "displayNameNormalize": 1 }, { background: true, name: "displayNameNormalize_1" });
90061
- yield storeInventoryCollection.createIndex({ "tags": 1 }, { background: true, sparse: true, name: "tags_1" });
90761
+ yield storeInventoryCollection.createIndex({ storeId: 1 }, { background: true, name: "storeId_1" });
90762
+ yield storeInventoryCollection.createIndex({ displayNameNormalize: 1 }, { background: true, name: "displayNameNormalize_1" });
90763
+ yield storeInventoryCollection.createIndex({ tags: 1 }, { background: true, sparse: true, name: "tags_1" });
90062
90764
  }
90063
90765
  {
90064
90766
  yield this.gnServer.getDatabase().createCollection("Runtime." + gameId + ".StoreInventory.StoreLog", {
@@ -90067,14 +90769,18 @@ class ServerApplication extends BuilderBase {
90067
90769
  max: 100000000
90068
90770
  });
90069
90771
  let storeInventoryLogCollection = this.gnServer.getDatabase().runtimeGameCollection("StoreInventory.StoreLog", gameId);
90070
- yield storeInventoryLogCollection.createIndex({ "storeId": 1, "id": 1, "storeReceiveType": -1, "_id": -1 }, { background: true, name: "storeId_1_id_1_storeReceiveType_-1_id_-1" });
90071
- yield storeInventoryLogCollection.createIndex({ "id": 1, "storeReceiveType": -1, "_id": -1 }, { background: true, name: "id_1_storeReceiveType_-1_id_-1" });
90072
- yield storeInventoryLogCollection.createIndex({ "storeReceiveType": -1, "_id": -1 }, { background: true, name: "storeReceiveType_-1_id_-1" });
90772
+ yield storeInventoryLogCollection.createIndex({ storeId: 1, id: 1, storeReceiveType: -1, _id: -1 }, { background: true, name: "storeId_1_id_1_storeReceiveType_-1_id_-1" });
90773
+ yield storeInventoryLogCollection.createIndex({ id: 1, storeReceiveType: -1, _id: -1 }, { background: true, name: "id_1_storeReceiveType_-1_id_-1" });
90774
+ yield storeInventoryLogCollection.createIndex({ storeReceiveType: -1, _id: -1 }, { background: true, name: "storeReceiveType_-1_id_-1" });
90775
+ }
90776
+ {
90777
+ let storeInventoryUsedCollection = this.gnServer.getDatabase().systemGameCollection("StoreInventory.StoreUsed", gameId);
90778
+ yield storeInventoryUsedCollection.createIndex({ storeId: 1 }, { background: true, name: "storeId_1" });
90073
90779
  }
90074
90780
  {
90075
90781
  let receiptIAPCollection = this.gnServer.getDatabase().systemGameCollection("ReceiptIAP", gameId);
90076
- receiptIAPCollection.createIndex({ "payloadMd5": 1 }, { background: true, name: "payloadMd5_1" });
90077
- receiptIAPCollection.createIndex({ "transactionId": 1 }, { background: true, name: "transactionId_1" });
90782
+ receiptIAPCollection.createIndex({ payloadMd5: 1 }, { background: true, name: "payloadMd5_1" });
90783
+ receiptIAPCollection.createIndex({ transactionId: 1 }, { background: true, name: "transactionId_1" });
90078
90784
  }
90079
90785
  {
90080
90786
  yield this.gnServer.getDatabase().createCollection("Runtime." + gameId + ".MatchmakingTicket", {
@@ -90083,10 +90789,10 @@ class ServerApplication extends BuilderBase {
90083
90789
  max: 100000
90084
90790
  });
90085
90791
  let matchmakingTicketCollection = this.gnServer.getDatabase().runtimeGameCollection("MatchmakingTicket", gameId);
90086
- yield matchmakingTicketCollection.createIndex({ "userIds": 1, "queueName": 1, "status": -1 }, { background: true, name: "userIds_1_queueName_1_status_-1" });
90087
- yield matchmakingTicketCollection.createIndex({ "queueName": 1, "status": -1, "tsCreate": -1 }, { background: true, name: "queueName_1_status_-1_tsCreate_-1" });
90088
- yield matchmakingTicketCollection.createIndex({ "ticketId": 1 }, { background: true, name: "ticketId_1" });
90089
- yield matchmakingTicketCollection.createIndex({ "status": -1, "_id": -1 }, { background: true, name: "status_-1_id_-1" });
90792
+ yield matchmakingTicketCollection.createIndex({ userIds: 1, "queueName": 1, "status": -1 }, { background: true, name: "userIds_1_queueName_1_status_-1" });
90793
+ yield matchmakingTicketCollection.createIndex({ queueName: 1, "status": -1, "tsCreate": -1 }, { background: true, name: "queueName_1_status_-1_tsCreate_-1" });
90794
+ yield matchmakingTicketCollection.createIndex({ ticketId: 1 }, { background: true, name: "ticketId_1" });
90795
+ yield matchmakingTicketCollection.createIndex({ status: -1, _id: -1 }, { background: true, name: "status_-1_id_-1" });
90090
90796
  }
90091
90797
  {
90092
90798
  yield this.gnServer.getDatabase().createCollection("Runtime." + gameId + ".CloudScript.Log", {
@@ -90095,17 +90801,17 @@ class ServerApplication extends BuilderBase {
90095
90801
  max: 100000
90096
90802
  });
90097
90803
  let cloudScriptFunctionLogCollection = this.gnServer.getDatabase().runtimeGameCollection("CloudScript.Log", gameId);
90098
- yield cloudScriptFunctionLogCollection.createIndex({ "tsCreate": -1 }, { background: true, name: "tsCreate-1" });
90804
+ yield cloudScriptFunctionLogCollection.createIndex({ tsCreate: -1 }, { background: true, name: "tsCreate-1" });
90099
90805
  }
90100
90806
  {
90101
90807
  let matchCollection = this.gnServer.getDatabase().systemGameCollection("Match", gameId);
90102
- yield matchCollection.createIndex({ "matchId": 1 }, { background: true, name: "matchId_1" });
90103
- yield matchCollection.createIndex({ "queueName": 1, "tsCreate": -1 }, { background: true, name: "queueName_1_tsCreate_-1" });
90104
- yield matchCollection.createIndex({ "status": -1, "tsCreate": -1 }, { background: true, name: "status_-1_tsCreate_-1" });
90808
+ yield matchCollection.createIndex({ matchId: 1 }, { background: true, name: "matchId_1" });
90809
+ yield matchCollection.createIndex({ queueName: 1, tsCreate: -1 }, { background: true, name: "queueName_1_tsCreate_-1" });
90810
+ yield matchCollection.createIndex({ status: -1, tsCreate: -1 }, { background: true, name: "status_-1_tsCreate_-1" });
90105
90811
  }
90106
90812
  {
90107
90813
  let configCollection = this.gnServer.getDatabase().systemGameCollection("Config", gameId);
90108
- yield configCollection.createIndex({ "configName": 1, "label": 1 }, { background: true, unique: true, name: "configName_1_label_1" });
90814
+ yield configCollection.createIndex({ configName: 1, label: 1 }, { background: true, unique: true, name: "configName_1_label_1" });
90109
90815
  }
90110
90816
  }
90111
90817
  // create dev game settings
@@ -90161,9 +90867,10 @@ class ServerApplication extends BuilderBase {
90161
90867
  yield masterAdminCollection.insertOne(gameSettingsResult);
90162
90868
  {
90163
90869
  let gamePlayerCollection = this.gnServer.getDatabase().systemGameCollection("GamePlayer", gameId);
90164
- yield gamePlayerCollection.createIndex({ "userId": 1 }, { background: true, name: "userId_1" });
90165
- yield gamePlayerCollection.createIndex({ "segments": 1 }, { background: true, name: "segments_1" });
90166
- yield gamePlayerCollection.createIndex({ "displayNameNormalize": 1 }, { background: true, name: "displayNameNormalize_1" });
90870
+ yield gamePlayerCollection.createIndex({ userId: 1 }, { background: true, name: "userId_1" });
90871
+ yield gamePlayerCollection.createIndex({ segments: 1 }, { background: true, name: "segments_1" });
90872
+ yield gamePlayerCollection.createIndex({ displayNameNormalize: 1 }, { background: true, name: "displayNameNormalize_1" });
90873
+ yield gamePlayerCollection.createIndex({ tsLastLogin: -1 }, { background: true, name: "tsLastLogin_-1" });
90167
90874
  }
90168
90875
  {
90169
90876
  yield this.gnServer.getDatabase().createCollection("Runtime." + gameId + ".GamePlayer.CurrencyLog", {
@@ -90172,8 +90879,8 @@ class ServerApplication extends BuilderBase {
90172
90879
  max: 100000000
90173
90880
  });
90174
90881
  let currencyLogCollection = this.gnServer.getDatabase().runtimeGameCollection("GamePlayer.CurrencyLog", gameId);
90175
- yield currencyLogCollection.createIndex({ "key": 1, "_id": -1 }, { background: true, name: "key_1_id_-1" });
90176
- yield currencyLogCollection.createIndex({ "userId": 1, "key": 1, "_id": -1 }, { background: true, name: "userId_1_key_1_id_-1" });
90882
+ yield currencyLogCollection.createIndex({ key: 1, _id: -1 }, { background: true, name: "key_1_id_-1" });
90883
+ yield currencyLogCollection.createIndex({ userId: 1, key: 1, _id: -1 }, { background: true, name: "userId_1_key_1_id_-1" });
90177
90884
  }
90178
90885
  {
90179
90886
  yield this.gnServer.getDatabase().createCollection("Runtime." + gameId + ".GamePlayer.StatisticsLog", {
@@ -90182,18 +90889,19 @@ class ServerApplication extends BuilderBase {
90182
90889
  max: 100000000
90183
90890
  });
90184
90891
  let statisticsLogCollection = this.gnServer.getDatabase().runtimeGameCollection("GamePlayer.StatisticsLog", gameId);
90185
- yield statisticsLogCollection.createIndex({ "key": 1, "_id": -1 }, { background: true, name: "key_1_id_-1" });
90186
- yield statisticsLogCollection.createIndex({ "userId": 1, "key": 1, "_id": -1 }, { background: true, name: "userId_1_key_1_id_-1" });
90892
+ yield statisticsLogCollection.createIndex({ key: 1, _id: -1 }, { background: true, name: "key_1_id_-1" });
90893
+ yield statisticsLogCollection.createIndex({ userId: 1, key: 1, _id: -1 }, { background: true, name: "userId_1_key_1_id_-1" });
90187
90894
  }
90188
90895
  {
90189
90896
  let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().runtimeGameCollection("GamePlayer.StatisticsBackup", gameId);
90190
- yield backupStatisticsLeaderboardCollection.createIndex({ "key": 1, "version": 1 }, { background: true, name: "key_1_version_1" });
90897
+ yield backupStatisticsLeaderboardCollection.createIndex({ key: 1, version: 1 }, { background: true, name: "key_1_version_1" });
90191
90898
  }
90192
90899
  {
90193
90900
  let characterPlayerCollection = this.gnServer.getDatabase().systemGameCollection("CharacterPlayer", gameId);
90194
- yield characterPlayerCollection.createIndex({ "characterId": 1 }, { background: true, name: "characterId_1" });
90195
- yield characterPlayerCollection.createIndex({ "segments": 1 }, { background: true, name: "segments_1" });
90196
- yield characterPlayerCollection.createIndex({ "displayNameNormalize": 1 }, { background: true, name: "displayNameNormalize_1" });
90901
+ yield characterPlayerCollection.createIndex({ characterId: 1 }, { background: true, name: "characterId_1" });
90902
+ yield characterPlayerCollection.createIndex({ segments: 1 }, { background: true, name: "segments_1" });
90903
+ yield characterPlayerCollection.createIndex({ displayNameNormalize: 1 }, { background: true, name: "displayNameNormalize_1" });
90904
+ yield characterPlayerCollection.createIndex({ tsLastLogin: -1 }, { background: true, name: "tsLastLogin_-1" });
90197
90905
  }
90198
90906
  {
90199
90907
  yield this.gnServer.getDatabase().createCollection("Runtime." + gameId + ".CharacterPlayer.CurrencyLog", {
@@ -90202,8 +90910,8 @@ class ServerApplication extends BuilderBase {
90202
90910
  max: 100000000
90203
90911
  });
90204
90912
  let currencyLogCollection = this.gnServer.getDatabase().runtimeGameCollection("CharacterPlayer.CurrencyLog", gameId);
90205
- yield currencyLogCollection.createIndex({ "key": 1, "_id": -1 }, { background: true, name: "key_1_id_-1" });
90206
- yield currencyLogCollection.createIndex({ "characterId": 1, "key": 1, "_id": -1 }, { background: true, name: "characterId_1_key_1_id_-1" });
90913
+ yield currencyLogCollection.createIndex({ key: 1, _id: -1 }, { background: true, name: "key_1_id_-1" });
90914
+ yield currencyLogCollection.createIndex({ characterId: 1, key: 1, _id: -1 }, { background: true, name: "characterId_1_key_1_id_-1" });
90207
90915
  }
90208
90916
  {
90209
90917
  yield this.gnServer.getDatabase().createCollection("Runtime." + gameId + ".CharacterPlayer.StatisticsLog", {
@@ -90212,18 +90920,18 @@ class ServerApplication extends BuilderBase {
90212
90920
  max: 100000000
90213
90921
  });
90214
90922
  let statisticsLogCollection = this.gnServer.getDatabase().runtimeGameCollection("CharacterPlayer.StatisticsLog", gameId);
90215
- yield statisticsLogCollection.createIndex({ "key": 1, "_id": -1 }, { background: true, name: "key_1_id_-1" });
90216
- yield statisticsLogCollection.createIndex({ "characterId": 1, "key": 1, "_id": -1 }, { background: true, name: "characterId_1_key_1_id_-1" });
90923
+ yield statisticsLogCollection.createIndex({ key: 1, _id: -1 }, { background: true, name: "key_1_id_-1" });
90924
+ yield statisticsLogCollection.createIndex({ characterId: 1, key: 1, _id: -1 }, { background: true, name: "characterId_1_key_1_id_-1" });
90217
90925
  }
90218
90926
  {
90219
90927
  let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().runtimeGameCollection("CharacterPlayer.StatisticsBackup", gameId);
90220
- yield backupStatisticsLeaderboardCollection.createIndex({ "key": 1, "version": 1 }, { background: true, name: "key_1_version_1" });
90928
+ yield backupStatisticsLeaderboardCollection.createIndex({ key: 1, version: 1 }, { background: true, name: "key_1_version_1" });
90221
90929
  }
90222
90930
  {
90223
90931
  let groupCollection = this.gnServer.getDatabase().systemGameCollection("Group", gameId);
90224
- yield groupCollection.createIndex({ "groupId": 1 }, { background: true, name: "groupId_1" });
90225
- yield groupCollection.createIndex({ "segments": 1 }, { background: true, name: "segments_1" });
90226
- yield groupCollection.createIndex({ "displayNameNormalize": 1 }, { background: true, name: "displayNameNormalize_1" });
90932
+ yield groupCollection.createIndex({ groupId: 1 }, { background: true, name: "groupId_1" });
90933
+ yield groupCollection.createIndex({ segments: 1 }, { background: true, name: "segments_1" });
90934
+ yield groupCollection.createIndex({ displayNameNormalize: 1 }, { background: true, name: "displayNameNormalize_1" });
90227
90935
  }
90228
90936
  {
90229
90937
  yield this.gnServer.getDatabase().createCollection("Runtime." + gameId + ".Group.CurrencyLog", {
@@ -90232,8 +90940,8 @@ class ServerApplication extends BuilderBase {
90232
90940
  max: 100000000
90233
90941
  });
90234
90942
  let currencyLogCollection = this.gnServer.getDatabase().runtimeGameCollection("Group.CurrencyLog", gameId);
90235
- yield currencyLogCollection.createIndex({ "key": 1, "_id": -1 }, { background: true, name: "key_1_id_-1" });
90236
- yield currencyLogCollection.createIndex({ "groupId": 1, "key": 1, "_id": -1 }, { background: true, name: "groupId_1_key_1_id_-1" });
90943
+ yield currencyLogCollection.createIndex({ key: 1, _id: -1 }, { background: true, name: "key_1_id_-1" });
90944
+ yield currencyLogCollection.createIndex({ groupId: 1, key: 1, _id: -1 }, { background: true, name: "groupId_1_key_1_id_-1" });
90237
90945
  }
90238
90946
  {
90239
90947
  yield this.gnServer.getDatabase().createCollection("Runtime." + gameId + ".Group.StatisticsLog", {
@@ -90242,12 +90950,12 @@ class ServerApplication extends BuilderBase {
90242
90950
  max: 100000000
90243
90951
  });
90244
90952
  let statisticsLogCollection = this.gnServer.getDatabase().runtimeGameCollection("Group.StatisticsLog", gameId);
90245
- yield statisticsLogCollection.createIndex({ "key": 1, "_id": -1 }, { background: true, name: "key_1_id_-1" });
90246
- yield statisticsLogCollection.createIndex({ "groupId": 1, "key": 1, "_id": -1 }, { background: true, name: "groupId_1_key_1_id_-1" });
90953
+ yield statisticsLogCollection.createIndex({ key: 1, _id: -1 }, { background: true, name: "key_1_id_-1" });
90954
+ yield statisticsLogCollection.createIndex({ groupId: 1, key: 1, _id: -1 }, { background: true, name: "groupId_1_key_1_id_-1" });
90247
90955
  }
90248
90956
  {
90249
90957
  let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().runtimeGameCollection("Group.StatisticsBackup", gameId);
90250
- yield backupStatisticsLeaderboardCollection.createIndex({ "key": 1, "version": 1 }, { background: true, name: "key_1_version_1" });
90958
+ yield backupStatisticsLeaderboardCollection.createIndex({ key: 1, version: 1 }, { background: true, name: "key_1_version_1" });
90251
90959
  }
90252
90960
  {
90253
90961
  yield this.gnServer.getDatabase().createCollection("Runtime." + gameId + ".Group.Message", {
@@ -90256,13 +90964,13 @@ class ServerApplication extends BuilderBase {
90256
90964
  max: 100000000
90257
90965
  });
90258
90966
  let groupMessageCollection = this.gnServer.getDatabase().runtimeGameCollection("Group.Message", gameId);
90259
- yield groupMessageCollection.createIndex({ "groupId": 1, "_id": -1 }, { background: true, name: "groupId_1_id_-1" });
90967
+ yield groupMessageCollection.createIndex({ groupId: 1, _id: -1 }, { background: true, name: "groupId_1_id_-1" });
90260
90968
  }
90261
90969
  {
90262
90970
  let inventoryCollection = this.gnServer.getDatabase().systemGameCollection("Inventory", gameId);
90263
- yield inventoryCollection.createIndex({ "itemId": 1 }, { background: true, name: "itemId_1" });
90264
- yield inventoryCollection.createIndex({ "segments": 1 }, { background: true, name: "segments_1" });
90265
- yield inventoryCollection.createIndex({ "displayNameNormalize": 1 }, { background: true, name: "displayNameNormalize_1" });
90971
+ yield inventoryCollection.createIndex({ itemId: 1 }, { background: true, name: "itemId_1" });
90972
+ yield inventoryCollection.createIndex({ segments: 1 }, { background: true, name: "segments_1" });
90973
+ yield inventoryCollection.createIndex({ displayNameNormalize: 1 }, { background: true, name: "displayNameNormalize_1" });
90266
90974
  }
90267
90975
  {
90268
90976
  yield this.gnServer.getDatabase().createCollection("Runtime." + gameId + ".Inventory.StatisticsLog", {
@@ -90271,18 +90979,18 @@ class ServerApplication extends BuilderBase {
90271
90979
  max: 100000000
90272
90980
  });
90273
90981
  let statisticsLogCollection = this.gnServer.getDatabase().runtimeGameCollection("Inventory.StatisticsLog", gameId);
90274
- yield statisticsLogCollection.createIndex({ "key": 1, "_id": -1 }, { background: true, name: "key_1_id_-1" });
90275
- yield statisticsLogCollection.createIndex({ "itemId": 1, "key": 1, "_id": -1 }, { background: true, name: "itemId_1_key_1_id_-1" });
90982
+ yield statisticsLogCollection.createIndex({ key: 1, _id: -1 }, { background: true, name: "key_1_id_-1" });
90983
+ yield statisticsLogCollection.createIndex({ itemId: 1, key: 1, _id: -1 }, { background: true, name: "itemId_1_key_1_id_-1" });
90276
90984
  }
90277
90985
  {
90278
90986
  let backupStatisticsLeaderboardCollection = this.gnServer.getDatabase().runtimeGameCollection("Inventory.StatisticsBackup", gameId);
90279
- yield backupStatisticsLeaderboardCollection.createIndex({ "key": 1, "version": 1 }, { background: true, name: "key_1_version_1" });
90987
+ yield backupStatisticsLeaderboardCollection.createIndex({ key: 1, version: 1 }, { background: true, name: "key_1_version_1" });
90280
90988
  }
90281
90989
  {
90282
90990
  let storeInventoryCollection = this.gnServer.getDatabase().systemGameCollection("StoreInventory", gameId);
90283
- yield storeInventoryCollection.createIndex({ "storeId": 1 }, { background: true, name: "storeId_1" });
90284
- yield storeInventoryCollection.createIndex({ "displayNameNormalize": 1 }, { background: true, name: "displayNameNormalize_1" });
90285
- yield storeInventoryCollection.createIndex({ "tags": 1 }, { background: true, sparse: true, name: "tags_1" });
90991
+ yield storeInventoryCollection.createIndex({ storeId: 1 }, { background: true, name: "storeId_1" });
90992
+ yield storeInventoryCollection.createIndex({ displayNameNormalize: 1 }, { background: true, name: "displayNameNormalize_1" });
90993
+ yield storeInventoryCollection.createIndex({ tags: 1 }, { background: true, sparse: true, name: "tags_1" });
90286
90994
  }
90287
90995
  {
90288
90996
  yield this.gnServer.getDatabase().createCollection("Runtime." + gameId + ".StoreInventory.StoreLog", {
@@ -90291,14 +90999,18 @@ class ServerApplication extends BuilderBase {
90291
90999
  max: 100000000
90292
91000
  });
90293
91001
  let storeInventoryLogCollection = this.gnServer.getDatabase().runtimeGameCollection("StoreInventory.StoreLog", gameId);
90294
- yield storeInventoryLogCollection.createIndex({ "storeId": 1, "id": 1, "storeReceiveType": -1, "_id": -1 }, { background: true, name: "storeId_1_id_1_storeReceiveType_-1_id_-1" });
90295
- yield storeInventoryLogCollection.createIndex({ "id": 1, "storeReceiveType": -1, "_id": -1 }, { background: true, name: "id_1_storeReceiveType_-1_id_-1" });
90296
- yield storeInventoryLogCollection.createIndex({ "storeReceiveType": -1, "_id": -1 }, { background: true, name: "storeReceiveType_-1_id_-1" });
91002
+ yield storeInventoryLogCollection.createIndex({ storeId: 1, id: 1, storeReceiveType: -1, _id: -1 }, { background: true, name: "storeId_1_id_1_storeReceiveType_-1_id_-1" });
91003
+ yield storeInventoryLogCollection.createIndex({ id: 1, storeReceiveType: -1, _id: -1 }, { background: true, name: "id_1_storeReceiveType_-1_id_-1" });
91004
+ yield storeInventoryLogCollection.createIndex({ storeReceiveType: -1, _id: -1 }, { background: true, name: "storeReceiveType_-1_id_-1" });
91005
+ }
91006
+ {
91007
+ let storeInventoryUsedCollection = this.gnServer.getDatabase().systemGameCollection("StoreInventory.StoreUsed", gameId);
91008
+ yield storeInventoryUsedCollection.createIndex({ storeId: 1 }, { background: true, name: "storeId_1" });
90297
91009
  }
90298
91010
  {
90299
91011
  let receiptIAPCollection = this.gnServer.getDatabase().systemGameCollection("ReceiptIAP", gameId);
90300
- receiptIAPCollection.createIndex({ "payloadMd5": 1 }, { background: true, name: "payloadMd5_1" });
90301
- receiptIAPCollection.createIndex({ "transactionId": 1 }, { background: true, name: "transactionId_1" });
91012
+ receiptIAPCollection.createIndex({ payloadMd5: 1 }, { background: true, name: "payloadMd5_1" });
91013
+ receiptIAPCollection.createIndex({ transactionId: 1 }, { background: true, name: "transactionId_1" });
90302
91014
  }
90303
91015
  {
90304
91016
  yield this.gnServer.getDatabase().createCollection("Runtime." + gameId + ".MatchmakingTicket", {
@@ -90307,10 +91019,10 @@ class ServerApplication extends BuilderBase {
90307
91019
  max: 100000
90308
91020
  });
90309
91021
  let matchmakingTicketCollection = this.gnServer.getDatabase().runtimeGameCollection("MatchmakingTicket", gameId);
90310
- yield matchmakingTicketCollection.createIndex({ "userIds": 1, "queueName": 1, "status": -1 }, { background: true, name: "userIds_1_queueName_1_status_-1" });
90311
- yield matchmakingTicketCollection.createIndex({ "queueName": 1, "status": -1, "tsCreate": -1 }, { background: true, name: "queueName_1_status_-1_tsCreate_-1" });
90312
- yield matchmakingTicketCollection.createIndex({ "ticketId": 1 }, { background: true, name: "ticketId_1" });
90313
- yield matchmakingTicketCollection.createIndex({ "status": -1, "_id": -1 }, { background: true, name: "status_-1_id_-1" });
91022
+ yield matchmakingTicketCollection.createIndex({ userIds: 1, queueName: 1, status: -1 }, { background: true, name: "userIds_1_queueName_1_status_-1" });
91023
+ yield matchmakingTicketCollection.createIndex({ queueName: 1, status: -1, tsCreate: -1 }, { background: true, name: "queueName_1_status_-1_tsCreate_-1" });
91024
+ yield matchmakingTicketCollection.createIndex({ ticketId: 1 }, { background: true, name: "ticketId_1" });
91025
+ yield matchmakingTicketCollection.createIndex({ status: -1, "_id": -1 }, { background: true, name: "status_-1_id_-1" });
90314
91026
  }
90315
91027
  {
90316
91028
  yield this.gnServer.getDatabase().createCollection("Runtime." + gameId + ".CloudScript.Log", {
@@ -90319,17 +91031,17 @@ class ServerApplication extends BuilderBase {
90319
91031
  max: 100000
90320
91032
  });
90321
91033
  let cloudScriptFunctionLogCollection = this.gnServer.getDatabase().runtimeGameCollection("CloudScript.Log", gameId);
90322
- yield cloudScriptFunctionLogCollection.createIndex({ "tsCreate": -1 }, { background: true, name: "tsCreate-1" });
91034
+ yield cloudScriptFunctionLogCollection.createIndex({ tsCreate: -1 }, { background: true, name: "tsCreate-1" });
90323
91035
  }
90324
91036
  {
90325
91037
  let matchCollection = this.gnServer.getDatabase().systemGameCollection("Match", gameId);
90326
- yield matchCollection.createIndex({ "matchId": 1 }, { background: true, name: "matchId_1" });
90327
- yield matchCollection.createIndex({ "queueName": 1, "tsCreate": -1 }, { background: true, name: "queueName_1_tsCreate_-1" });
90328
- yield matchCollection.createIndex({ "status": -1, "tsCreate": -1 }, { background: true, name: "status_-1_tsCreate_-1" });
91038
+ yield matchCollection.createIndex({ matchId: 1 }, { background: true, name: "matchId_1" });
91039
+ yield matchCollection.createIndex({ queueName: 1, tsCreate: -1 }, { background: true, name: "queueName_1_tsCreate_-1" });
91040
+ yield matchCollection.createIndex({ status: -1, tsCreate: -1 }, { background: true, name: "status_-1_tsCreate_-1" });
90329
91041
  }
90330
91042
  {
90331
91043
  let configCollection = this.gnServer.getDatabase().systemGameCollection("Config", gameId);
90332
- yield configCollection.createIndex({ "configName": 1, "label": 1 }, { background: true, unique: true, name: "configName_1_label_1" });
91044
+ yield configCollection.createIndex({ configName: 1, label: 1 }, { background: true, unique: true, name: "configName_1_label_1" });
90333
91045
  }
90334
91046
  }
90335
91047
  }
@@ -90340,17 +91052,17 @@ class ServerApplication extends BuilderBase {
90340
91052
  max: 100000000
90341
91053
  });
90342
91054
  let authInfoCollection = this.gnServer.getDatabase().systemCollection("AuthInfo");
90343
- yield authInfoCollection.createIndex({ "gnToken": 1 }, { background: true, name: "gnToken_1" });
91055
+ yield authInfoCollection.createIndex({ gnToken: 1 }, { background: true, name: "gnToken_1" });
90344
91056
  }
90345
91057
  {
90346
91058
  let downloadFileSessionCollection = this.gnServer.getDatabase().systemCollection("DownloadFileSession");
90347
- yield downloadFileSessionCollection.createIndex({ "downloadToken": 1, "isValid": -1 }, { background: true, name: "downloadToken_1_isValid_-1" });
90348
- yield downloadFileSessionCollection.createIndex({ "createdAt": 1 }, { background: true, name: "createdAt_1", expireAfterSeconds: xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 10 });
91059
+ yield downloadFileSessionCollection.createIndex({ downloadToken: 1, isValid: -1 }, { background: true, name: "downloadToken_1_isValid_-1" });
91060
+ yield downloadFileSessionCollection.createIndex({ createdAt: 1 }, { background: true, name: "createdAt_1", expireAfterSeconds: xDatetime_1.xDatetime.ONE_MINUTE_MILLISECOND * 10 });
90349
91061
  }
90350
91062
  {
90351
91063
  let uploadFileInfoCollection = this.gnServer.getDatabase().systemCollection("UploadFileInfo");
90352
- yield uploadFileInfoCollection.createIndex({ "fileId": 1 }, { background: true, name: "fileId_1" });
90353
- yield uploadFileInfoCollection.createIndex({ "gameId": 1, "_id": -1 }, { background: true, name: "gameId_1_id_-1" });
91064
+ yield uploadFileInfoCollection.createIndex({ fileId: 1 }, { background: true, name: "fileId_1" });
91065
+ yield uploadFileInfoCollection.createIndex({ gameId: 1, _id: -1 }, { background: true, name: "gameId_1_id_-1" });
90354
91066
  }
90355
91067
  {
90356
91068
  yield this.gnServer.getDatabase().createCollection("System.AdapterEvent", {
@@ -90362,7 +91074,7 @@ class ServerApplication extends BuilderBase {
90362
91074
  yield adapterEventCollection.createIndex({ "createdAt": 1 }, { expireAfterSeconds: 60, background: true, name: "createdAt_1" });
90363
91075
  }
90364
91076
  {
90365
- // await this.gnServer.getDatabase().systemCollection("SecretInfo").createIndex({ "secretKey": 1 }, { background: true, unique: true, name: "secretKey_1" });
91077
+ // await this.gnServer.getDatabase().systemCollection("SecretInfo").createIndex({ secretKey": 1 }, { background: true, unique: true, name: "secretKey_1" });
90366
91078
  }
90367
91079
  {
90368
91080
  yield this.gnServer.getDatabase().createCollection("System.EventCallback.Post", {
@@ -90371,7 +91083,7 @@ class ServerApplication extends BuilderBase {
90371
91083
  max: 100000
90372
91084
  });
90373
91085
  // let postEventCallbackPostCollection = this.gnServer.getDatabase().systemCollection("EventCallback.Post");
90374
- // await postEventCallbackPostCollection.createIndex({ "eventName": 1, "_id": -1 }, { background: true, name: "eventName_1_id_-1" });
91086
+ // await postEventCallbackPostCollection.createIndex({ eventName: 1, _id: -1 }, { background: true, name: "eventName_1_id_-1" });
90375
91087
  }
90376
91088
  {
90377
91089
  let cloudScriptFunctionCollection = this.gnServer.getDatabase().systemCollection("EventCallback.CloudScript");
@@ -90532,6 +91244,10 @@ class ServerApplication extends BuilderBase {
90532
91244
  xConfigGame.setConfigCollection(gameId, configCollection);
90533
91245
  this.gnServer.setConfigGame(gameId, xConfigGame);
90534
91246
  }
91247
+ {
91248
+ let cacheData = new xCacheData_1.xCacheData();
91249
+ this.gnServer.setCacheData(gameId, cacheData);
91250
+ }
90535
91251
  xDebug_1.Debug.log("Init success for game id " + gameItem.getGameName() + " (" + gameId + ")");
90536
91252
  }
90537
91253
  }
@@ -90622,11 +91338,12 @@ class ServerApplicationStartup extends DefaultApplicationStartup_1.DefaultApplic
90622
91338
  this.gnConfig = gnConfig;
90623
91339
  }
90624
91340
  run(onRunSuccess) {
90625
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23;
91341
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24;
90626
91342
  let gnApplicationSettings = this.gnConfig["applicationSettings"];
90627
91343
  if (gnApplicationSettings == null)
90628
91344
  gnApplicationSettings = {
90629
91345
  "port": 2202,
91346
+ "socketPort": 2901,
90630
91347
  "useSsl": false,
90631
91348
  "keyFilePath": "",
90632
91349
  "certFilePath": "",
@@ -90637,8 +91354,9 @@ class ServerApplicationStartup extends DefaultApplicationStartup_1.DefaultApplic
90637
91354
  .setCertFilePath((_b = gnApplicationSettings["keyFilePath"]) !== null && _b !== void 0 ? _b : "")
90638
91355
  .setKeyFilePath((_c = gnApplicationSettings["certFilePath"]) !== null && _c !== void 0 ? _c : "")
90639
91356
  .setPort((_d = gnApplicationSettings["port"]) !== null && _d !== void 0 ? _d : 2202)
90640
- .setExpiredToken((_e = gnApplicationSettings["expiredTokenInMs"]) !== null && _e !== void 0 ? _e : 172800000)
90641
- .setPrivateKeyToken((_f = gnApplicationSettings["privateKeyToken"]) !== null && _f !== void 0 ? _f : "")
91357
+ .setSocketPort((_e = gnApplicationSettings["socketPort"]) !== null && _e !== void 0 ? _e : 2901)
91358
+ .setExpiredToken((_f = gnApplicationSettings["expiredTokenInMs"]) !== null && _f !== void 0 ? _f : 172800000)
91359
+ .setPrivateKeyToken((_g = gnApplicationSettings["privateKeyToken"]) !== null && _g !== void 0 ? _g : "")
90642
91360
  .build();
90643
91361
  let gnHttpAppSettings = this.gnConfig["httpAppSettings"];
90644
91362
  if (gnHttpAppSettings == null)
@@ -90653,14 +91371,14 @@ class ServerApplicationStartup extends DefaultApplicationStartup_1.DefaultApplic
90653
91371
  "enablePostViaJson": true,
90654
91372
  };
90655
91373
  let httpAppSettings = HttpAppSettings_1.HttpAppSettings.Builder()
90656
- .setEnable((_g = gnHttpAppSettings["enable"]) !== null && _g !== void 0 ? _g : true)
90657
- .setOrigins((_h = gnHttpAppSettings["allowOrigin"]) !== null && _h !== void 0 ? _h : "*")
90658
- .addMethods((_j = gnHttpAppSettings["allowMethods"]) !== null && _j !== void 0 ? _j : ["GET", "POST"])
90659
- .setCredentials((_k = gnHttpAppSettings["credentials"]) !== null && _k !== void 0 ? _k : true)
90660
- .addAllowedHeaders((_l = gnHttpAppSettings["allowHeaders"]) !== null && _l !== void 0 ? _l : ["a", "content-type"])
90661
- .setEnableSendAndReceiveDebug((_m = gnHttpAppSettings["enableSendAndReceiveDebug"]) !== null && _m !== void 0 ? _m : true)
90662
- .setEnablePostViaMsgPack((_o = gnHttpAppSettings["enablePostViaMsgPack"]) !== null && _o !== void 0 ? _o : true)
90663
- .setEnablePostViaJson((_p = gnHttpAppSettings["enablePostViaJson"]) !== null && _p !== void 0 ? _p : true)
91374
+ .setEnable((_h = gnHttpAppSettings["enable"]) !== null && _h !== void 0 ? _h : true)
91375
+ .setOrigins((_j = gnHttpAppSettings["allowOrigin"]) !== null && _j !== void 0 ? _j : "*")
91376
+ .addMethods((_k = gnHttpAppSettings["allowMethods"]) !== null && _k !== void 0 ? _k : ["GET", "POST"])
91377
+ .setCredentials((_l = gnHttpAppSettings["credentials"]) !== null && _l !== void 0 ? _l : true)
91378
+ .addAllowedHeaders((_m = gnHttpAppSettings["allowHeaders"]) !== null && _m !== void 0 ? _m : ["a", "content-type"])
91379
+ .setEnableSendAndReceiveDebug((_o = gnHttpAppSettings["enableSendAndReceiveDebug"]) !== null && _o !== void 0 ? _o : true)
91380
+ .setEnablePostViaMsgPack((_p = gnHttpAppSettings["enablePostViaMsgPack"]) !== null && _p !== void 0 ? _p : true)
91381
+ .setEnablePostViaJson((_q = gnHttpAppSettings["enablePostViaJson"]) !== null && _q !== void 0 ? _q : true)
90664
91382
  .build();
90665
91383
  let gnSocketAppSettings = this.gnConfig["socketAppSettings"];
90666
91384
  if (gnSocketAppSettings == null)
@@ -90677,17 +91395,17 @@ class ServerApplicationStartup extends DefaultApplicationStartup_1.DefaultApplic
90677
91395
  "pingTimeout": 5000,
90678
91396
  };
90679
91397
  let socketAppSettings = SocketAppSettings_1.SocketAppSettings.Builder()
90680
- .setEnable((_q = gnSocketAppSettings["enable"]) !== null && _q !== void 0 ? _q : true)
90681
- .setUseEmitter((_r = gnSocketAppSettings["useEmitter"]) !== null && _r !== void 0 ? _r : false)
90682
- .setOrigins((_s = gnSocketAppSettings["allowOrigin"]) !== null && _s !== void 0 ? _s : "*")
90683
- .addMethods((_t = gnSocketAppSettings["allowMethods"]) !== null && _t !== void 0 ? _t : ["GET"])
90684
- .setCredentials((_u = gnSocketAppSettings["credentials"]) !== null && _u !== void 0 ? _u : true)
90685
- .setEnablePostViaMsgPack((_v = gnSocketAppSettings["enablePostViaMsgPack"]) !== null && _v !== void 0 ? _v : true)
90686
- .setEnablePostViaJson((_w = gnSocketAppSettings["enablePostViaJson"]) !== null && _w !== void 0 ? _w : true)
90687
- .addAllowedHeaders((_x = gnSocketAppSettings["allowHeaders"]) !== null && _x !== void 0 ? _x : [])
90688
- .setPingInterval((_y = gnSocketAppSettings["pingInterval"]) !== null && _y !== void 0 ? _y : 50000)
90689
- .setPingTimeout((_z = gnSocketAppSettings["pingTimeout"]) !== null && _z !== void 0 ? _z : 5000)
90690
- .setEnableSendAndReceiveDebug((_0 = gnSocketAppSettings["enableSendAndReceiveDebug"]) !== null && _0 !== void 0 ? _0 : true)
91398
+ .setEnable((_r = gnSocketAppSettings["enable"]) !== null && _r !== void 0 ? _r : true)
91399
+ .setUseEmitter((_s = gnSocketAppSettings["useEmitter"]) !== null && _s !== void 0 ? _s : false)
91400
+ .setOrigins((_t = gnSocketAppSettings["allowOrigin"]) !== null && _t !== void 0 ? _t : "*")
91401
+ .addMethods((_u = gnSocketAppSettings["allowMethods"]) !== null && _u !== void 0 ? _u : ["GET"])
91402
+ .setCredentials((_v = gnSocketAppSettings["credentials"]) !== null && _v !== void 0 ? _v : true)
91403
+ .setEnablePostViaMsgPack((_w = gnSocketAppSettings["enablePostViaMsgPack"]) !== null && _w !== void 0 ? _w : true)
91404
+ .setEnablePostViaJson((_x = gnSocketAppSettings["enablePostViaJson"]) !== null && _x !== void 0 ? _x : true)
91405
+ .addAllowedHeaders((_y = gnSocketAppSettings["allowHeaders"]) !== null && _y !== void 0 ? _y : [])
91406
+ .setPingInterval((_z = gnSocketAppSettings["pingInterval"]) !== null && _z !== void 0 ? _z : 50000)
91407
+ .setPingTimeout((_0 = gnSocketAppSettings["pingTimeout"]) !== null && _0 !== void 0 ? _0 : 5000)
91408
+ .setEnableSendAndReceiveDebug((_1 = gnSocketAppSettings["enableSendAndReceiveDebug"]) !== null && _1 !== void 0 ? _1 : true)
90691
91409
  .build();
90692
91410
  let gnOtherSettings = this.gnConfig["otherSettings"];
90693
91411
  if (gnOtherSettings == null)
@@ -90695,8 +91413,8 @@ class ServerApplicationStartup extends DefaultApplicationStartup_1.DefaultApplic
90695
91413
  "headerIP": "x-ip",
90696
91414
  };
90697
91415
  let otherSettings = OtherSettings_1.OtherSettings.Builder()
90698
- .setHeaderIP((_1 = gnOtherSettings["headerIP"]) !== null && _1 !== void 0 ? _1 : "x-ip")
90699
- .setIdTypeCase((_2 = gnOtherSettings["idTypeCase"]) !== null && _2 !== void 0 ? _2 : 0)
91416
+ .setHeaderIP((_2 = gnOtherSettings["headerIP"]) !== null && _2 !== void 0 ? _2 : "x-ip")
91417
+ .setIdTypeCase((_3 = gnOtherSettings["idTypeCase"]) !== null && _3 !== void 0 ? _3 : 0)
90700
91418
  .setIPApiUrl(gnOtherSettings["ipApiUrl"])
90701
91419
  .build();
90702
91420
  let gnDatabaseSettings = this.gnConfig["databaseSettings"];
@@ -90707,9 +91425,9 @@ class ServerApplicationStartup extends DefaultApplicationStartup_1.DefaultApplic
90707
91425
  "options": {},
90708
91426
  };
90709
91427
  let databaseSettings = DatabaseSettings_1.DatabaseSettings.Builder()
90710
- .setConnectionString((_3 = gnDatabaseSettings["connectionString"]) !== null && _3 !== void 0 ? _3 : "mongodb://127.0.0.1:27017/")
90711
- .setDatabaseName((_4 = gnDatabaseSettings["databaseName"]) !== null && _4 !== void 0 ? _4 : "XmobiTea")
90712
- .setOptions((_5 = gnDatabaseSettings["options"]) !== null && _5 !== void 0 ? _5 : {})
91428
+ .setConnectionString((_4 = gnDatabaseSettings["connectionString"]) !== null && _4 !== void 0 ? _4 : "mongodb://127.0.0.1:27017/")
91429
+ .setDatabaseName((_5 = gnDatabaseSettings["databaseName"]) !== null && _5 !== void 0 ? _5 : "XmobiTea")
91430
+ .setOptions((_6 = gnDatabaseSettings["options"]) !== null && _6 !== void 0 ? _6 : {})
90713
91431
  .build();
90714
91432
  let gnLogSettings = this.gnConfig["logSettings"];
90715
91433
  if (gnLogSettings == null)
@@ -90719,9 +91437,9 @@ class ServerApplicationStartup extends DefaultApplicationStartup_1.DefaultApplic
90719
91437
  "logPath": "./log/debug/Server.log",
90720
91438
  };
90721
91439
  let logSettings = LogSettings_1.LogSettings.Builder()
90722
- .setLogToFileEnable((_6 = gnLogSettings["logToFileEnable"]) !== null && _6 !== void 0 ? _6 : true)
90723
- .setLogToConsoleEnable((_7 = gnLogSettings["logToConsoleEnable"]) !== null && _7 !== void 0 ? _7 : true)
90724
- .setLogPath((_8 = gnLogSettings["logPath"]) !== null && _8 !== void 0 ? _8 : "./log/debug/Server.log")
91440
+ .setLogToFileEnable((_7 = gnLogSettings["logToFileEnable"]) !== null && _7 !== void 0 ? _7 : true)
91441
+ .setLogToConsoleEnable((_8 = gnLogSettings["logToConsoleEnable"]) !== null && _8 !== void 0 ? _8 : true)
91442
+ .setLogPath((_9 = gnLogSettings["logPath"]) !== null && _9 !== void 0 ? _9 : "./log/debug/Server.log")
90725
91443
  .build();
90726
91444
  let gnUploadFileSettings = this.gnConfig["uploadFileSettings"];
90727
91445
  if (gnUploadFileSettings == null)
@@ -90732,10 +91450,10 @@ class ServerApplicationStartup extends DefaultApplicationStartup_1.DefaultApplic
90732
91450
  "mimeTypeAccepts": ["image/png"],
90733
91451
  };
90734
91452
  let uploadFileSettings = UploadFileSettings_1.UploadFileSettings.Builder()
90735
- .setEnable((_9 = gnUploadFileSettings["enable"]) !== null && _9 !== void 0 ? _9 : true)
90736
- .setUploadPath((_10 = gnUploadFileSettings["uploadPath"]) !== null && _10 !== void 0 ? _10 : "./file-upload")
90737
- .setMaxSizeUpload((_11 = gnUploadFileSettings["maxSizeUpload"]) !== null && _11 !== void 0 ? _11 : 52428800)
90738
- .setMimeTypeAccepts((_12 = gnUploadFileSettings["mimeTypeAccepts"]) !== null && _12 !== void 0 ? _12 : ["image/png"])
91453
+ .setEnable((_10 = gnUploadFileSettings["enable"]) !== null && _10 !== void 0 ? _10 : true)
91454
+ .setUploadPath((_11 = gnUploadFileSettings["uploadPath"]) !== null && _11 !== void 0 ? _11 : "./file-upload")
91455
+ .setMaxSizeUpload((_12 = gnUploadFileSettings["maxSizeUpload"]) !== null && _12 !== void 0 ? _12 : 52428800)
91456
+ .setMimeTypeAccepts((_13 = gnUploadFileSettings["mimeTypeAccepts"]) !== null && _13 !== void 0 ? _13 : ["image/png"])
90739
91457
  .build();
90740
91458
  let gnDdosSettings = this.gnConfig["ddosSettings"];
90741
91459
  if (gnDdosSettings == null)
@@ -90752,17 +91470,17 @@ class ServerApplicationStartup extends DefaultApplicationStartup_1.DefaultApplic
90752
91470
  "maxDownloadPendingRequest": 200,
90753
91471
  };
90754
91472
  let ddosSettings = DDosSettings_1.DdosSettings.Builder()
90755
- .setSocketMaxRequestPerSecondPerIp((_13 = gnDdosSettings["socketMaxRequestPerSecondPerIp"]) !== null && _13 !== void 0 ? _13 : 50)
90756
- .setSocketMaxRequestPerSecondPerPeer((_14 = gnDdosSettings["socketMaxRequestPerSecondPerPeer"]) !== null && _14 !== void 0 ? _14 : 20)
90757
- .setSocketMaxPendingRequest((_15 = gnDdosSettings["socketMaxPendingRequest"]) !== null && _15 !== void 0 ? _15 : 1000)
90758
- .setSocketMaxRequestSize((_16 = gnDdosSettings["socketMaxRequestSize"]) !== null && _16 !== void 0 ? _16 : 1024)
90759
- .setHttpMaxRequestPerSecondPerIp((_17 = gnDdosSettings["httpMaxRequestPerSecondPerIp"]) !== null && _17 !== void 0 ? _17 : 50)
90760
- .setHttpMaxRequestPerSecondPerPeer((_18 = gnDdosSettings["httpMaxRequestPerSecondPerPeer"]) !== null && _18 !== void 0 ? _18 : 20)
90761
- .setHttpMaxPendingRequest((_19 = gnDdosSettings["httpMaxPendingRequest"]) !== null && _19 !== void 0 ? _19 : 1000)
90762
- .setHttpMaxRequestSize((_20 = gnDdosSettings["httpMaxRequestSize"]) !== null && _20 !== void 0 ? _20 : 1024)
90763
- .setMaxUploadPendingRequest((_21 = gnDdosSettings["maxUploadPendingRequest"]) !== null && _21 !== void 0 ? _21 : 200)
90764
- .setMaxDownloadPendingRequest((_22 = gnDdosSettings["maxDownloadPendingRequest"]) !== null && _22 !== void 0 ? _22 : 200)
90765
- .setIPWhiteList((_23 = gnDdosSettings["ipWhiteList"]) !== null && _23 !== void 0 ? _23 : [])
91473
+ .setSocketMaxRequestPerSecondPerIp((_14 = gnDdosSettings["socketMaxRequestPerSecondPerIp"]) !== null && _14 !== void 0 ? _14 : 50)
91474
+ .setSocketMaxRequestPerSecondPerPeer((_15 = gnDdosSettings["socketMaxRequestPerSecondPerPeer"]) !== null && _15 !== void 0 ? _15 : 20)
91475
+ .setSocketMaxPendingRequest((_16 = gnDdosSettings["socketMaxPendingRequest"]) !== null && _16 !== void 0 ? _16 : 1000)
91476
+ .setSocketMaxRequestSize((_17 = gnDdosSettings["socketMaxRequestSize"]) !== null && _17 !== void 0 ? _17 : 1024)
91477
+ .setHttpMaxRequestPerSecondPerIp((_18 = gnDdosSettings["httpMaxRequestPerSecondPerIp"]) !== null && _18 !== void 0 ? _18 : 50)
91478
+ .setHttpMaxRequestPerSecondPerPeer((_19 = gnDdosSettings["httpMaxRequestPerSecondPerPeer"]) !== null && _19 !== void 0 ? _19 : 20)
91479
+ .setHttpMaxPendingRequest((_20 = gnDdosSettings["httpMaxPendingRequest"]) !== null && _20 !== void 0 ? _20 : 1000)
91480
+ .setHttpMaxRequestSize((_21 = gnDdosSettings["httpMaxRequestSize"]) !== null && _21 !== void 0 ? _21 : 1024)
91481
+ .setMaxUploadPendingRequest((_22 = gnDdosSettings["maxUploadPendingRequest"]) !== null && _22 !== void 0 ? _22 : 200)
91482
+ .setMaxDownloadPendingRequest((_23 = gnDdosSettings["maxDownloadPendingRequest"]) !== null && _23 !== void 0 ? _23 : 200)
91483
+ .setIPWhiteList((_24 = gnDdosSettings["ipWhiteList"]) !== null && _24 !== void 0 ? _24 : [])
90766
91484
  .build();
90767
91485
  this.serverApplication = this.newServerApplication(applicationSettings, httpAppSettings, socketAppSettings, otherSettings, databaseSettings, logSettings, uploadFileSettings, ddosSettings);
90768
91486
  this.serverApplication.run(() => {
@@ -91999,7 +92717,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
91999
92717
  exports.UploadFileMiddleware = void 0;
92000
92718
  const multer_1 = __importDefault(__webpack_require__(78461));
92001
92719
  const xDatetime_1 = __webpack_require__(21817);
92002
- const fs_1 = __importDefault(__webpack_require__(94383));
92720
+ const fs_1 = __importDefault(__webpack_require__(79896));
92003
92721
  class UploadFileMiddleware {
92004
92722
  setUploadPath(uploadPath) {
92005
92723
  this.uploadPath = uploadPath;
@@ -92801,7 +93519,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
92801
93519
  };
92802
93520
  Object.defineProperty(exports, "__esModule", ({ value: true }));
92803
93521
  exports.UploadFileHandler = void 0;
92804
- const fs_1 = __importDefault(__webpack_require__(94383));
93522
+ const fs_1 = __importDefault(__webpack_require__(79896));
92805
93523
  const express_1 = __importDefault(__webpack_require__(7252));
92806
93524
  const async_middleware_1 = __webpack_require__(46955);
92807
93525
  const xDatetime_1 = __webpack_require__(21817);
@@ -92929,6 +93647,9 @@ class BuilderBase {
92929
93647
  getPort() {
92930
93648
  return this.port;
92931
93649
  }
93650
+ getSocketPort() {
93651
+ return this.socketPort;
93652
+ }
92932
93653
  getUseSSL() {
92933
93654
  return this.useSSL;
92934
93655
  }
@@ -92951,6 +93672,10 @@ class Builder extends BuilderBase {
92951
93672
  this.port = port;
92952
93673
  return this;
92953
93674
  }
93675
+ setSocketPort(socketPort) {
93676
+ this.socketPort = socketPort;
93677
+ return this;
93678
+ }
92954
93679
  setUseSSL(useSSL) {
92955
93680
  this.useSSL = useSSL;
92956
93681
  return this;
@@ -92974,6 +93699,7 @@ class Builder extends BuilderBase {
92974
93699
  constructor() {
92975
93700
  super();
92976
93701
  this.port = 0;
93702
+ this.socketPort = 0;
92977
93703
  this.useSSL = false;
92978
93704
  this.keyFilePath = "";
92979
93705
  this.certFilePath = "";
@@ -92988,6 +93714,7 @@ class ApplicationSettings extends BuilderBase {
92988
93714
  constructor(builder) {
92989
93715
  super();
92990
93716
  this.port = builder.getPort();
93717
+ this.socketPort = builder.getSocketPort();
92991
93718
  this.useSSL = builder.getUseSSL();
92992
93719
  this.keyFilePath = builder.getKeyFilePath();
92993
93720
  this.certFilePath = builder.getCertFilePath();
@@ -93649,7 +94376,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
93649
94376
  };
93650
94377
  Object.defineProperty(exports, "__esModule", ({ value: true }));
93651
94378
  exports.GNServer = void 0;
93652
- const GN_VERSION = "2.4";
94379
+ const GN_VERSION = "2.5";
93653
94380
  const RequestController_1 = __webpack_require__(24340);
93654
94381
  const xDatabase_1 = __webpack_require__(31073);
93655
94382
  const FacebookService_1 = __webpack_require__(90152);
@@ -93658,7 +94385,6 @@ const xMail_1 = __webpack_require__(76889);
93658
94385
  const xPushNotification_1 = __webpack_require__(88693);
93659
94386
  const TimerService_1 = __webpack_require__(45347);
93660
94387
  const LockService_1 = __webpack_require__(29425);
93661
- const xCacheData_1 = __webpack_require__(1627);
93662
94388
  const RequestConverterService_1 = __webpack_require__(86017);
93663
94389
  const GoogleService_1 = __webpack_require__(53837);
93664
94390
  const CodeHelper_1 = __webpack_require__(92614);
@@ -93820,6 +94546,7 @@ const GetFriendStatisticsLeaderboardAroundPlayerRequestHandler_1 = __webpack_req
93820
94546
  const GetFriendStatisticsLeaderboardRequestHandler_1 = __webpack_require__(31378);
93821
94547
  const GetCurrencyLeaderboardRequestHandler_2 = __webpack_require__(16362);
93822
94548
  const GetCreateLeaderboardRequestHandler_2 = __webpack_require__(41355);
94549
+ const GetLastLoginLeaderboardRequestHandler_2 = __webpack_require__(94192);
93823
94550
  const GetStatisticsLogRequestHandler_2 = __webpack_require__(6387);
93824
94551
  const GetCurrencyLogRequestHandler_2 = __webpack_require__(55567);
93825
94552
  const AddSegmentRequestHandler_3 = __webpack_require__(77017);
@@ -93870,7 +94597,7 @@ const GetPlayersWithDisplayNameRequestHandler_3 = __webpack_require__(85576);
93870
94597
  const GetFriendStatisticsLeaderboardAroundPlayerRequestHandler_2 = __webpack_require__(62627);
93871
94598
  const GetFriendStatisticsLeaderboardRequestHandler_2 = __webpack_require__(28199);
93872
94599
  const GetCurrencyLeaderboardRequestHandler_3 = __webpack_require__(68995);
93873
- const GetLastLoginLeaderboardRequestHandler_2 = __webpack_require__(87067);
94600
+ const GetLastLoginLeaderboardRequestHandler_3 = __webpack_require__(87067);
93874
94601
  const GetCreateLeaderboardRequestHandler_3 = __webpack_require__(24886);
93875
94602
  const GetStatisticsLogRequestHandler_3 = __webpack_require__(15210);
93876
94603
  const GetCurrencyLogRequestHandler_3 = __webpack_require__(32982);
@@ -93966,6 +94693,8 @@ const ValidateFacebookStoreReceiptRequestHandler_1 = __webpack_require__(62616);
93966
94693
  const GetCreateLeaderboardRequestHandler_6 = __webpack_require__(69386);
93967
94694
  const PresentStoreItemRequestHandler_1 = __webpack_require__(41634);
93968
94695
  const GetStoreLogRequestHandler_1 = __webpack_require__(6234);
94696
+ const GetStoreUsedRequestHandler_1 = __webpack_require__(6906);
94697
+ const RemoveStoreUsedRequestHandler_1 = __webpack_require__(5563);
93969
94698
  const LoginByAdminAccountRequestHandler_1 = __webpack_require__(38204);
93970
94699
  const SetMasterGameSettingsRequestHandler_1 = __webpack_require__(10199);
93971
94700
  const GrantAdminAccountRequestHandler_1 = __webpack_require__(17522);
@@ -94037,7 +94766,7 @@ class GNServer {
94037
94766
  this.xDatabase = new xDatabase_1.xDatabase();
94038
94767
  this.xMail = new xMail_1.xMail();
94039
94768
  this.xPushNotification = new xPushNotification_1.xPushNotification();
94040
- this.xCacheData = new xCacheData_1.xCacheData();
94769
+ this.xCacheDataDic = new Map();
94041
94770
  this.requestController = new RequestController_1.RequestController();
94042
94771
  this.requestController.setRequestConverterService(this.requestConverterService);
94043
94772
  this.timerService.run();
@@ -94058,7 +94787,7 @@ class GNServer {
94058
94787
  this.timerService.subscriberEveryMinute(() => {
94059
94788
  let currentDate = xDatetime_1.xDatetime.getCurrentDate();
94060
94789
  if (currentDate.getMinutes() % 10 == 0)
94061
- thiz.xCacheData.removeInvalidData();
94790
+ thiz.handleRemoveCacheInvalidData();
94062
94791
  });
94063
94792
  }
94064
94793
  init() {
@@ -94224,6 +94953,7 @@ class GNServer {
94224
94953
  this.requestController.addHandler(requestTypeValue, new GetFriendStatisticsLeaderboardRequestHandler_1.GetFriendStatisticsLeaderboardRequestHandler(this), true);
94225
94954
  this.requestController.addHandler(requestTypeValue, new GetCurrencyLeaderboardRequestHandler_2.GetCurrencyLeaderboardRequestHandler(this), true);
94226
94955
  this.requestController.addHandler(requestTypeValue, new GetCreateLeaderboardRequestHandler_2.GetCreateLeaderboardRequestHandler(this), true);
94956
+ this.requestController.addHandler(requestTypeValue, new GetLastLoginLeaderboardRequestHandler_2.GetLastLoginLeaderboardRequestHandler(this), true);
94227
94957
  this.requestController.addHandler(requestTypeValue, new GetStatisticsLogRequestHandler_2.GetStatisticsLogRequestHandler(this), true);
94228
94958
  this.requestController.addHandler(requestTypeValue, new GetCurrencyLogRequestHandler_2.GetCurrencyLogRequestHandler(this), true);
94229
94959
  }
@@ -94277,7 +95007,7 @@ class GNServer {
94277
95007
  this.requestController.addHandler(requestTypeValue, new GetFriendStatisticsLeaderboardAroundPlayerRequestHandler_2.GetFriendStatisticsLeaderboardAroundPlayerRequestHandler(this), true);
94278
95008
  this.requestController.addHandler(requestTypeValue, new GetFriendStatisticsLeaderboardRequestHandler_2.GetFriendStatisticsLeaderboardRequestHandler(this), true);
94279
95009
  this.requestController.addHandler(requestTypeValue, new GetCurrencyLeaderboardRequestHandler_3.GetCurrencyLeaderboardRequestHandler(this), true);
94280
- this.requestController.addHandler(requestTypeValue, new GetLastLoginLeaderboardRequestHandler_2.GetLastLoginLeaderboardRequestHandler(this), true);
95010
+ this.requestController.addHandler(requestTypeValue, new GetLastLoginLeaderboardRequestHandler_3.GetLastLoginLeaderboardRequestHandler(this), true);
94281
95011
  this.requestController.addHandler(requestTypeValue, new GetCreateLeaderboardRequestHandler_3.GetCreateLeaderboardRequestHandler(this), true);
94282
95012
  this.requestController.addHandler(requestTypeValue, new GetStatisticsLogRequestHandler_3.GetStatisticsLogRequestHandler(this), true);
94283
95013
  this.requestController.addHandler(requestTypeValue, new GetCurrencyLogRequestHandler_3.GetCurrencyLogRequestHandler(this), true);
@@ -94385,6 +95115,8 @@ class GNServer {
94385
95115
  this.requestController.addHandler(requestTypeValue, new GetCreateLeaderboardRequestHandler_6.GetCreateLeaderboardRequestHandler(this), true);
94386
95116
  this.requestController.addHandler(requestTypeValue, new PresentStoreItemRequestHandler_1.PresentStoreItemRequestHandler(this), true);
94387
95117
  this.requestController.addHandler(requestTypeValue, new GetStoreLogRequestHandler_1.GetStoreLogRequestHandler(this), true);
95118
+ this.requestController.addHandler(requestTypeValue, new GetStoreUsedRequestHandler_1.GetStoreUsedRequestHandler(this), true);
95119
+ this.requestController.addHandler(requestTypeValue, new RemoveStoreUsedRequestHandler_1.RemoveStoreUsedRequestHandler(this), true);
94388
95120
  }
94389
95121
  {
94390
95122
  let requestTypeValue = RequestType_1.RequestType.Dashboard;
@@ -94513,8 +95245,11 @@ class GNServer {
94513
95245
  getPushNotification() {
94514
95246
  return this.xPushNotification;
94515
95247
  }
94516
- getCacheData() {
94517
- return this.xCacheData;
95248
+ getCacheData(gameId) {
95249
+ return this.xCacheDataDic.get(gameId);
95250
+ }
95251
+ setCacheData(gameId, cacheData) {
95252
+ this.xCacheDataDic.set(gameId, cacheData);
94518
95253
  }
94519
95254
  getFacebookService() {
94520
95255
  return this.facebookService;
@@ -94683,6 +95418,12 @@ class GNServer {
94683
95418
  this.handleMatchmakingForGame(gameId);
94684
95419
  }
94685
95420
  }
95421
+ handleRemoveCacheInvalidData() {
95422
+ for (let i = 0; i < this.gameIds.length; i++) {
95423
+ let gameId = this.gameIds[i];
95424
+ this.getCacheData(gameId).removeInvalidData();
95425
+ }
95426
+ }
94686
95427
  handleMatchmakingForGame(gameId) {
94687
95428
  return __awaiter(this, void 0, void 0, function* () {
94688
95429
  let matchmakingTicketCanMatchs = yield this.matchmakingHandler.handle(gameId);
@@ -94705,7 +95446,7 @@ class GNServer {
94705
95446
  requestMatchServerDetail(gameId, matchmakingTicketCanMatch) {
94706
95447
  return __awaiter(this, void 0, void 0, function* () {
94707
95448
  let matchId = matchmakingTicketCanMatch.matchId;
94708
- xDebug_1.Debug.logError("[GN] [Matchmaking] request match server detail for " + matchId + " to set serverDetail on gameId " + gameId);
95449
+ xDebug_1.Debug.logInfo("[GN] [Matchmaking] request match server detail for " + matchId + " to set serverDetail on gameId " + gameId);
94709
95450
  let thiz = this;
94710
95451
  let timeout = setTimeout(() => __awaiter(this, void 0, void 0, function* () {
94711
95452
  thiz.setMatchServerDetailFailed(gameId, matchId, matchmakingTicketCanMatch.ticketIds, "Timeout");
@@ -94734,7 +95475,7 @@ class GNServer {
94734
95475
  clearTimeout(timeout);
94735
95476
  this.waitingServerDetailDict.delete(matchId);
94736
95477
  }
94737
- xDebug_1.Debug.logError("[GN] [Matchmaking] request match server detail for " + matchId + " failed on " + gameId + ", with reason " + reason);
95478
+ xDebug_1.Debug.logInfo("[GN] [Matchmaking] request match server detail for " + matchId + " failed on " + gameId + ", with reason " + reason);
94738
95479
  let matchCollection = this.getDatabase().systemGameCollection("Match", gameId);
94739
95480
  matchCollection.updateOne({ matchId: matchId }, { $set: {} });
94740
95481
  let matchmakingTicketCollection = this.getDatabase().runtimeGameCollection("MatchmakingTicket", gameId);
@@ -94847,13 +95588,6 @@ module.exports = require("firebase-admin");
94847
95588
 
94848
95589
  /***/ }),
94849
95590
 
94850
- /***/ 94383:
94851
- /***/ ((module) => {
94852
-
94853
- module.exports = require("fs");
94854
-
94855
- /***/ }),
94856
-
94857
95591
  /***/ 80829:
94858
95592
  /***/ ((module) => {
94859
95593
 
@@ -94931,6 +95665,13 @@ module.exports = require("crypto");
94931
95665
 
94932
95666
  /***/ }),
94933
95667
 
95668
+ /***/ 79896:
95669
+ /***/ ((module) => {
95670
+
95671
+ module.exports = require("fs");
95672
+
95673
+ /***/ }),
95674
+
94934
95675
  /***/ 58611:
94935
95676
  /***/ ((module) => {
94936
95677
 
@@ -94950,13 +95691,6 @@ module.exports = require("https");
94950
95691
 
94951
95692
  module.exports = require("readline");
94952
95693
 
94953
- /***/ }),
94954
-
94955
- /***/ 28167:
94956
- /***/ ((module) => {
94957
-
94958
- module.exports = require("worker_threads");
94959
-
94960
95694
  /***/ })
94961
95695
 
94962
95696
  /******/ });
@@ -94992,10 +95726,10 @@ var __webpack_exports__ = {};
94992
95726
  var exports = __webpack_exports__;
94993
95727
 
94994
95728
  Object.defineProperty(exports, "__esModule", ({ value: true }));
94995
- exports.GNArrayDataMember = exports.GNHashtableDataMember = exports.StringDataMember = exports.DataMember = exports.AuthInfo = exports.OperationResponse = exports.Request = exports.OperationRequest = exports.OperationObject = exports.OperationArray = exports.CommonOperationRequest = exports.OperationHelper = exports.OperationEvent = exports.ReturnCode = exports.OperationCode = exports.EventCode = exports.Commands = exports.ParameterCode = exports.GNParameterCode = exports.GNErrorCode = exports.RequestType = exports.RequestRole = exports.PushPlatformType = exports.PermissionDataItem = exports.OwnerType = exports.MatchmakingTicketStatus = exports.MatchmakingMemberStatus = exports.ItemType = exports.InvalidMemberType = exports.GroupStatus = exports.GoogleLoginType = exports.FriendStatus = exports.GNHashtableBuilder = exports.GNHashtable = exports.GNArrayBuilder = exports.GNArray = exports.GNData = exports.TimerService = exports.RequestConverterService = exports.LockService = exports.IGenericService = exports.GoogleService = exports.GenericService = exports.FacebookService = exports.PreEventCallbackService = exports.PostEventCallbackService = exports.AppleService = exports.AnalyticsService = exports.RequestController = exports.RequestHandler = void 0;
94996
- exports.DdosSettings = exports.DatabaseSettings = exports.ApplicationSettings = exports.UploadFileHandler = exports.SocketAppHandler = exports.HttpAppHandler = exports.UploadFileMiddleware = exports.ApiMiddleware = exports.AntiDdosMiddleware = exports.xGNSettings = exports.xStatisticsAggregationMethod = exports.xRandom = exports.xPushNotification = exports.xMail = exports.Debug = exports.xDatetime = exports.xDatabase = exports.UploadFileInfo = exports.TradeInventory = exports.StoreInventory = exports.PlayerBase = exports.MongoObject = exports.MatchmakingTicket = exports.Match = exports.MasterPlayer = exports.Inventory = exports.Group = exports.GamePlayerBase = exports.GamePlayer = exports.DataObjectBase = exports.ChatMessage = exports.CharacterPlayer = exports.SecretInfoItem = exports.MasterGameSettings = exports.MasterAdminPlayer = exports.MasterAdminMongoObject = exports.GameItem = exports.xConfig = exports.xConfigItem = exports.xCacheItem = exports.xCacheData = exports.StringUtility = exports.Md5Generate = exports.DisplayNameUtility = exports.CodeHelper = exports.SecretInfo = exports.FieldDataType = exports.GNFieldDataType = exports.NumberDataMember = exports.BooleanDataMember = void 0;
94997
- exports.GroupPermissionRulesParam = exports.GroupCatalogSettingsParam = exports.GenericServiceSettingsParam = exports.GameSettingsParam = exports.GamePlayerSettingsParam = exports.GamePlayerPermissionRulesParam = exports.FriendCatalogSettingsParam = exports.DataSettingsParam = exports.CurrencySettingsParam = exports.ContentPermissionRulesParam = exports.CloudScriptPermissionRulesParam = exports.CharacterPlayerSettingsParam = exports.CharacterPlayerPermissionRulesParam = exports.CharacterCatalogSettingsParam = exports.AuthenticatePermissionRulesParam = exports.TagParam = exports.StoreItemParam = exports.StoreDataParam = exports.InAppPurchaseParam = exports.CurrencyParam = exports.AvatarParam = exports.ItemStatisticsParam = exports.ItemDataParam = exports.GroupStatisticsParam = exports.GroupMemberParam = exports.GroupDataParam = exports.GroupCurrencyParam = exports.PlayerStatisticsParam = exports.PlayerDataParam = exports.PlayerCurrencyParam = exports.CustomDataParam = exports.ContentDataParam = exports.storeInventory_InfoRequestParam = exports.masterPlayer_InfoRequestParam = exports.inventory_InfoRequestParam = exports.group_InfoRequestParam = exports.gamePlayer_InfoRequestParam = exports.characterPlayer_InfoRequestParam = exports.authenticate_InfoRequestParam = exports.GNServer = exports.SocketApp = exports.ServerApplicationStartup = exports.ServerApplication = exports.HttpApp = exports.DefaultApplicationStartup = exports.UploadFileSettings = exports.SocketAppSettings = exports.OtherSettings = exports.LogSettings = exports.HttpAppSettings = void 0;
94998
- exports.PushNotificationSettingsParam = exports.EmailSettingsParam = exports.ThirtPartyParam = exports.ThirtPartyGooglePlayGameSettingsParam = exports.ThirtPartyGameCenterSettingsParam = exports.ThirtPartyFacebookSettingsParam = exports.ThirtPartyAppleSettingsParam = exports.TagSettingsParam = exports.StoreInventoryPermissionRulesParam = exports.StatisticsSettingsParam = exports.PermissionRulesParam = exports.PermissionParam = exports.MultiplayerPermissionRulesParam = exports.MatchmakingQueueSettingsParam = exports.MasterPlayerSettingsParam = exports.MasterPlayerPermissionRulesParam = exports.MasterAdminPermissionRulesParam = exports.ItemClassSettingsParam = exports.ItemCatalogSettingsParam = exports.InventorySettingsParam = exports.InventoryPermissionRulesParam = exports.GroupSettingsParam = void 0;
95729
+ exports.GNHashtableDataMember = exports.StringDataMember = exports.DataMember = exports.AuthInfo = exports.OperationResponse = exports.Request = exports.OperationRequest = exports.OperationObject = exports.OperationArray = exports.CommonOperationRequest = exports.OperationHelper = exports.OperationEvent = exports.ReturnCode = exports.OperationCode = exports.EventCode = exports.Commands = exports.ParameterCode = exports.GNParameterCode = exports.GNErrorCode = exports.RequestType = exports.RequestRole = exports.PushPlatformType = exports.PermissionDataItem = exports.OwnerType = exports.MatchmakingTicketStatus = exports.MatchmakingMemberStatus = exports.StoreItemType = exports.ItemType = exports.InvalidMemberType = exports.GroupStatus = exports.GoogleLoginType = exports.FriendStatus = exports.GNHashtableBuilder = exports.GNHashtable = exports.GNArrayBuilder = exports.GNArray = exports.GNData = exports.TimerService = exports.RequestConverterService = exports.LockService = exports.IGenericService = exports.GoogleService = exports.GenericService = exports.FacebookService = exports.PreEventCallbackService = exports.PostEventCallbackService = exports.AppleService = exports.AnalyticsService = exports.RequestController = exports.RequestHandler = void 0;
95730
+ exports.DatabaseSettings = exports.ApplicationSettings = exports.UploadFileHandler = exports.SocketAppHandler = exports.HttpAppHandler = exports.UploadFileMiddleware = exports.ApiMiddleware = exports.AntiDdosMiddleware = exports.xGNSettings = exports.xStatisticsAggregationMethod = exports.xRandom = exports.xPushNotification = exports.xMail = exports.Debug = exports.xDatetime = exports.xDatabase = exports.UploadFileInfo = exports.TradeInventory = exports.StoreInventory = exports.PlayerBase = exports.MongoObject = exports.MatchmakingTicket = exports.Match = exports.MasterPlayer = exports.Inventory = exports.Group = exports.GamePlayerBase = exports.GamePlayer = exports.DataObjectBase = exports.ChatMessage = exports.CharacterPlayer = exports.SecretInfoItem = exports.MasterGameSettings = exports.MasterAdminPlayer = exports.MasterAdminMongoObject = exports.GameItem = exports.xConfig = exports.xConfigItem = exports.xCacheItem = exports.xCacheData = exports.StringUtility = exports.Md5Generate = exports.DisplayNameUtility = exports.CodeHelper = exports.SecretInfo = exports.FieldDataType = exports.GNFieldDataType = exports.NumberDataMember = exports.BooleanDataMember = exports.GNArrayDataMember = void 0;
95731
+ exports.GroupCatalogSettingsParam = exports.GenericServiceSettingsParam = exports.GameSettingsParam = exports.GamePlayerSettingsParam = exports.GamePlayerPermissionRulesParam = exports.FriendCatalogSettingsParam = exports.DataSettingsParam = exports.CurrencySettingsParam = exports.ContentPermissionRulesParam = exports.CloudScriptPermissionRulesParam = exports.CharacterPlayerSettingsParam = exports.CharacterPlayerPermissionRulesParam = exports.CharacterCatalogSettingsParam = exports.AuthenticatePermissionRulesParam = exports.TagParam = exports.StoreItemParam = exports.StoreDataParam = exports.InAppPurchaseParam = exports.CurrencyParam = exports.AvatarParam = exports.ItemStatisticsParam = exports.ItemDataParam = exports.GroupStatisticsParam = exports.GroupMemberParam = exports.GroupDataParam = exports.GroupCurrencyParam = exports.PlayerStatisticsParam = exports.PlayerDataParam = exports.PlayerCurrencyParam = exports.CustomDataParam = exports.ContentDataParam = exports.storeInventory_InfoRequestParam = exports.masterPlayer_InfoRequestParam = exports.inventory_InfoRequestParam = exports.group_InfoRequestParam = exports.gamePlayer_InfoRequestParam = exports.characterPlayer_InfoRequestParam = exports.authenticate_InfoRequestParam = exports.GNServer = exports.SocketApp = exports.ServerApplicationStartup = exports.ServerApplication = exports.HttpApp = exports.DefaultApplicationStartup = exports.UploadFileSettings = exports.SocketAppSettings = exports.OtherSettings = exports.LogSettings = exports.HttpAppSettings = exports.DdosSettings = void 0;
95732
+ exports.PushNotificationSettingsParam = exports.EmailSettingsParam = exports.ThirtPartyParam = exports.ThirtPartyGooglePlayGameSettingsParam = exports.ThirtPartyGameCenterSettingsParam = exports.ThirtPartyFacebookSettingsParam = exports.ThirtPartyAppleSettingsParam = exports.TagSettingsParam = exports.StoreInventoryPermissionRulesParam = exports.StatisticsSettingsParam = exports.PermissionRulesParam = exports.PermissionParam = exports.MultiplayerPermissionRulesParam = exports.MatchmakingQueueSettingsParam = exports.MasterPlayerSettingsParam = exports.MasterPlayerPermissionRulesParam = exports.MasterAdminPermissionRulesParam = exports.ItemClassSettingsParam = exports.ItemCatalogSettingsParam = exports.InventorySettingsParam = exports.InventoryPermissionRulesParam = exports.GroupSettingsParam = exports.GroupPermissionRulesParam = void 0;
94999
95733
  const RequestHandler_1 = __webpack_require__(47239);
95000
95734
  Object.defineProperty(exports, "RequestHandler", ({ enumerable: true, get: function () { return RequestHandler_1.RequestHandler; } }));
95001
95735
  const RequestController_1 = __webpack_require__(24340);
@@ -95037,6 +95771,8 @@ const InvalidMemberType_1 = __webpack_require__(59536);
95037
95771
  Object.defineProperty(exports, "InvalidMemberType", ({ enumerable: true, get: function () { return InvalidMemberType_1.InvalidMemberType; } }));
95038
95772
  const ItemType_1 = __webpack_require__(81414);
95039
95773
  Object.defineProperty(exports, "ItemType", ({ enumerable: true, get: function () { return ItemType_1.ItemType; } }));
95774
+ const StoreItemType_1 = __webpack_require__(26155);
95775
+ Object.defineProperty(exports, "StoreItemType", ({ enumerable: true, get: function () { return StoreItemType_1.StoreItemType; } }));
95040
95776
  const MatchmakingMemberStatus_1 = __webpack_require__(45865);
95041
95777
  Object.defineProperty(exports, "MatchmakingMemberStatus", ({ enumerable: true, get: function () { return MatchmakingMemberStatus_1.MatchmakingMemberStatus; } }));
95042
95778
  const MatchmakingTicketStatus_1 = __webpack_require__(21099);