@xmobitea/gn-server 2.6.3 → 2.6.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/GN-app-api/service/EventCallbackService.d.ts +18 -0
- package/dist/GN-app-api/service/IEventCallbackService.d.ts +6 -0
- package/dist/GN-startup/cloudScript/eventCallbackCloudScriptData.json +5 -0
- package/dist/GN-startup/cloudScript/templateEventCallback.ts +401 -307
- package/dist/index.js +200 -3
- package/package.json +1 -1
|
@@ -38,6 +38,12 @@ export interface IEventCallbackCloudScriptService {
|
|
|
38
38
|
executePre(eventName: string, request: {
|
|
39
39
|
[k: string]: any;
|
|
40
40
|
}, secretInfo: SecretInfo, operationRequest: OperationRequest): Promise<OperationResponse>;
|
|
41
|
+
executeAuthenticate(eventName: string, request: {
|
|
42
|
+
userId: string;
|
|
43
|
+
ipAddress: string;
|
|
44
|
+
isNewUser: boolean;
|
|
45
|
+
authenticationType: string;
|
|
46
|
+
}, secretInfo: SecretInfo, operationRequest: OperationRequest, operationResponse: OperationResponse): Promise<void>;
|
|
41
47
|
addCloudScriptFunction(eventName: string, script: string): Promise<{
|
|
42
48
|
success: boolean;
|
|
43
49
|
errorMessage?: string;
|
|
@@ -96,6 +102,12 @@ export declare class EventCallbackCloudScriptService implements IEventCallbackCl
|
|
|
96
102
|
executePre(eventName: string, request: {
|
|
97
103
|
[k: string]: any;
|
|
98
104
|
}, secretInfo: SecretInfo, operationRequest: OperationRequest): Promise<OperationResponse>;
|
|
105
|
+
executeAuthenticate(eventName: string, request: {
|
|
106
|
+
userId: string;
|
|
107
|
+
ipAddress: string;
|
|
108
|
+
isNewUser: boolean;
|
|
109
|
+
authenticationType: string;
|
|
110
|
+
}, secretInfo: SecretInfo, operationRequest: OperationRequest, operationResponse: OperationResponse): Promise<void>;
|
|
99
111
|
executePost(eventName: string, request: {
|
|
100
112
|
[k: string]: any;
|
|
101
113
|
}, secretInfo: SecretInfo, operationRequest: OperationRequest, operationResponse: OperationResponse): Promise<void>;
|
|
@@ -119,6 +131,12 @@ export declare class PostEventCallbackService implements IPostEventCallbackServi
|
|
|
119
131
|
setEventCallbackCollection(eventCallbackCollection: mongoDB.Collection<mongoDB.Document>): void;
|
|
120
132
|
setCloudScriptService(cloudScriptService: IEventCallbackCloudScriptService): void;
|
|
121
133
|
onEvent(eventName: string, request: {}, secretInfo: SecretInfo, operationRequest: OperationRequest, operationResponse: OperationResponse): Promise<void>;
|
|
134
|
+
onAuthenticateEvent(eventName: string, request: {
|
|
135
|
+
userId: string;
|
|
136
|
+
ipAddress: string;
|
|
137
|
+
isNewUser: boolean;
|
|
138
|
+
authenticationType: string;
|
|
139
|
+
}, secretInfo: SecretInfo, operationRequest: OperationRequest, operationResponse: OperationResponse): Promise<void>;
|
|
122
140
|
}
|
|
123
141
|
export declare class PreEventCallbackService implements IPreEventCallbackService {
|
|
124
142
|
private eventDict;
|
|
@@ -8,6 +8,12 @@ export interface IPostEventCallbackService {
|
|
|
8
8
|
subscriberEvent(eventName: string, callbackFunction: OnPostCallbackFunction): void;
|
|
9
9
|
unSubscriberEvent(eventName: string, callbackFunction: OnPostCallbackFunction): void;
|
|
10
10
|
onEvent(eventName: string, request: {}, secretInfo: SecretInfo, operationRequest: OperationRequest, operationResponse: OperationResponse): Promise<void>;
|
|
11
|
+
onAuthenticateEvent(eventName: string, request: {
|
|
12
|
+
userId: string;
|
|
13
|
+
ipAddress: string;
|
|
14
|
+
isNewUser: boolean;
|
|
15
|
+
authenticationType: string;
|
|
16
|
+
}, secretInfo: SecretInfo, operationRequest: OperationRequest, operationResponse: OperationResponse): Promise<void>;
|
|
11
17
|
}
|
|
12
18
|
export interface OnPreCallbackFunction {
|
|
13
19
|
(request: {}, secretInfo: SecretInfo, operationRequest: OperationRequest): Promise<OperationResponse>;
|
|
@@ -25,6 +25,11 @@
|
|
|
25
25
|
"script": "\nsystemMatchmakingHandlers.system_RequestServerDetail = async (gameId: string, matchmakingTicketCanMatch: MatchmakingTicketCanMatch, log: (log: any) => void): Promise<{ success: boolean }> => {\n\t//call matchmaking.confirmServerDetail(gameId, matchmakingTicketCanMatch, { ipV4Address: '127.0.0.1', ports: [{ name: 'GamePort', publicPort: 2202, privatePort: 3000, protocol: 1 }] }); // after setup success a dedicated server;\n\treturn { success: false };\n}\n",
|
|
26
26
|
"hasEdit": false
|
|
27
27
|
},
|
|
28
|
+
{
|
|
29
|
+
"eventName": "system_OnAuthenticateSuccess",
|
|
30
|
+
"script": "\nsystemAuthenticateHandlers.system_OnAuthenticateSuccess = async (request: { userId: string, ipAddress: string, isNewUser: boolean, authenticationType: string }, secretInfo: SecretInfo, operationRequest: OperationRequest, operationResponse: OperationResponse, log: (log: any) => void) => {\nreturn operationResponse;\n}\n",
|
|
31
|
+
"hasEdit": false
|
|
32
|
+
},
|
|
28
33
|
{
|
|
29
34
|
"eventName": "system_SendEventTo",
|
|
30
35
|
"script": "\neventHandlers.system_SendEventTo = async (request: { userId: string }, operationEvent: OperationEvent, log: (log: any) => void) => {\n\n}\n",
|
|
@@ -136,14 +136,14 @@ import {
|
|
|
136
136
|
GroupStatus,
|
|
137
137
|
GNDebug,
|
|
138
138
|
ItemType,
|
|
139
|
-
|
|
139
|
+
StoreItemType,
|
|
140
140
|
LogType,
|
|
141
141
|
GNSupport,
|
|
142
142
|
PostType,
|
|
143
143
|
GetAuthInfoResponse,
|
|
144
144
|
PushPlatformType,
|
|
145
145
|
StoreReceiveType,
|
|
146
|
-
|
|
146
|
+
GNUtils,
|
|
147
147
|
} from "@xmobitea/gn-typescript-client";
|
|
148
148
|
|
|
149
149
|
import * as mongodb from "mongodb";
|
|
@@ -176,35 +176,35 @@ class CloudScriptAdmin {
|
|
|
176
176
|
public readonly multiplayer = GNNetwork.multiplayer.admin;
|
|
177
177
|
public readonly cloudScript = GNNetwork.cloudScript.admin;
|
|
178
178
|
public readonly dashboard = {
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
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
|
+
};
|
|
208
208
|
public send(
|
|
209
209
|
requestType: RequestType,
|
|
210
210
|
requestRole: RequestRole,
|
|
@@ -347,160 +347,160 @@ class CloudScriptSocket {
|
|
|
347
347
|
}
|
|
348
348
|
|
|
349
349
|
private async sendEvent(event: CloudScriptEvent) {
|
|
350
|
-
|
|
351
|
-
|
|
350
|
+
if (process?.send)
|
|
351
|
+
process.send(event);
|
|
352
352
|
}
|
|
353
353
|
}
|
|
354
354
|
|
|
355
355
|
class CloudScriptMatchmaking {
|
|
356
356
|
public async confirmServerDetail(gameId: string, matchmakingTicketCanMatch: MatchmakingTicketCanMatch, serverDetail: ServerDetail) {
|
|
357
357
|
if (process?.send)
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
358
|
+
process.send({
|
|
359
|
+
eventType: 10,
|
|
360
|
+
receiver: null,
|
|
361
|
+
operationEvent: {
|
|
362
|
+
eventCode: 0,
|
|
363
|
+
encrypted: false,
|
|
364
|
+
parameters: {
|
|
365
|
+
gameId: gameId,
|
|
366
|
+
matchmakingTicketCanMatch: matchmakingTicketCanMatch,
|
|
367
|
+
serverDetail: serverDetail,
|
|
368
|
+
},
|
|
369
|
+
},
|
|
370
|
+
});
|
|
371
371
|
}
|
|
372
372
|
}
|
|
373
373
|
|
|
374
374
|
class CloudScriptMail {
|
|
375
375
|
public async send(email: string, subject: string, contentHtml: string) {
|
|
376
376
|
if (process?.send)
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
377
|
+
process.send({
|
|
378
|
+
eventType: 20,
|
|
379
|
+
receiver: null,
|
|
380
|
+
operationEvent: {
|
|
381
|
+
eventCode: 0,
|
|
382
|
+
encrypted: false,
|
|
383
|
+
parameters: {
|
|
384
|
+
email: email,
|
|
385
|
+
subject: subject,
|
|
386
|
+
contentHtml: contentHtml,
|
|
387
|
+
},
|
|
388
|
+
},
|
|
389
|
+
});
|
|
390
390
|
}
|
|
391
391
|
|
|
392
392
|
public async sendToMore(emails: string[], subject: string, contentHtml: string) {
|
|
393
393
|
if (process?.send)
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
394
|
+
process.send({
|
|
395
|
+
eventType: 21,
|
|
396
|
+
receiver: null,
|
|
397
|
+
operationEvent: {
|
|
398
|
+
eventCode: 0,
|
|
399
|
+
encrypted: false,
|
|
400
|
+
parameters: {
|
|
401
|
+
emails: emails,
|
|
402
|
+
subject: subject,
|
|
403
|
+
contentHtml: contentHtml,
|
|
404
|
+
},
|
|
405
|
+
},
|
|
406
|
+
});
|
|
407
407
|
}
|
|
408
408
|
}
|
|
409
409
|
|
|
410
410
|
class CloudScriptPushNotification {
|
|
411
411
|
public async send(token: string, title: string, body: string, badge?: number, sound?: string, icon?: string, data?: { [k: string]: any }) {
|
|
412
412
|
if (process?.send)
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
413
|
+
process.send({
|
|
414
|
+
eventType: 30,
|
|
415
|
+
receiver: null,
|
|
416
|
+
operationEvent: {
|
|
417
|
+
eventCode: 0,
|
|
418
|
+
encrypted: false,
|
|
419
|
+
parameters: {
|
|
420
|
+
token: token,
|
|
421
|
+
title: title,
|
|
422
|
+
body: body,
|
|
423
|
+
badge: badge,
|
|
424
|
+
sound: sound,
|
|
425
|
+
icon: icon,
|
|
426
|
+
data: data,
|
|
427
|
+
},
|
|
428
|
+
},
|
|
429
|
+
});
|
|
430
430
|
}
|
|
431
431
|
|
|
432
432
|
public async sendToMore(tokens: string[], title: string, body: string, badge?: number, sound?: string, icon?: string, data?: { [k: string]: any }) {
|
|
433
433
|
if (process?.send)
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
434
|
+
process.send({
|
|
435
|
+
eventType: 31,
|
|
436
|
+
receiver: null,
|
|
437
|
+
operationEvent: {
|
|
438
|
+
eventCode: 0,
|
|
439
|
+
encrypted: false,
|
|
440
|
+
parameters: {
|
|
441
|
+
tokens: tokens,
|
|
442
|
+
title: title,
|
|
443
|
+
body: body,
|
|
444
|
+
badge: badge,
|
|
445
|
+
sound: sound,
|
|
446
|
+
icon: icon,
|
|
447
|
+
data: data,
|
|
448
|
+
},
|
|
449
|
+
},
|
|
450
|
+
});
|
|
451
451
|
}
|
|
452
452
|
|
|
453
453
|
public async sendToTopic(topic: string, title: string, body: string, badge?: number, sound?: string, icon?: string, data?: { [k: string]: any }) {
|
|
454
454
|
if (process?.send)
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
}
|
|
473
|
-
|
|
474
|
-
|
|
455
|
+
process.send({
|
|
456
|
+
eventType: 32,
|
|
457
|
+
receiver: null,
|
|
458
|
+
operationEvent: {
|
|
459
|
+
eventCode: 0,
|
|
460
|
+
encrypted: false,
|
|
461
|
+
parameters: {
|
|
462
|
+
topic: topic,
|
|
463
|
+
title: title,
|
|
464
|
+
body: body,
|
|
465
|
+
badge: badge,
|
|
466
|
+
sound: sound,
|
|
467
|
+
icon: icon,
|
|
468
|
+
data: data,
|
|
469
|
+
},
|
|
470
|
+
},
|
|
471
|
+
});
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
public async subscribeToTopic(tokens: string[], topic: string) {
|
|
475
475
|
if (process?.send)
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
}
|
|
489
|
-
|
|
490
|
-
|
|
476
|
+
process.send({
|
|
477
|
+
eventType: 33,
|
|
478
|
+
receiver: null,
|
|
479
|
+
operationEvent: {
|
|
480
|
+
eventCode: 0,
|
|
481
|
+
encrypted: false,
|
|
482
|
+
parameters: {
|
|
483
|
+
tokens: tokens,
|
|
484
|
+
topic: topic,
|
|
485
|
+
},
|
|
486
|
+
},
|
|
487
|
+
});
|
|
488
|
+
}
|
|
489
|
+
|
|
490
|
+
public async unsubscribeFromTopic(tokens: string[], topic: string) {
|
|
491
491
|
if (process?.send)
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
492
|
+
process.send({
|
|
493
|
+
eventType: 34,
|
|
494
|
+
receiver: null,
|
|
495
|
+
operationEvent: {
|
|
496
|
+
eventCode: 0,
|
|
497
|
+
encrypted: false,
|
|
498
|
+
parameters: {
|
|
499
|
+
tokens: tokens,
|
|
500
|
+
topic: topic,
|
|
501
|
+
},
|
|
502
|
+
},
|
|
503
|
+
});
|
|
504
504
|
}
|
|
505
505
|
}
|
|
506
506
|
|
|
@@ -508,7 +508,7 @@ enum EventCallbackType {
|
|
|
508
508
|
Pre = 0,
|
|
509
509
|
Post = 1,
|
|
510
510
|
System = 2,
|
|
511
|
-
|
|
511
|
+
Event = 3,
|
|
512
512
|
}
|
|
513
513
|
|
|
514
514
|
interface CloudScriptRequest {
|
|
@@ -524,6 +524,7 @@ interface CloudScriptRequest {
|
|
|
524
524
|
permission: SecretPermissionItem;
|
|
525
525
|
gameId: string;
|
|
526
526
|
isDefault: boolean;
|
|
527
|
+
displayName: string;
|
|
527
528
|
onlyMasterAdmin: boolean;
|
|
528
529
|
};
|
|
529
530
|
operationRequest: {
|
|
@@ -581,143 +582,193 @@ interface FunctionResponse {
|
|
|
581
582
|
}
|
|
582
583
|
|
|
583
584
|
process?.on("message", async (request: CloudScriptRequest) => {
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
585
|
+
let startTime = performance.now();
|
|
586
|
+
let startMemoryUsage = process.memoryUsage();
|
|
587
|
+
|
|
588
|
+
let logs: string[] = [];
|
|
589
|
+
|
|
590
|
+
let handleResponse: FunctionResponse = null as any;
|
|
591
|
+
|
|
592
|
+
if (request.eventType == EventCallbackType.System) {
|
|
593
|
+
if (request.eventName == "system_RequestServerDetail") {
|
|
594
|
+
let functionRequest: FunctionRequest = {
|
|
595
|
+
eventName: request.eventName,
|
|
596
|
+
operationRequest: null as any,
|
|
597
|
+
secretInfo: null as any,
|
|
598
|
+
request: request.request,
|
|
599
|
+
log(log: any) {
|
|
600
|
+
logs.push(JSON.stringify(log));
|
|
601
|
+
},
|
|
602
|
+
};
|
|
603
|
+
|
|
604
|
+
handleResponse = await ___handleMatchmakingFunction(functionRequest);
|
|
605
|
+
}
|
|
606
|
+
else if (request.eventName == "system_OnAuthenticateSuccess") {
|
|
607
|
+
let originOperationRequest = request.operationRequest;
|
|
608
|
+
let operationRequest = new OperationRequest(originOperationRequest.operationCode, originOperationRequest.encrypted);
|
|
609
|
+
if (originOperationRequest.parameters) {
|
|
610
|
+
operationRequest.setParameters(GNHashtable.builder().addAll(originOperationRequest.parameters).build());
|
|
611
|
+
}
|
|
612
|
+
|
|
613
|
+
let originSecretInfo = request.secretInfo;
|
|
614
|
+
let secretInfo: SecretInfo = null as any;
|
|
615
|
+
if (originSecretInfo) {
|
|
616
|
+
secretInfo = SecretInfo.Builder()
|
|
617
|
+
.setSecretKey(originSecretInfo.secretKey)
|
|
618
|
+
.setDisplayName(originSecretInfo.displayName)
|
|
619
|
+
.setRole(originSecretInfo.role)
|
|
620
|
+
.setIsRemove(originSecretInfo.remove)
|
|
621
|
+
.setTsExpire(originSecretInfo.tsExpire)
|
|
622
|
+
.setPermission(originSecretInfo.permission)
|
|
623
|
+
.setGameId(originSecretInfo.gameId)
|
|
624
|
+
.setIsDefault(originSecretInfo.isDefault)
|
|
625
|
+
.setIsOnlyMasterAdmin(originSecretInfo.onlyMasterAdmin)
|
|
626
|
+
.build();
|
|
627
|
+
}
|
|
628
|
+
|
|
629
|
+
let originOperationResponse = request.operationResponse;
|
|
630
|
+
let operationResponse: OperationResponse = null as any;
|
|
631
|
+
|
|
632
|
+
if (originOperationResponse) {
|
|
633
|
+
operationResponse = new OperationResponse(originOperationRequest.operationCode, originOperationRequest.requestId, originOperationRequest.encrypted);
|
|
634
|
+
operationResponse.setReturnCode(originOperationResponse.returnCode);
|
|
635
|
+
operationResponse.setDebugMessage(originOperationResponse.debugMessage);
|
|
636
|
+
|
|
637
|
+
if (originOperationResponse.parameters) {
|
|
638
|
+
operationResponse.setParameters(GNHashtable.builder().addAll(originOperationResponse.parameters).build());
|
|
639
|
+
}
|
|
640
|
+
}
|
|
641
|
+
|
|
642
|
+
let functionRequest: FunctionRequest = {
|
|
643
|
+
eventName: request.eventName,
|
|
644
|
+
operationRequest: operationRequest,
|
|
645
|
+
operationResponse: operationResponse,
|
|
646
|
+
secretInfo: secretInfo,
|
|
647
|
+
request: request.request,
|
|
648
|
+
log(log: any) {
|
|
649
|
+
logs.push(JSON.stringify(log));
|
|
650
|
+
},
|
|
651
|
+
};
|
|
652
|
+
|
|
653
|
+
handleResponse = await ___handleSystemAuthenticateFunction(functionRequest);
|
|
654
|
+
}
|
|
655
|
+
else {
|
|
656
|
+
let functionRequest: FunctionRequest = {
|
|
657
|
+
eventName: request.eventName,
|
|
658
|
+
operationRequest: null as any,
|
|
659
|
+
secretInfo: null as any,
|
|
660
|
+
request: null as any,
|
|
661
|
+
log(log: any) {
|
|
662
|
+
logs.push(JSON.stringify(log));
|
|
663
|
+
},
|
|
664
|
+
};
|
|
665
|
+
|
|
666
|
+
handleResponse = await ___handleSystemFunction(functionRequest);
|
|
667
|
+
}
|
|
668
|
+
} else if (request.eventType == EventCallbackType.Event) {
|
|
669
|
+
let originOperationEvent = request.operationRequest;
|
|
670
|
+
|
|
671
|
+
let operationEvent = new OperationEvent(originOperationEvent.operationCode, (originOperationEvent.parameters ? GNHashtable.builder().addAll(originOperationEvent.parameters).build() : null as any), originOperationEvent.encrypted);
|
|
672
|
+
|
|
673
|
+
let functionRequest: FunctionRequest = {
|
|
674
|
+
eventName: request.eventName,
|
|
675
|
+
operationRequest: null as any,
|
|
676
|
+
secretInfo: null as any,
|
|
677
|
+
request: {
|
|
678
|
+
operationEvent: operationEvent,
|
|
679
|
+
request: request.request,
|
|
680
|
+
},
|
|
681
|
+
log(log: any) {
|
|
682
|
+
logs.push(JSON.stringify(log));
|
|
683
|
+
},
|
|
684
|
+
};
|
|
685
|
+
|
|
686
|
+
handleResponse = await ___handleEventFunction(functionRequest);
|
|
687
|
+
} else {
|
|
688
|
+
let originOperationRequest = request.operationRequest;
|
|
689
|
+
let operationRequest = new OperationRequest(originOperationRequest.operationCode, originOperationRequest.encrypted);
|
|
690
|
+
if (originOperationRequest.parameters) {
|
|
691
|
+
operationRequest.setParameters(GNHashtable.builder().addAll(originOperationRequest.parameters).build());
|
|
692
|
+
}
|
|
693
|
+
|
|
694
|
+
let originSecretInfo = request.secretInfo;
|
|
695
|
+
let secretInfo: SecretInfo = null as any;
|
|
696
|
+
if (originSecretInfo) {
|
|
697
|
+
secretInfo = SecretInfo.Builder()
|
|
698
|
+
.setSecretKey(originSecretInfo.secretKey)
|
|
699
|
+
.setDisplayName(originSecretInfo.displayName)
|
|
700
|
+
.setRole(originSecretInfo.role)
|
|
701
|
+
.setIsRemove(originSecretInfo.remove)
|
|
702
|
+
.setTsExpire(originSecretInfo.tsExpire)
|
|
703
|
+
.setPermission(originSecretInfo.permission)
|
|
704
|
+
.setGameId(originSecretInfo.gameId)
|
|
705
|
+
.setIsDefault(originSecretInfo.isDefault)
|
|
706
|
+
.setIsOnlyMasterAdmin(originSecretInfo.onlyMasterAdmin)
|
|
707
|
+
.build();
|
|
708
|
+
}
|
|
709
|
+
|
|
710
|
+
if (request.eventType == EventCallbackType.Pre) {
|
|
711
|
+
let functionRequest: FunctionRequest = {
|
|
712
|
+
eventName: request.eventName,
|
|
713
|
+
operationRequest: operationRequest,
|
|
714
|
+
secretInfo: secretInfo,
|
|
715
|
+
request: request.request,
|
|
716
|
+
log(log: any) {
|
|
717
|
+
logs.push(JSON.stringify(log));
|
|
718
|
+
},
|
|
719
|
+
};
|
|
720
|
+
|
|
721
|
+
handleResponse = await ___handlePreFunction(functionRequest);
|
|
722
|
+
} else if (request.eventType == EventCallbackType.Post) {
|
|
723
|
+
let originOperationResponse = request.operationResponse;
|
|
724
|
+
let operationResponse: OperationResponse = null as any;
|
|
725
|
+
|
|
726
|
+
if (originOperationResponse) {
|
|
727
|
+
operationResponse = new OperationResponse(originOperationRequest.operationCode, originOperationRequest.requestId, originOperationRequest.encrypted);
|
|
728
|
+
operationResponse.setReturnCode(originOperationResponse.returnCode);
|
|
729
|
+
operationResponse.setDebugMessage(originOperationResponse.debugMessage);
|
|
730
|
+
|
|
731
|
+
if (originOperationResponse.parameters) {
|
|
732
|
+
operationResponse.setParameters(GNHashtable.builder().addAll(originOperationResponse.parameters).build());
|
|
733
|
+
}
|
|
734
|
+
}
|
|
735
|
+
|
|
736
|
+
let functionRequest: FunctionRequest = {
|
|
737
|
+
eventName: request.eventName,
|
|
738
|
+
operationRequest: operationRequest,
|
|
739
|
+
operationResponse: operationResponse,
|
|
740
|
+
secretInfo: secretInfo,
|
|
741
|
+
request: request.request,
|
|
742
|
+
log(log: any) {
|
|
743
|
+
logs.push(JSON.stringify(log));
|
|
744
|
+
},
|
|
745
|
+
};
|
|
746
|
+
|
|
747
|
+
handleResponse = await ___handlePostFunction(functionRequest);
|
|
748
|
+
}
|
|
749
|
+
}
|
|
750
|
+
|
|
751
|
+
let endTime = performance.now();
|
|
752
|
+
let endMemoryUsage = process.memoryUsage();
|
|
753
|
+
|
|
754
|
+
let memoryUsedInBytes = endMemoryUsage.heapUsed - startMemoryUsage.heapUsed;
|
|
755
|
+
if (memoryUsedInBytes <= 0) memoryUsedInBytes = 8192;
|
|
756
|
+
let executeTimeInMs = endTime - startTime;
|
|
757
|
+
|
|
758
|
+
//let cost = (memoryUsedInGb * executeTime) / 1000 * 0.022;
|
|
759
|
+
|
|
760
|
+
let response: CloudScriptResponse = {
|
|
761
|
+
responseId: request.requestId,
|
|
762
|
+
response: handleResponse as any,
|
|
763
|
+
stats: {
|
|
764
|
+
executeTimeInMs: executeTimeInMs,
|
|
765
|
+
memoryUsedInBytes: memoryUsedInBytes,
|
|
766
|
+
},
|
|
767
|
+
logs: logs,
|
|
768
|
+
};
|
|
769
|
+
|
|
770
|
+
if (process?.send)
|
|
771
|
+
process.send(response);
|
|
721
772
|
});
|
|
722
773
|
|
|
723
774
|
async function ___handleMatchmakingFunction(request: FunctionRequest): Promise<FunctionResponse> {
|
|
@@ -752,6 +803,45 @@ async function ___handleMatchmakingFunction(request: FunctionRequest): Promise<F
|
|
|
752
803
|
return answer;
|
|
753
804
|
}
|
|
754
805
|
|
|
806
|
+
async function ___handleSystemAuthenticateFunction(request: FunctionRequest): Promise<FunctionResponse> {
|
|
807
|
+
let handler = systemAuthenticateHandlers[request.eventName];
|
|
808
|
+
|
|
809
|
+
if (handler == null) {
|
|
810
|
+
return {
|
|
811
|
+
status: ExecuteResponseStatus.FunctionNameNotFound,
|
|
812
|
+
result: null,
|
|
813
|
+
errorMessage: null,
|
|
814
|
+
request: null,
|
|
815
|
+
};
|
|
816
|
+
}
|
|
817
|
+
|
|
818
|
+
let answer: FunctionResponse = {
|
|
819
|
+
status: ExecuteResponseStatus.Ok,
|
|
820
|
+
errorMessage: null,
|
|
821
|
+
result: null,
|
|
822
|
+
request: null,
|
|
823
|
+
};
|
|
824
|
+
|
|
825
|
+
try {
|
|
826
|
+
let result = await handler(request.request as any, request.secretInfo, request.operationRequest, request.operationResponse as any, request.log);
|
|
827
|
+
|
|
828
|
+
if (result) {
|
|
829
|
+
answer.result = {
|
|
830
|
+
returnCode: result.getReturnCode(),
|
|
831
|
+
debugMessage: result.getDebugMessage(),
|
|
832
|
+
encrypted: result.isEncrypted(),
|
|
833
|
+
parameters: result.getParameters()?.toData(),
|
|
834
|
+
};
|
|
835
|
+
}
|
|
836
|
+
|
|
837
|
+
} catch (err: any) {
|
|
838
|
+
answer.status = ExecuteResponseStatus.Exception;
|
|
839
|
+
answer.errorMessage = err.message;
|
|
840
|
+
}
|
|
841
|
+
|
|
842
|
+
return answer;
|
|
843
|
+
}
|
|
844
|
+
|
|
755
845
|
async function ___handleSystemFunction(request: FunctionRequest): Promise<FunctionResponse> {
|
|
756
846
|
let handler = systemHandlers[request.eventName];
|
|
757
847
|
|
|
@@ -782,7 +872,7 @@ async function ___handleSystemFunction(request: FunctionRequest): Promise<Functi
|
|
|
782
872
|
}
|
|
783
873
|
|
|
784
874
|
async function ___handleEventFunction(request: FunctionRequest): Promise<FunctionResponse> {
|
|
785
|
-
|
|
875
|
+
let handler = eventHandlers[request.eventName];
|
|
786
876
|
|
|
787
877
|
if (handler == null) {
|
|
788
878
|
return {
|
|
@@ -803,16 +893,16 @@ async function ___handleEventFunction(request: FunctionRequest): Promise<Functio
|
|
|
803
893
|
try {
|
|
804
894
|
await handler(request.request.request, request.request.operationEvent, request.log);
|
|
805
895
|
|
|
806
|
-
|
|
896
|
+
let operationEvent = request.request.operationEvent;
|
|
807
897
|
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
898
|
+
answer.result = {
|
|
899
|
+
returnCode: operationEvent.getEventCode(),
|
|
900
|
+
debugMessage: null as any,
|
|
901
|
+
encrypted: operationEvent.isEncrypted(),
|
|
902
|
+
parameters: operationEvent.getParameters()?.toData(),
|
|
903
|
+
};
|
|
814
904
|
|
|
815
|
-
|
|
905
|
+
answer.request = request.request.request;
|
|
816
906
|
} catch (err: any) {
|
|
817
907
|
answer.status = ExecuteResponseStatus.Exception;
|
|
818
908
|
answer.errorMessage = err.message;
|
|
@@ -882,12 +972,14 @@ async function ___handlePostFunction(request: FunctionRequest): Promise<Function
|
|
|
882
972
|
try {
|
|
883
973
|
let result = await handler(request.request, request.secretInfo, request.operationRequest, request.operationResponse as any, request.log);
|
|
884
974
|
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
975
|
+
if (result) {
|
|
976
|
+
answer.result = {
|
|
977
|
+
returnCode: result.getReturnCode(),
|
|
978
|
+
debugMessage: result.getDebugMessage(),
|
|
979
|
+
encrypted: result.isEncrypted(),
|
|
980
|
+
parameters: result.getParameters()?.toData(),
|
|
981
|
+
};
|
|
982
|
+
}
|
|
891
983
|
} catch (err: any) {
|
|
892
984
|
answer.status = ExecuteResponseStatus.Exception;
|
|
893
985
|
answer.errorMessage = err.message;
|
|
@@ -931,4 +1023,6 @@ const eventHandlers: Record<string, (request: any, operationEvent: OperationEven
|
|
|
931
1023
|
|
|
932
1024
|
const systemMatchmakingHandlers: Record<string, (gameId: string, matchmakingTicketCanMatch: MatchmakingTicketCanMatch, log: (log: any) => void) => Promise<{ success: boolean }>> = {};
|
|
933
1025
|
|
|
934
|
-
|
|
1026
|
+
const systemAuthenticateHandlers: Record<string, (request: { userId: string, ipAddress: string, isNewUser: boolean, authenticationType: string }, secretInfo: SecretInfo, operationRequest: OperationRequest, operationResponse: OperationResponse, log: (log: any) => void) => Promise<OperationResponse>> = {};
|
|
1027
|
+
|
|
1028
|
+
//$replaceScript
|
package/dist/index.js
CHANGED
|
@@ -2966,6 +2966,96 @@ class EventCallbackCloudScriptService {
|
|
|
2966
2966
|
}
|
|
2967
2967
|
return null;
|
|
2968
2968
|
}
|
|
2969
|
+
async executeAuthenticate(eventName, request, secretInfo, operationRequest, operationResponse) {
|
|
2970
|
+
let cloudFunction = this.cloudScriptFunctionDict.get("system");
|
|
2971
|
+
if (cloudFunction == null) {
|
|
2972
|
+
return;
|
|
2973
|
+
}
|
|
2974
|
+
let cloudScriptWorker = this.loadCloudScriptFunctionWorkerFromCache(cloudFunction.type, eventName);
|
|
2975
|
+
if (cloudScriptWorker == null) {
|
|
2976
|
+
Debug.logError("[GearN] [SystemEventCallback] worker not found at " + cloudFunction.type);
|
|
2977
|
+
return;
|
|
2978
|
+
}
|
|
2979
|
+
let requestId = StringUtility.generateRandomString(10, 0);
|
|
2980
|
+
let finalSecretInfo = null;
|
|
2981
|
+
if (secretInfo) {
|
|
2982
|
+
finalSecretInfo = {
|
|
2983
|
+
gameId: secretInfo.getGameId(),
|
|
2984
|
+
isDefault: secretInfo.getIsDefault(),
|
|
2985
|
+
onlyMasterAdmin: secretInfo.getIsOnlyMasterAdmin(),
|
|
2986
|
+
permission: secretInfo.getPermission(),
|
|
2987
|
+
remove: secretInfo.isRemove(),
|
|
2988
|
+
role: secretInfo.getRole(),
|
|
2989
|
+
secretKey: secretInfo.getSecretKey(),
|
|
2990
|
+
tsExpire: secretInfo.getTsExpire(),
|
|
2991
|
+
};
|
|
2992
|
+
}
|
|
2993
|
+
let cloudScriptRequest = {
|
|
2994
|
+
requestId: requestId,
|
|
2995
|
+
eventName: eventName,
|
|
2996
|
+
eventType: EventCallbackType.System,
|
|
2997
|
+
operationRequest: {
|
|
2998
|
+
operationCode: operationRequest.getOperationCode(),
|
|
2999
|
+
encrypted: operationRequest.isEncrypted(),
|
|
3000
|
+
parameters: operationRequest.getParameters()?.toData(),
|
|
3001
|
+
requestId: operationRequest.getRequestId(),
|
|
3002
|
+
},
|
|
3003
|
+
operationResponse: {
|
|
3004
|
+
debugMessage: operationResponse.getDebugMessage(),
|
|
3005
|
+
encrypted: operationResponse.isEncrypted(),
|
|
3006
|
+
parameters: operationResponse.getParameters()?.toData(),
|
|
3007
|
+
returnCode: operationResponse.getReturnCode(),
|
|
3008
|
+
},
|
|
3009
|
+
request: request,
|
|
3010
|
+
secretInfo: finalSecretInfo,
|
|
3011
|
+
};
|
|
3012
|
+
cloudScriptWorker.send(cloudScriptRequest);
|
|
3013
|
+
let thiz = this;
|
|
3014
|
+
let isResolved = false;
|
|
3015
|
+
let cloudScriptResponse = await new Promise((resolve) => {
|
|
3016
|
+
let timeout = setTimeout(() => {
|
|
3017
|
+
if (isResolved)
|
|
3018
|
+
return;
|
|
3019
|
+
isResolved = true;
|
|
3020
|
+
resolve({
|
|
3021
|
+
responseId: requestId,
|
|
3022
|
+
response: {
|
|
3023
|
+
status: ExecuteResponseStatus.Timeout,
|
|
3024
|
+
errorMessage: "function execute timeout",
|
|
3025
|
+
result: null,
|
|
3026
|
+
request: null,
|
|
3027
|
+
},
|
|
3028
|
+
stats: null,
|
|
3029
|
+
logs: [],
|
|
3030
|
+
});
|
|
3031
|
+
}, EventCallbackCloudScriptService.ExecuteTimeoutInMs);
|
|
3032
|
+
thiz.cloudScriptWaitingResponseCallbackDict.set(requestId, (cloudScriptResponse) => {
|
|
3033
|
+
if (isResolved)
|
|
3034
|
+
return;
|
|
3035
|
+
isResolved = true;
|
|
3036
|
+
clearTimeout(timeout);
|
|
3037
|
+
resolve(cloudScriptResponse);
|
|
3038
|
+
});
|
|
3039
|
+
});
|
|
3040
|
+
this.cloudScriptWaitingResponseCallbackDict.delete(requestId);
|
|
3041
|
+
if (cloudScriptResponse.logs.length != 0)
|
|
3042
|
+
Debug.log(JSON.stringify(cloudScriptResponse.logs));
|
|
3043
|
+
if (cloudScriptResponse.response.status == ExecuteResponseStatus.Ok) {
|
|
3044
|
+
if (cloudScriptResponse.response.result) {
|
|
3045
|
+
let responseOperationResponse = cloudScriptResponse.response.result;
|
|
3046
|
+
operationResponse.setReturnCode(responseOperationResponse.returnCode);
|
|
3047
|
+
operationResponse.setDebugMessage(responseOperationResponse.debugMessage);
|
|
3048
|
+
operationResponse.setEncrypted(responseOperationResponse.encrypted);
|
|
3049
|
+
if (responseOperationResponse.parameters)
|
|
3050
|
+
operationResponse.setParameters(GNHashtable.builder().addAll(responseOperationResponse.parameters).build());
|
|
3051
|
+
}
|
|
3052
|
+
}
|
|
3053
|
+
else if (cloudScriptResponse.response.status == ExecuteResponseStatus.FunctionNameNotFound) {
|
|
3054
|
+
}
|
|
3055
|
+
else {
|
|
3056
|
+
operationResponse.setParameter(GNParameterCode.Message, cloudScriptResponse.response.errorMessage);
|
|
3057
|
+
}
|
|
3058
|
+
}
|
|
2969
3059
|
async executePost(eventName, request, secretInfo, operationRequest, operationResponse) {
|
|
2970
3060
|
let cloudScriptWorker = this.loadCloudScriptFunctionWorkerFromCache(eventName.split("_")[0], eventName);
|
|
2971
3061
|
if (cloudScriptWorker == null) {
|
|
@@ -3297,9 +3387,6 @@ class PostEventCallbackService {
|
|
|
3297
3387
|
this.cloudScriptService = cloudScriptService;
|
|
3298
3388
|
}
|
|
3299
3389
|
async onEvent(eventName, request, secretInfo, operationRequest, operationResponse) {
|
|
3300
|
-
if (this.cloudScriptService) {
|
|
3301
|
-
this.cloudScriptService.executePost(eventName, request, secretInfo, operationRequest, operationResponse);
|
|
3302
|
-
}
|
|
3303
3390
|
let operationResponseToData = OperationHelper.toDataOperationResponse(operationResponse);
|
|
3304
3391
|
this.eventCallbackCollection.insertOne({
|
|
3305
3392
|
eventName: eventName,
|
|
@@ -3311,6 +3398,9 @@ class PostEventCallbackService {
|
|
|
3311
3398
|
customTags: operationRequest.getParameters().getGNHashtable("CustomTags"),
|
|
3312
3399
|
responseSize: Buffer.byteLength(JSON.stringify(operationResponseToData), "utf-8"),
|
|
3313
3400
|
});
|
|
3401
|
+
if (this.cloudScriptService) {
|
|
3402
|
+
await this.cloudScriptService.executePost(eventName, request, secretInfo, operationRequest, operationResponse);
|
|
3403
|
+
}
|
|
3314
3404
|
if (!this.eventLstDict.has(eventName)) {
|
|
3315
3405
|
return;
|
|
3316
3406
|
}
|
|
@@ -3324,6 +3414,11 @@ class PostEventCallbackService {
|
|
|
3324
3414
|
}
|
|
3325
3415
|
}
|
|
3326
3416
|
}
|
|
3417
|
+
async onAuthenticateEvent(eventName, request, secretInfo, operationRequest, operationResponse) {
|
|
3418
|
+
if (this.cloudScriptService) {
|
|
3419
|
+
await this.cloudScriptService.executeAuthenticate(eventName, request, secretInfo, operationRequest, operationResponse);
|
|
3420
|
+
}
|
|
3421
|
+
}
|
|
3327
3422
|
}
|
|
3328
3423
|
class PreEventCallbackService {
|
|
3329
3424
|
eventDict;
|
|
@@ -17918,6 +18013,12 @@ class LoginByAccountRequestHandler extends LoginBaseRequestHandler {
|
|
|
17918
18013
|
operationResponse.setParameter(GNParameterCode.UserId, masterPlayer.getUserId());
|
|
17919
18014
|
operationResponse.setParameter(GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(masterPlayer, request.infoRequestParam));
|
|
17920
18015
|
this.setupAuthInfo(operationResponse, masterPlayer, secretInfo);
|
|
18016
|
+
await this.gnServer.getPostEventCallbackService().onAuthenticateEvent("system_OnAuthenticateSuccess", {
|
|
18017
|
+
authenticationType: "LoginByAccount",
|
|
18018
|
+
userId: masterPlayer.getUserId(),
|
|
18019
|
+
ipAddress: request.ipAddress,
|
|
18020
|
+
isNewUser: false,
|
|
18021
|
+
}, secretInfo, operationRequest, operationResponse);
|
|
17921
18022
|
await this.gnServer.getPostEventCallbackService().onEvent("authenticate_LoginByAccount", request, secretInfo, operationRequest, operationResponse);
|
|
17922
18023
|
return operationResponse;
|
|
17923
18024
|
}
|
|
@@ -18044,6 +18145,12 @@ class LoginByAndroidDeviceIdRequestHandler extends LoginBaseRequestHandler {
|
|
|
18044
18145
|
operationResponse.setParameter(GNParameterCode.UserId, masterPlayer.getUserId());
|
|
18045
18146
|
operationResponse.setParameter(GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(masterPlayer, request.infoRequestParam));
|
|
18046
18147
|
this.setupAuthInfo(operationResponse, masterPlayer, secretInfo);
|
|
18148
|
+
await this.gnServer.getPostEventCallbackService().onAuthenticateEvent("system_OnAuthenticateSuccess", {
|
|
18149
|
+
authenticationType: "LoginByAndroidDeviceId",
|
|
18150
|
+
userId: masterPlayer.getUserId(),
|
|
18151
|
+
ipAddress: request.ipAddress,
|
|
18152
|
+
isNewUser: operationResponse.getParameters().getBoolean(GNParameterCode.NewlyCreated, false),
|
|
18153
|
+
}, secretInfo, operationRequest, operationResponse);
|
|
18047
18154
|
await this.gnServer.getPostEventCallbackService().onEvent("authenticate_LoginByAndroidDeviceId", request, secretInfo, operationRequest, operationResponse);
|
|
18048
18155
|
return operationResponse;
|
|
18049
18156
|
}
|
|
@@ -18181,6 +18288,12 @@ class LoginByAppleRequestHandler extends LoginBaseRequestHandler {
|
|
|
18181
18288
|
operationResponse.setParameter(GNParameterCode.UserId, masterPlayer.getUserId());
|
|
18182
18289
|
operationResponse.setParameter(GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(masterPlayer, request.infoRequestParam));
|
|
18183
18290
|
this.setupAuthInfo(operationResponse, masterPlayer, secretInfo);
|
|
18291
|
+
await this.gnServer.getPostEventCallbackService().onAuthenticateEvent("system_OnAuthenticateSuccess", {
|
|
18292
|
+
authenticationType: "LoginByApple",
|
|
18293
|
+
userId: masterPlayer.getUserId(),
|
|
18294
|
+
ipAddress: request.ipAddress,
|
|
18295
|
+
isNewUser: operationResponse.getParameters().getBoolean(GNParameterCode.NewlyCreated, false),
|
|
18296
|
+
}, secretInfo, operationRequest, operationResponse);
|
|
18184
18297
|
await this.gnServer.getPostEventCallbackService().onEvent("authenticate_LoginByApple", request, secretInfo, operationRequest, operationResponse);
|
|
18185
18298
|
return operationResponse;
|
|
18186
18299
|
}
|
|
@@ -18307,6 +18420,12 @@ class LoginByCustomDeviceIdRequestHandler extends LoginBaseRequestHandler {
|
|
|
18307
18420
|
operationResponse.setParameter(GNParameterCode.UserId, masterPlayer.getUserId());
|
|
18308
18421
|
operationResponse.setParameter(GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(masterPlayer, request.infoRequestParam));
|
|
18309
18422
|
this.setupAuthInfo(operationResponse, masterPlayer, secretInfo);
|
|
18423
|
+
await this.gnServer.getPostEventCallbackService().onAuthenticateEvent("system_OnAuthenticateSuccess", {
|
|
18424
|
+
authenticationType: "LoginByCustomDeviceId",
|
|
18425
|
+
userId: masterPlayer.getUserId(),
|
|
18426
|
+
ipAddress: request.ipAddress,
|
|
18427
|
+
isNewUser: operationResponse.getParameters().getBoolean(GNParameterCode.NewlyCreated, false),
|
|
18428
|
+
}, secretInfo, operationRequest, operationResponse);
|
|
18310
18429
|
await this.gnServer.getPostEventCallbackService().onEvent("authenticate_LoginByCustomDeviceId", request, secretInfo, operationRequest, operationResponse);
|
|
18311
18430
|
return operationResponse;
|
|
18312
18431
|
}
|
|
@@ -18433,6 +18552,12 @@ class LoginByCustomIdRequestHandler extends LoginBaseRequestHandler {
|
|
|
18433
18552
|
operationResponse.setParameter(GNParameterCode.UserId, masterPlayer.getUserId());
|
|
18434
18553
|
operationResponse.setParameter(GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(masterPlayer, request.infoRequestParam));
|
|
18435
18554
|
this.setupAuthInfo(operationResponse, masterPlayer, secretInfo);
|
|
18555
|
+
await this.gnServer.getPostEventCallbackService().onAuthenticateEvent("system_OnAuthenticateSuccess", {
|
|
18556
|
+
authenticationType: "LoginByCustomId",
|
|
18557
|
+
userId: masterPlayer.getUserId(),
|
|
18558
|
+
ipAddress: request.ipAddress,
|
|
18559
|
+
isNewUser: operationResponse.getParameters().getBoolean(GNParameterCode.NewlyCreated, false),
|
|
18560
|
+
}, secretInfo, operationRequest, operationResponse);
|
|
18436
18561
|
await this.gnServer.getPostEventCallbackService().onEvent("authenticate_LoginByCustomId", request, secretInfo, operationRequest, operationResponse);
|
|
18437
18562
|
return operationResponse;
|
|
18438
18563
|
}
|
|
@@ -18573,6 +18698,12 @@ class LoginByFacebookRequestHandler extends LoginBaseRequestHandler {
|
|
|
18573
18698
|
operationResponse.setParameter(GNParameterCode.UserId, masterPlayer.getUserId());
|
|
18574
18699
|
operationResponse.setParameter(GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(masterPlayer, request.infoRequestParam));
|
|
18575
18700
|
this.setupAuthInfo(operationResponse, masterPlayer, secretInfo);
|
|
18701
|
+
await this.gnServer.getPostEventCallbackService().onAuthenticateEvent("system_OnAuthenticateSuccess", {
|
|
18702
|
+
authenticationType: "LoginByFacebook",
|
|
18703
|
+
userId: masterPlayer.getUserId(),
|
|
18704
|
+
ipAddress: request.ipAddress,
|
|
18705
|
+
isNewUser: operationResponse.getParameters().getBoolean(GNParameterCode.NewlyCreated, false),
|
|
18706
|
+
}, secretInfo, operationRequest, operationResponse);
|
|
18576
18707
|
await this.gnServer.getPostEventCallbackService().onEvent("authenticate_LoginByFacebook", request, secretInfo, operationRequest, operationResponse);
|
|
18577
18708
|
return operationResponse;
|
|
18578
18709
|
}
|
|
@@ -18730,6 +18861,12 @@ class LoginByGenericServiceRequestHandler extends LoginBaseRequestHandler {
|
|
|
18730
18861
|
operationResponse.setParameter(GNParameterCode.UserId, masterPlayer.getUserId());
|
|
18731
18862
|
operationResponse.setParameter(GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(masterPlayer, request.infoRequestParam));
|
|
18732
18863
|
this.setupAuthInfo(operationResponse, masterPlayer, secretInfo);
|
|
18864
|
+
await this.gnServer.getPostEventCallbackService().onAuthenticateEvent("system_OnAuthenticateSuccess", {
|
|
18865
|
+
authenticationType: "LoginByGenericService",
|
|
18866
|
+
userId: masterPlayer.getUserId(),
|
|
18867
|
+
ipAddress: request.ipAddress,
|
|
18868
|
+
isNewUser: operationResponse.getParameters().getBoolean(GNParameterCode.NewlyCreated, false),
|
|
18869
|
+
}, secretInfo, operationRequest, operationResponse);
|
|
18733
18870
|
await this.gnServer.getPostEventCallbackService().onEvent("authenticate_LoginByGenericService", request, secretInfo, operationRequest, operationResponse);
|
|
18734
18871
|
return operationResponse;
|
|
18735
18872
|
}
|
|
@@ -18877,6 +19014,12 @@ class LoginByGoogleRequestHandler extends LoginBaseRequestHandler {
|
|
|
18877
19014
|
operationResponse.setParameter(GNParameterCode.UserId, masterPlayer.getUserId());
|
|
18878
19015
|
operationResponse.setParameter(GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(masterPlayer, request.infoRequestParam));
|
|
18879
19016
|
this.setupAuthInfo(operationResponse, masterPlayer, secretInfo);
|
|
19017
|
+
await this.gnServer.getPostEventCallbackService().onAuthenticateEvent("system_OnAuthenticateSuccess", {
|
|
19018
|
+
authenticationType: "LoginByGoogle",
|
|
19019
|
+
userId: masterPlayer.getUserId(),
|
|
19020
|
+
ipAddress: request.ipAddress,
|
|
19021
|
+
isNewUser: operationResponse.getParameters().getBoolean(GNParameterCode.NewlyCreated, false),
|
|
19022
|
+
}, secretInfo, operationRequest, operationResponse);
|
|
18880
19023
|
await this.gnServer.getPostEventCallbackService().onEvent("authenticate_LoginByGoogle", request, secretInfo, operationRequest, operationResponse);
|
|
18881
19024
|
return operationResponse;
|
|
18882
19025
|
}
|
|
@@ -19017,6 +19160,12 @@ class LoginByGooglePlayGameServiceRequestHandler extends LoginBaseRequestHandler
|
|
|
19017
19160
|
operationResponse.setParameter(GNParameterCode.UserId, masterPlayer.getUserId());
|
|
19018
19161
|
operationResponse.setParameter(GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(masterPlayer, request.infoRequestParam));
|
|
19019
19162
|
this.setupAuthInfo(operationResponse, masterPlayer, secretInfo);
|
|
19163
|
+
await this.gnServer.getPostEventCallbackService().onAuthenticateEvent("system_OnAuthenticateSuccess", {
|
|
19164
|
+
authenticationType: "LoginByGooglePlayGameService",
|
|
19165
|
+
userId: masterPlayer.getUserId(),
|
|
19166
|
+
ipAddress: request.ipAddress,
|
|
19167
|
+
isNewUser: operationResponse.getParameters().getBoolean(GNParameterCode.NewlyCreated, false),
|
|
19168
|
+
}, secretInfo, operationRequest, operationResponse);
|
|
19020
19169
|
await this.gnServer.getPostEventCallbackService().onEvent("authenticate_LoginByGooglePlayGameService", request, secretInfo, operationRequest, operationResponse);
|
|
19021
19170
|
return operationResponse;
|
|
19022
19171
|
}
|
|
@@ -19194,6 +19343,12 @@ class LoginByGameCenterRequestHandler extends LoginBaseRequestHandler {
|
|
|
19194
19343
|
operationResponse.setParameter(GNParameterCode.UserId, masterPlayer.getUserId());
|
|
19195
19344
|
operationResponse.setParameter(GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(masterPlayer, request.infoRequestParam));
|
|
19196
19345
|
this.setupAuthInfo(operationResponse, masterPlayer, secretInfo);
|
|
19346
|
+
await this.gnServer.getPostEventCallbackService().onAuthenticateEvent("system_OnAuthenticateSuccess", {
|
|
19347
|
+
authenticationType: "LoginByGameCenter",
|
|
19348
|
+
userId: masterPlayer.getUserId(),
|
|
19349
|
+
ipAddress: request.ipAddress,
|
|
19350
|
+
isNewUser: operationResponse.getParameters().getBoolean(GNParameterCode.NewlyCreated, false),
|
|
19351
|
+
}, secretInfo, operationRequest, operationResponse);
|
|
19197
19352
|
await this.gnServer.getPostEventCallbackService().onEvent("authenticate_LoginByGameCenter", request, secretInfo, operationRequest, operationResponse);
|
|
19198
19353
|
return operationResponse;
|
|
19199
19354
|
}
|
|
@@ -19320,6 +19475,12 @@ class LoginByiOSDeviceIdRequestHandler extends LoginBaseRequestHandler {
|
|
|
19320
19475
|
operationResponse.setParameter(GNParameterCode.UserId, masterPlayer.getUserId());
|
|
19321
19476
|
operationResponse.setParameter(GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(masterPlayer, request.infoRequestParam));
|
|
19322
19477
|
this.setupAuthInfo(operationResponse, masterPlayer, secretInfo);
|
|
19478
|
+
await this.gnServer.getPostEventCallbackService().onAuthenticateEvent("system_OnAuthenticateSuccess", {
|
|
19479
|
+
authenticationType: "LoginByiOSDeviceId",
|
|
19480
|
+
userId: masterPlayer.getUserId(),
|
|
19481
|
+
ipAddress: request.ipAddress,
|
|
19482
|
+
isNewUser: operationResponse.getParameters().getBoolean(GNParameterCode.NewlyCreated, false),
|
|
19483
|
+
}, secretInfo, operationRequest, operationResponse);
|
|
19323
19484
|
await this.gnServer.getPostEventCallbackService().onEvent("authenticate_LoginByiOSDeviceId", request, secretInfo, operationRequest, operationResponse);
|
|
19324
19485
|
return operationResponse;
|
|
19325
19486
|
}
|
|
@@ -19446,6 +19607,12 @@ class LoginByWindowsPhoneDeviceIdRequestHandler extends LoginBaseRequestHandler
|
|
|
19446
19607
|
operationResponse.setParameter(GNParameterCode.UserId, masterPlayer.getUserId());
|
|
19447
19608
|
operationResponse.setParameter(GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(masterPlayer, request.infoRequestParam));
|
|
19448
19609
|
this.setupAuthInfo(operationResponse, masterPlayer, secretInfo);
|
|
19610
|
+
await this.gnServer.getPostEventCallbackService().onAuthenticateEvent("system_OnAuthenticateSuccess", {
|
|
19611
|
+
authenticationType: "LoginByWindowsPhoneDeviceId",
|
|
19612
|
+
userId: masterPlayer.getUserId(),
|
|
19613
|
+
ipAddress: request.ipAddress,
|
|
19614
|
+
isNewUser: operationResponse.getParameters().getBoolean(GNParameterCode.NewlyCreated, false),
|
|
19615
|
+
}, secretInfo, operationRequest, operationResponse);
|
|
19449
19616
|
await this.gnServer.getPostEventCallbackService().onEvent("authenticate_LoginByWindowsPhoneDeviceId", request, secretInfo, operationRequest, operationResponse);
|
|
19450
19617
|
return operationResponse;
|
|
19451
19618
|
}
|
|
@@ -19555,6 +19722,12 @@ class RegisterAccountRequestHandler extends LoginBaseRequestHandler {
|
|
|
19555
19722
|
masterPlayer.setTsLastLogin(xDatetime.getCurrentMilliseconds());
|
|
19556
19723
|
masterPlayer.saveAsync();
|
|
19557
19724
|
this.setupAuthInfo(operationResponse, masterPlayer, secretInfo);
|
|
19725
|
+
await this.gnServer.getPostEventCallbackService().onAuthenticateEvent("system_OnAuthenticateSuccess", {
|
|
19726
|
+
authenticationType: "RegisterAccount",
|
|
19727
|
+
userId: masterPlayer.getUserId(),
|
|
19728
|
+
ipAddress: request.ipAddress,
|
|
19729
|
+
isNewUser: true,
|
|
19730
|
+
}, secretInfo, operationRequest, operationResponse);
|
|
19558
19731
|
await this.gnServer.getPostEventCallbackService().onEvent("authenticate_RegisterAccount", request, secretInfo, operationRequest, operationResponse);
|
|
19559
19732
|
return operationResponse;
|
|
19560
19733
|
}
|
|
@@ -19681,6 +19854,12 @@ class LoginByEditorDeviceIdRequestHandler extends LoginBaseRequestHandler {
|
|
|
19681
19854
|
operationResponse.setParameter(GNParameterCode.UserId, masterPlayer.getUserId());
|
|
19682
19855
|
operationResponse.setParameter(GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(masterPlayer, request.infoRequestParam));
|
|
19683
19856
|
this.setupAuthInfo(operationResponse, masterPlayer, secretInfo);
|
|
19857
|
+
await this.gnServer.getPostEventCallbackService().onAuthenticateEvent("system_OnAuthenticateSuccess", {
|
|
19858
|
+
authenticationType: "LoginByEditorDeviceId",
|
|
19859
|
+
userId: masterPlayer.getUserId(),
|
|
19860
|
+
ipAddress: request.ipAddress,
|
|
19861
|
+
isNewUser: operationResponse.getParameters().getBoolean(GNParameterCode.NewlyCreated, false),
|
|
19862
|
+
}, secretInfo, operationRequest, operationResponse);
|
|
19684
19863
|
await this.gnServer.getPostEventCallbackService().onEvent("authenticate_LoginByEditorDeviceId", request, secretInfo, operationRequest, operationResponse);
|
|
19685
19864
|
return operationResponse;
|
|
19686
19865
|
}
|
|
@@ -19807,6 +19986,12 @@ class LoginByLinuxDeviceIdRequestHandler extends LoginBaseRequestHandler {
|
|
|
19807
19986
|
operationResponse.setParameter(GNParameterCode.UserId, masterPlayer.getUserId());
|
|
19808
19987
|
operationResponse.setParameter(GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(masterPlayer, request.infoRequestParam));
|
|
19809
19988
|
this.setupAuthInfo(operationResponse, masterPlayer, secretInfo);
|
|
19989
|
+
await this.gnServer.getPostEventCallbackService().onAuthenticateEvent("system_OnAuthenticateSuccess", {
|
|
19990
|
+
authenticationType: "LoginByLinuxDeviceId",
|
|
19991
|
+
userId: masterPlayer.getUserId(),
|
|
19992
|
+
ipAddress: request.ipAddress,
|
|
19993
|
+
isNewUser: operationResponse.getParameters().getBoolean(GNParameterCode.NewlyCreated, false),
|
|
19994
|
+
}, secretInfo, operationRequest, operationResponse);
|
|
19810
19995
|
await this.gnServer.getPostEventCallbackService().onEvent("authenticate_LoginByLinuxDeviceId", request, secretInfo, operationRequest, operationResponse);
|
|
19811
19996
|
return operationResponse;
|
|
19812
19997
|
}
|
|
@@ -19933,6 +20118,12 @@ class LoginByMacOSDeviceIdRequestHandler extends LoginBaseRequestHandler {
|
|
|
19933
20118
|
operationResponse.setParameter(GNParameterCode.UserId, masterPlayer.getUserId());
|
|
19934
20119
|
operationResponse.setParameter(GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(masterPlayer, request.infoRequestParam));
|
|
19935
20120
|
this.setupAuthInfo(operationResponse, masterPlayer, secretInfo);
|
|
20121
|
+
await this.gnServer.getPostEventCallbackService().onAuthenticateEvent("system_OnAuthenticateSuccess", {
|
|
20122
|
+
authenticationType: "LoginByMacOSDeviceId",
|
|
20123
|
+
userId: masterPlayer.getUserId(),
|
|
20124
|
+
ipAddress: request.ipAddress,
|
|
20125
|
+
isNewUser: operationResponse.getParameters().getBoolean(GNParameterCode.NewlyCreated, false),
|
|
20126
|
+
}, secretInfo, operationRequest, operationResponse);
|
|
19936
20127
|
await this.gnServer.getPostEventCallbackService().onEvent("authenticate_LoginByMacOSDeviceId", request, secretInfo, operationRequest, operationResponse);
|
|
19937
20128
|
return operationResponse;
|
|
19938
20129
|
}
|
|
@@ -20059,6 +20250,12 @@ class LoginByWindowsDeviceIdRequestHandler extends LoginBaseRequestHandler {
|
|
|
20059
20250
|
operationResponse.setParameter(GNParameterCode.UserId, masterPlayer.getUserId());
|
|
20060
20251
|
operationResponse.setParameter(GNParameterCode.InfoResponseParameters, this.generateInfoResponseParameters(masterPlayer, request.infoRequestParam));
|
|
20061
20252
|
this.setupAuthInfo(operationResponse, masterPlayer, secretInfo);
|
|
20253
|
+
await this.gnServer.getPostEventCallbackService().onAuthenticateEvent("system_OnAuthenticateSuccess", {
|
|
20254
|
+
authenticationType: "LoginByWindowsDeviceId",
|
|
20255
|
+
userId: masterPlayer.getUserId(),
|
|
20256
|
+
ipAddress: request.ipAddress,
|
|
20257
|
+
isNewUser: operationResponse.getParameters().getBoolean(GNParameterCode.NewlyCreated, false),
|
|
20258
|
+
}, secretInfo, operationRequest, operationResponse);
|
|
20062
20259
|
await this.gnServer.getPostEventCallbackService().onEvent("authenticate_LoginByWindowsDeviceId", request, secretInfo, operationRequest, operationResponse);
|
|
20063
20260
|
return operationResponse;
|
|
20064
20261
|
}
|