@xmobitea/gn-server 2.4.13 → 2.4.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/dist/GN-app-api/handler/controller/handler/characterPlayer/GetCurrencyLeaderboardRequestHandler.d.ts +1 -0
  2. package/dist/GN-app-api/handler/controller/handler/characterPlayer/GetFriendStatisticsLeaderboardAroundPlayerRequestHandler.d.ts +1 -0
  3. package/dist/GN-app-api/handler/controller/handler/characterPlayer/GetFriendStatisticsLeaderboardRequestHandler.d.ts +1 -0
  4. package/dist/GN-app-api/handler/controller/handler/characterPlayer/GetStatisticsLeaderboardAroundPlayerRequestHandler.d.ts +2 -0
  5. package/dist/GN-app-api/handler/controller/handler/characterPlayer/GetStatisticsLeaderboardRequestHandler.d.ts +1 -0
  6. package/dist/GN-app-api/handler/controller/handler/dashboard/GetAnalyticsRequestHandler.d.ts +4 -0
  7. package/dist/GN-app-api/handler/controller/handler/dashboard/ResetStatisticsLeaderboardRequestHandler.d.ts +1 -0
  8. package/dist/GN-app-api/handler/controller/handler/gamePlayer/GetFriendStatisticsLeaderboardAroundPlayerRequestHandler.d.ts +1 -0
  9. package/dist/GN-app-api/handler/controller/handler/gamePlayer/GetFriendStatisticsLeaderboardRequestHandler.d.ts +1 -0
  10. package/dist/GN-app-api/handler/controller/handler/gamePlayer/GetStatisticsLeaderboardAroundPlayerRequestHandler.d.ts +1 -0
  11. package/dist/GN-app-api/handler/controller/handler/group/GetCurrencyLeaderboardRequestHandler.d.ts +1 -0
  12. package/dist/GN-app-api/handler/controller/handler/group/GetStatisticsLeaderboardAroundGroupRequestHandler.d.ts +2 -0
  13. package/dist/GN-app-api/handler/controller/handler/group/GetStatisticsLeaderboardRequestHandler.d.ts +1 -0
  14. package/dist/GN-app-api/handler/controller/handler/inventory/GetStatisticsLeaderboardAroundItemRequestHandler.d.ts +2 -0
  15. package/dist/GN-app-api/handler/controller/handler/inventory/GetStatisticsLeaderboardRequestHandler.d.ts +1 -0
  16. package/dist/GN-app-api/handler/controller/handler/masterPlayer/GetStatisticsLeaderboardAroundPlayerRequestHandler.d.ts +1 -0
  17. package/dist/GN-app-api/service/AnalyticsService.d.ts +2 -0
  18. package/dist/GN-app-api/service/EventCallbackService.d.ts +7 -0
  19. package/dist/GN-app-api/service/IAnalyticsService.d.ts +18 -6
  20. package/dist/GN-common/constant/enumType/ItemType.d.ts +2 -2
  21. package/dist/GN-common/constant/errorCode/GNErrorCode.d.ts +1 -1
  22. package/dist/GN-common/constant/parameterCode/GNParameterCode.d.ts +7 -0
  23. package/dist/GN-library/xcachedata/lib/xCacheData.d.ts +1 -0
  24. package/dist/GN-library/xdatabase/lib/xDatabase.d.ts +12 -12
  25. package/dist/GN-startup/cloudScript/eventCallbackCloudScriptData.json +35 -15
  26. package/dist/GN-startup/cloudScript/templateCloudScript.ts +31 -1
  27. package/dist/GN-startup/cloudScript/templateEventCallback.ts +95 -3
  28. package/dist/GNServer.d.ts +1 -0
  29. package/dist/index.js +1391 -484
  30. package/package.json +2 -2
@@ -175,7 +175,36 @@ class CloudScriptAdmin {
175
175
  public readonly storeInventory = GNNetwork.storeInventory.admin;
176
176
  public readonly multiplayer = GNNetwork.multiplayer.admin;
177
177
  public readonly cloudScript = GNNetwork.cloudScript.admin;
178
- public readonly dashboard = GNNetwork.dashboard;
178
+ public readonly dashboard = {
179
+ getAdminAccountList: GNNetwork.dashboard.getAdminAccountList,
180
+ getAdminAccountListAsync: GNNetwork.dashboard.getAdminAccountListAsync,
181
+ getGameInformation: GNNetwork.dashboard.getGameInformation,
182
+ getGameInformationAsync: GNNetwork.dashboard.getGameInformationAsync,
183
+ getGameList: GNNetwork.dashboard.getGameList,
184
+ getGameListAsync: GNNetwork.dashboard.getGameListAsync,
185
+ getMasterGameSettings: GNNetwork.dashboard.getMasterGameSettings,
186
+ getMasterGameSettingsAsync: GNNetwork.dashboard.getMasterGameSettingsAsync,
187
+ getSecretInfoInformation: GNNetwork.dashboard.getSecretInfoInformation,
188
+ getSecretInfoInformationAsync: GNNetwork.dashboard.getSecretInfoInformationAsync,
189
+ getSecretInfoList: GNNetwork.dashboard.getSecretInfoList,
190
+ getSecretInfoListAsync: GNNetwork.dashboard.getSecretInfoListAsync,
191
+ getServerLog: GNNetwork.dashboard.getServerLog,
192
+ getServerLogAsync: GNNetwork.dashboard.getServerLogAsync,
193
+ setGameInformation: GNNetwork.dashboard.setGameInformation,
194
+ setGameInformationAsync: GNNetwork.dashboard.setGameInformationAsync,
195
+ getUsernameAdminAccount: GNNetwork.dashboard.getUsernameAdminAccount,
196
+ getUsernameAdminAccountAsync: GNNetwork.dashboard.getUsernameAdminAccountAsync,
197
+ getAnalytics: GNNetwork.dashboard.getAnalytics,
198
+ getAnalyticsAsync: GNNetwork.dashboard.getAnalyticsAsync,
199
+ resetStatisticsLeaderboard: GNNetwork.dashboard.resetStatisticsLeaderboard,
200
+ resetStatisticsLeaderboardAsync: GNNetwork.dashboard.resetStatisticsLeaderboardAsync,
201
+ getBackupStatisticsLeaderboardVersion: GNNetwork.dashboard.getBackupStatisticsLeaderboardVersion,
202
+ getBackupStatisticsLeaderboardVersionAsync: GNNetwork.dashboard.getBackupStatisticsLeaderboardVersionAsync,
203
+ getServerGameData: GNNetwork.dashboard.getServerGameData,
204
+ getServerGameDataAsync: GNNetwork.dashboard.getServerGameDataAsync,
205
+ deleteInDatabase: GNNetwork.dashboard.deleteInDatabase,
206
+ deleteInDatabaseAsync: GNNetwork.dashboard.deleteInDatabaseAsync,
207
+ };
179
208
  public send(
180
209
  requestType: RequestType,
181
210
  requestRole: RequestRole,
@@ -440,6 +469,7 @@ enum EventCallbackType {
440
469
  Pre = 0,
441
470
  Post = 1,
442
471
  System = 2,
472
+ Event = 3,
443
473
  }
444
474
 
445
475
  interface CloudScriptRequest {
@@ -547,7 +577,26 @@ if (parentPort) {
547
577
 
548
578
  handleResponse = await ___handleSystemFunction(functionRequest);
549
579
  }
550
- } else {
580
+ } else if (request.eventType == EventCallbackType.Event) {
581
+ let originOperationEvent = request.operationRequest;
582
+
583
+ let operationEvent = new OperationEvent(originOperationEvent.operationCode, (originOperationEvent.parameters ? GNHashtable.builder().addAll(originOperationEvent.parameters).build() : null as any), originOperationEvent.encrypted);
584
+
585
+ let functionRequest: FunctionRequest = {
586
+ eventName: request.eventName,
587
+ operationRequest: null as any,
588
+ secretInfo: null as any,
589
+ request: {
590
+ operationEvent: operationEvent,
591
+ request: request.request,
592
+ },
593
+ log(log: any) {
594
+ logs.push(JSON.stringify(log));
595
+ },
596
+ };
597
+
598
+ handleResponse = await ___handleEventFunction(functionRequest);
599
+ } else {
551
600
  let originOperationRequest = request.operationRequest;
552
601
  let operationRequest = new OperationRequest(originOperationRequest.operationCode, originOperationRequest.encrypted);
553
602
  if (originOperationRequest.parameters) {
@@ -613,7 +662,8 @@ if (parentPort) {
613
662
  let endTime = performance.now();
614
663
  let endMemoryUsage = process.memoryUsage();
615
664
 
616
- let memoryUsedInBytes = endMemoryUsage.rss - startMemoryUsage.rss;
665
+ let memoryUsedInBytes = endMemoryUsage.heapUsed - startMemoryUsage.heapUsed;
666
+ if (memoryUsedInBytes <= 0) memoryUsedInBytes = 8192;
617
667
  let executeTimeInMs = endTime - startTime;
618
668
 
619
669
  //let cost = (memoryUsedInGb * executeTime) / 1000 * 0.022;
@@ -693,6 +743,46 @@ async function ___handleSystemFunction(request: FunctionRequest): Promise<Functi
693
743
  return answer;
694
744
  }
695
745
 
746
+ async function ___handleEventFunction(request: FunctionRequest): Promise<FunctionResponse> {
747
+ let handler = eventHandlers[request.eventName];
748
+
749
+ if (handler == null) {
750
+ return {
751
+ status: ExecuteResponseStatus.FunctionNameNotFound,
752
+ result: null,
753
+ request: null,
754
+ errorMessage: null,
755
+ };
756
+ }
757
+
758
+ let answer: FunctionResponse = {
759
+ status: ExecuteResponseStatus.Ok,
760
+ errorMessage: null,
761
+ result: null,
762
+ request: null,
763
+ };
764
+
765
+ try {
766
+ await handler(request.request.request, request.request.operationEvent, request.log);
767
+
768
+ let operationEvent = request.request.operationEvent;
769
+
770
+ answer.result = {
771
+ returnCode: operationEvent.getEventCode(),
772
+ debugMessage: null as any,
773
+ encrypted: operationEvent.isEncrypted(),
774
+ parameters: operationEvent.getParameters()?.toData(),
775
+ };
776
+
777
+ answer.request = request.request.request;
778
+ } catch (err: any) {
779
+ answer.status = ExecuteResponseStatus.Exception;
780
+ answer.errorMessage = err.message;
781
+ }
782
+
783
+ return answer;
784
+ }
785
+
696
786
  async function ___handlePreFunction(request: FunctionRequest): Promise<FunctionResponse> {
697
787
  let handler = preHandlers[request.eventName];
698
788
 
@@ -799,6 +889,8 @@ const postHandlers: Record<string, (request: any, secretInfo: SecretInfo, operat
799
889
 
800
890
  const systemHandlers: Record<string, (log: (log: any) => void) => Promise<void>> = {};
801
891
 
892
+ const eventHandlers: Record<string, (request: any, operationEvent: OperationEvent, log: (log: any) => void) => Promise<void>> = {};
893
+
802
894
  const systemMatchmakingHandlers: Record<string, (gameId: string, matchmakingTicketCanMatch: MatchmakingTicketCanMatch, log: (log: any) => void) => Promise<{ success: boolean }>> = {};
803
895
 
804
896
  //$replaceScript
@@ -62,6 +62,7 @@ export declare class GNServer {
62
62
  private gameIds;
63
63
  private matchmakingHandler;
64
64
  private waitingServerDetailDict;
65
+ private postEventCallbackCollection;
65
66
  constructor();
66
67
  init(): void;
67
68
  run(onRunSuccess?: OnRunSuccess): void;