gamelet-cli 0.7.12 → 0.7.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/assets/package.json.twig +3 -3
  2. package/assets/tsconfig.json.twig +1 -1
  3. package/build/package.json +67 -67
  4. package/build/src/gamelet/download.js +773 -737
  5. package/build/src/gamelet/merges.js +181 -179
  6. package/build/src/gamelet/prepare.js +276 -277
  7. package/build/src/gamelet/upload.js +280 -279
  8. package/build/src/index.js +86 -86
  9. package/build/src/server/Constant.js +9 -9
  10. package/build/src/server/entities/Client.js +78 -78
  11. package/build/src/server/entities/ClientOwner.js +67 -67
  12. package/build/src/server/entities/ClientProject.js +84 -84
  13. package/build/src/server/entities/Gameroom.js +89 -89
  14. package/build/src/server/entities/GameroomBase.js +276 -276
  15. package/build/src/server/entities/Gamezone.js +73 -73
  16. package/build/src/server/entities/ListFilter.js +193 -193
  17. package/build/src/server/entities/Monitor.js +94 -94
  18. package/build/src/server/entities/Player.js +140 -140
  19. package/build/src/server/managers/ApiManager.js +75 -75
  20. package/build/src/server/managers/ClientManager.js +64 -64
  21. package/build/src/server/managers/Database.js +627 -627
  22. package/build/src/server/managers/GameroomManager.js +392 -392
  23. package/build/src/server/managers/ManagerBase.js +17 -17
  24. package/build/src/server/managers/MonitorManager.js +73 -73
  25. package/build/src/server/managers/PlayerManager.js +108 -108
  26. package/build/src/server/managers/SocketManager.js +60 -60
  27. package/build/src/server/managers/UserManager.js +58 -58
  28. package/build/src/server/messages/Message.js +143 -143
  29. package/build/src/server/server.js +112 -113
  30. package/build/src/server/services/ServiceBase.js +25 -25
  31. package/build/src/server/services/clientService.js +23 -23
  32. package/build/src/server/services/gameroomService.js +121 -121
  33. package/build/src/server/services/gltserver.service.js +23 -23
  34. package/build/src/server/services/playerService.js +32 -32
  35. package/build/src/server/startServer.js +32 -33
  36. package/build/src/server/types/BadgeStatus.js +25 -25
  37. package/build/src/server/types/OrderType.js +38 -38
  38. package/build/src/server/types/SubmitType.js +24 -24
  39. package/build/src/server/types/TimeRange.js +26 -26
  40. package/build/src/server/utils/ArrayUtil.js +126 -126
  41. package/build/src/server/utils/IntUtil.js +9 -9
  42. package/build/src/server/utils/ObjectUtil.js +191 -191
  43. package/build/src/server/utils/StringUtil.js +37 -37
  44. package/build/src/utils/cli.js +53 -53
  45. package/build/src/utils/file.js +350 -337
  46. package/build/src/utils/init.js +57 -42
  47. package/build/src/utils/log.js +18 -17
  48. package/build/src/utils/net.js +43 -39
  49. package/package.json +2 -2
@@ -1,17 +1,17 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ManagerBase = void 0;
4
- const MonitorManager_1 = require("./MonitorManager");
5
- class ManagerBase {
6
- constructor(name) {
7
- this.name = name;
8
- }
9
- designContract(condition, errorMsg) {
10
- if (!condition) {
11
- MonitorManager_1.monitorManager.error('', this.name, errorMsg);
12
- throw new Error(errorMsg);
13
- }
14
- }
15
- }
16
- exports.ManagerBase = ManagerBase;
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWFuYWdlckJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmVyL21hbmFnZXJzL01hbmFnZXJCYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFEQUFrRDtBQUVsRCxNQUFhLFdBQVc7SUFFcEIsWUFBbUIsSUFBWTtRQUFaLFNBQUksR0FBSixJQUFJLENBQVE7SUFFL0IsQ0FBQztJQUVELGNBQWMsQ0FBQyxTQUFjLEVBQUUsUUFBZ0I7UUFDM0MsSUFBRyxDQUFDLFNBQVMsRUFBRTtZQUNYLCtCQUFjLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQzlDLE1BQU0sSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDN0I7SUFDTCxDQUFDO0NBQ0o7QUFaRCxrQ0FZQyJ9
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ManagerBase = void 0;
4
+ const MonitorManager_1 = require("./MonitorManager");
5
+ class ManagerBase {
6
+ constructor(name) {
7
+ this.name = name;
8
+ }
9
+ designContract(condition, errorMsg) {
10
+ if (!condition) {
11
+ MonitorManager_1.monitorManager.error('', this.name, errorMsg);
12
+ throw new Error(errorMsg);
13
+ }
14
+ }
15
+ }
16
+ exports.ManagerBase = ManagerBase;
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWFuYWdlckJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmVyL21hbmFnZXJzL01hbmFnZXJCYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFEQUFrRDtBQUVsRCxNQUFhLFdBQVc7SUFFcEIsWUFBbUIsSUFBWTtRQUFaLFNBQUksR0FBSixJQUFJLENBQVE7SUFFL0IsQ0FBQztJQUVELGNBQWMsQ0FBQyxTQUFjLEVBQUUsUUFBZ0I7UUFDM0MsSUFBRyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ1osK0JBQWMsQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDOUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5QixDQUFDO0lBQ0wsQ0FBQztDQUNKO0FBWkQsa0NBWUMifQ==
@@ -1,73 +1,73 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.monitorManager = void 0;
4
- const ClientManager_1 = require("./ClientManager");
5
- const Monitor_1 = require("./../entities/Monitor");
6
- const Message_1 = require("./../messages/Message");
7
- const StringUtil_1 = require("./../utils/StringUtil");
8
- const gltserver_service_1 = require("../services/gltserver.service");
9
- class MonitorManager {
10
- constructor() {
11
- this.channel = 'monitorCh';
12
- }
13
- initialize(clientCode, io) {
14
- this.monitorIO = io.of('/monitor');
15
- this.monitorIO.on('connection', (socket) => {
16
- socket.on(Message_1.MessageType.LOGIN, (token, cb) => {
17
- gltserver_service_1.serverService.validateAccessTokenForMonitor(token)
18
- .then(user => {
19
- if (this.monitor) {
20
- this.monitor.dispose();
21
- }
22
- ClientManager_1.clientManager.getClientProject(clientCode, true)
23
- .then(project => {
24
- this.monitor = new Monitor_1.Monitor(this.generateMonitorCode(socket), socket, project, user);
25
- this.monitor.initialize();
26
- cb({ data: { user: user } });
27
- });
28
- })
29
- .catch(err => {
30
- cb({ error: 'invalid credential, ' + err });
31
- socket.disconnect();
32
- });
33
- });
34
- });
35
- }
36
- generateMonitorCode(socket) {
37
- return 'CGM' + socket.client.id;
38
- }
39
- _log(projectCode, channel, prefix, data, color, player) {
40
- let msg = Message_1.Message.forMonitorLog(projectCode, channel, prefix, data, color, player);
41
- msg.send(this.monitorIO.to(this.channel));
42
- this.monitor && msg.send(this.monitor.socket);
43
- }
44
- log(projectCode, channel, prefix, data) {
45
- this._log(projectCode, channel, prefix, data, 'black');
46
- }
47
- logIncoming(projectCode, channel, prefix, data, player) {
48
- this._log(projectCode, channel, prefix, data, 'green', player);
49
- }
50
- logOutgoing(projectCode, channel, prefix, data, player) {
51
- this._log(projectCode, channel, prefix, data, 'blue', player);
52
- }
53
- error(projectCode, prefix, err) {
54
- this._log(projectCode, this.channel, prefix, StringUtil_1.StringUtil.errorToString(err), 'red');
55
- }
56
- _event(projectCode, event, data) {
57
- let msg = Message_1.Message.forMonitorEvent(projectCode, event, data);
58
- msg.send(this.monitorIO.to(this.channel));
59
- this.monitor && msg.send(this.monitor.socket);
60
- }
61
- eventPlayerDisconnected(player) {
62
- this._event(player.client.project.code, 'playerDisconnected', {
63
- player: player.toMonitorPlayer()
64
- });
65
- }
66
- eventPlayerConneced(player) {
67
- this._event(player.client.project.code, 'playerConnected', {
68
- player: player.toMonitorPlayer()
69
- });
70
- }
71
- }
72
- exports.monitorManager = new MonitorManager();
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9uaXRvck1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmVyL21hbmFnZXJzL01vbml0b3JNYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1EQUFnRDtBQUNoRCxtREFBZ0Q7QUFDaEQsbURBQTZEO0FBQzdELHNEQUFtRDtBQUVuRCxxRUFBOEQ7QUFHOUQsTUFBTSxjQUFjO0lBQXBCO1FBSVksWUFBTyxHQUFXLFdBQVcsQ0FBQztJQXlFMUMsQ0FBQztJQXJFRyxVQUFVLENBQUMsVUFBa0IsRUFBRSxFQUFtQjtRQUM5QyxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFbkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUMsTUFBdUIsRUFBRSxFQUFFO1lBQ3hELE1BQU0sQ0FBQyxFQUFFLENBQUMscUJBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFhLEVBQUUsRUFBOEIsRUFBRSxFQUFFO2dCQUMzRSxpQ0FBYSxDQUFDLDZCQUE2QixDQUFDLEtBQUssQ0FBQztxQkFDN0MsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUNULElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTt3QkFDZCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO3FCQUMxQjtvQkFDRCw2QkFBYSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUM7eUJBQzNDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRTt3QkFDWixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksaUJBQU8sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQzt3QkFDcEYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQzt3QkFDMUIsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDakMsQ0FBQyxDQUFDLENBQUE7Z0JBQ1YsQ0FBQyxDQUFDO3FCQUNELEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDVCxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsc0JBQXNCLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQztvQkFDNUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUN4QixDQUFDLENBQUMsQ0FBQTtZQUNWLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsTUFBdUI7UUFDdkMsT0FBTyxLQUFLLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVPLElBQUksQ0FBQyxXQUFtQixFQUFFLE9BQWUsRUFBRSxNQUFjLEVBQUUsSUFBUyxFQUFFLEtBQWEsRUFBRSxNQUFlO1FBQ3hHLElBQUksR0FBRyxHQUFHLGlCQUFPLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDbkYsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsT0FBTyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsR0FBRyxDQUFDLFdBQW1CLEVBQUUsT0FBZSxFQUFFLE1BQWMsRUFBRSxJQUFTO1FBQy9ELElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxXQUFXLENBQUMsV0FBbUIsRUFBRSxPQUFlLEVBQUUsTUFBYyxFQUFFLElBQVMsRUFBRSxNQUFlO1FBQ3hGLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsV0FBVyxDQUFDLFdBQW1CLEVBQUUsT0FBZSxFQUFFLE1BQWMsRUFBRSxJQUFTLEVBQUUsTUFBZTtRQUN4RixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFtQixFQUFFLE1BQWMsRUFBRSxHQUFRO1FBQy9DLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLHVCQUFVLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFFTyxNQUFNLENBQUMsV0FBbUIsRUFBRSxLQUFhLEVBQUUsSUFBUztRQUN4RCxJQUFJLEdBQUcsR0FBRyxpQkFBTyxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzVELEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELHVCQUF1QixDQUFDLE1BQWM7UUFDbEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLEVBQUU7WUFDMUQsTUFBTSxFQUFFLE1BQU0sQ0FBQyxlQUFlLEVBQUU7U0FDbkMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELG1CQUFtQixDQUFDLE1BQWM7UUFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLEVBQUU7WUFDdkQsTUFBTSxFQUFFLE1BQU0sQ0FBQyxlQUFlLEVBQUU7U0FDbkMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUVKO0FBRVksUUFBQSxjQUFjLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQyJ9
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.monitorManager = void 0;
4
+ const ClientManager_1 = require("./ClientManager");
5
+ const Monitor_1 = require("./../entities/Monitor");
6
+ const Message_1 = require("./../messages/Message");
7
+ const StringUtil_1 = require("./../utils/StringUtil");
8
+ const gltserver_service_1 = require("../services/gltserver.service");
9
+ class MonitorManager {
10
+ constructor() {
11
+ this.channel = 'monitorCh';
12
+ }
13
+ initialize(clientCode, io) {
14
+ this.monitorIO = io.of('/monitor');
15
+ this.monitorIO.on('connection', (socket) => {
16
+ socket.on(Message_1.MessageType.LOGIN, (token, cb) => {
17
+ gltserver_service_1.serverService.validateAccessTokenForMonitor(token)
18
+ .then(user => {
19
+ if (this.monitor) {
20
+ this.monitor.dispose();
21
+ }
22
+ ClientManager_1.clientManager.getClientProject(clientCode, true)
23
+ .then(project => {
24
+ this.monitor = new Monitor_1.Monitor(this.generateMonitorCode(socket), socket, project, user);
25
+ this.monitor.initialize();
26
+ cb({ data: { user: user } });
27
+ });
28
+ })
29
+ .catch(err => {
30
+ cb({ error: 'invalid credential, ' + err });
31
+ socket.disconnect();
32
+ });
33
+ });
34
+ });
35
+ }
36
+ generateMonitorCode(socket) {
37
+ return 'CGM' + socket.client.id;
38
+ }
39
+ _log(projectCode, channel, prefix, data, color, player) {
40
+ let msg = Message_1.Message.forMonitorLog(projectCode, channel, prefix, data, color, player);
41
+ msg.send(this.monitorIO.to(this.channel));
42
+ this.monitor && msg.send(this.monitor.socket);
43
+ }
44
+ log(projectCode, channel, prefix, data) {
45
+ this._log(projectCode, channel, prefix, data, 'black');
46
+ }
47
+ logIncoming(projectCode, channel, prefix, data, player) {
48
+ this._log(projectCode, channel, prefix, data, 'green', player);
49
+ }
50
+ logOutgoing(projectCode, channel, prefix, data, player) {
51
+ this._log(projectCode, channel, prefix, data, 'blue', player);
52
+ }
53
+ error(projectCode, prefix, err) {
54
+ this._log(projectCode, this.channel, prefix, StringUtil_1.StringUtil.errorToString(err), 'red');
55
+ }
56
+ _event(projectCode, event, data) {
57
+ let msg = Message_1.Message.forMonitorEvent(projectCode, event, data);
58
+ msg.send(this.monitorIO.to(this.channel));
59
+ this.monitor && msg.send(this.monitor.socket);
60
+ }
61
+ eventPlayerDisconnected(player) {
62
+ this._event(player.client.project.code, 'playerDisconnected', {
63
+ player: player.toMonitorPlayer()
64
+ });
65
+ }
66
+ eventPlayerConneced(player) {
67
+ this._event(player.client.project.code, 'playerConnected', {
68
+ player: player.toMonitorPlayer()
69
+ });
70
+ }
71
+ }
72
+ exports.monitorManager = new MonitorManager();
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9uaXRvck1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmVyL21hbmFnZXJzL01vbml0b3JNYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1EQUFnRDtBQUNoRCxtREFBZ0Q7QUFDaEQsbURBQTZEO0FBQzdELHNEQUFtRDtBQUVuRCxxRUFBOEQ7QUFHOUQsTUFBTSxjQUFjO0lBQXBCO1FBSVksWUFBTyxHQUFXLFdBQVcsQ0FBQztJQXlFMUMsQ0FBQztJQXJFRyxVQUFVLENBQUMsVUFBa0IsRUFBRSxFQUFtQjtRQUM5QyxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFbkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUMsTUFBdUIsRUFBRSxFQUFFO1lBQ3hELE1BQU0sQ0FBQyxFQUFFLENBQUMscUJBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFhLEVBQUUsRUFBOEIsRUFBRSxFQUFFO2dCQUMzRSxpQ0FBYSxDQUFDLDZCQUE2QixDQUFDLEtBQUssQ0FBQztxQkFDN0MsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUNULElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO3dCQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7b0JBQzNCLENBQUM7b0JBQ0QsNkJBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDO3lCQUMzQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUU7d0JBQ1osSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLGlCQUFPLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7d0JBQ3BGLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFF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
@@ -1,108 +1,108 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.playerManager = void 0;
4
- const ManagerBase_1 = require("./ManagerBase");
5
- const Player_1 = require("../entities/Player");
6
- const Message_1 = require("../messages/Message");
7
- const ArrayUtil_1 = require("../utils/ArrayUtil");
8
- class PlayerManager extends ManagerBase_1.ManagerBase {
9
- constructor() {
10
- super('PlayerManager');
11
- this.players = {};
12
- this.clientUserMap = {};
13
- }
14
- initialize() {
15
- }
16
- listPlayers() {
17
- return ArrayUtil_1.ArrayUtil.listValuesOfObject(this.players);
18
- }
19
- createPlayer(socket, client, user, networkDelay) {
20
- let playerCode = this.generatePlayerCode(socket, user);
21
- this.designContract(!this.players[playerCode], 'The socket has been assigned to another user');
22
- let player = new Player_1.Player(playerCode, socket, client, user, networkDelay);
23
- this.processDuplicateLoginUser(player);
24
- this.players[player.code] = player;
25
- client.addPlayer(player);
26
- player.on(Player_1.Player.EVENT.DISCONNECTED, () => {
27
- delete this.players[player.code];
28
- (this.clientUserMap[player.clientUserKey] == player) && delete this.clientUserMap[player.clientUserKey];
29
- client.removePlayer(player);
30
- });
31
- return player;
32
- }
33
- getTotalPlayersCount() {
34
- let count = 0;
35
- for (let _key in this.players) {
36
- ++count;
37
- }
38
- return count;
39
- }
40
- getPlayerByCode(code) {
41
- return this.players[code];
42
- }
43
- generatePlayerCode(socket, user) {
44
- return 'DVP' + socket.client.id + '|' + user.username;
45
- }
46
- getPlayerByUsername(username) {
47
- for (let key in this.players) {
48
- let player = this.players[key];
49
- if (player.user.username == username) {
50
- return player;
51
- }
52
- }
53
- return null;
54
- }
55
- processDuplicateLoginUser(player) {
56
- let prevPlayer = this.clientUserMap[player.clientUserKey];
57
- if (prevPlayer && prevPlayer != player) {
58
- prevPlayer.disconnect();
59
- }
60
- this.clientUserMap[player.clientUserKey] = player;
61
- }
62
- updateLocale(player, locale) {
63
- player.setLocale(locale);
64
- return Promise.resolve(locale);
65
- }
66
- updateNetworkDelay(player, networkDelay) {
67
- networkDelay = Math.max(10, networkDelay);
68
- player.setNetworkDelay(networkDelay);
69
- return Promise.resolve(networkDelay);
70
- }
71
- searchPlayers(player, term, length) {
72
- if (length <= 0 || !term || term.length < 2) {
73
- return Promise.resolve([]);
74
- }
75
- let list = [];
76
- for (let key in this.players) {
77
- let p = this.players[key];
78
- if (p.client == player.client && !p.user.guest) {
79
- if (p.user.nickname.includes(term) || p.user.username.includes(term)) {
80
- list.push(p);
81
- if (list.length >= length) {
82
- break;
83
- }
84
- }
85
- }
86
- }
87
- return Promise.resolve(list);
88
- }
89
- sendDataToPlayer(player, playerCode, data) {
90
- let target = this.players[playerCode];
91
- this.designContract(target, 'The player has left the game.');
92
- return target.send(Message_1.Message.forDataToPlayer(player, data));
93
- }
94
- gltReport(player, _zoneCode, _paramInt, _paramStr, _meta, disconnect) {
95
- if (disconnect) {
96
- setTimeout(() => player.disconnect(), 1);
97
- }
98
- player.addCheat();
99
- const room = player.getGameroom();
100
- if (room) {
101
- room.updateBrainer(false);
102
- room.broadcast(Message_1.Message.forPlayerCheated(player.code));
103
- }
104
- return Promise.resolve(1);
105
- }
106
- }
107
- exports.playerManager = new PlayerManager();
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGxheWVyTWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXJ2ZXIvbWFuYWdlcnMvUGxheWVyTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSwrQ0FBNEM7QUFDNUMsK0NBQTRDO0FBQzVDLGlEQUE4QztBQUM5QyxrREFBK0M7QUFFL0MsTUFBTSxhQUFjLFNBQVEseUJBQVc7SUFLbkM7UUFDSSxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7UUFKbkIsWUFBTyxHQUE4QixFQUFFLENBQUM7UUFDeEMsa0JBQWEsR0FBOEIsRUFBRSxDQUFDO0lBSXRELENBQUM7SUFFRCxVQUFVO0lBQ1YsQ0FBQztJQUVELFdBQVc7UUFDUCxPQUFPLHFCQUFTLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxZQUFZLENBQUMsTUFBdUIsRUFBRSxNQUFjLEVBQUUsSUFBYSxFQUFFLFlBQW9CO1FBQ3JGLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsOENBQThDLENBQUMsQ0FBQztRQUMvRixJQUFJLE1BQU0sR0FBRyxJQUFJLGVBQU0sQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLHlCQUF5QixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXZDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUNuQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXpCLE1BQU0sQ0FBQyxFQUFFLENBQUMsZUFBTSxDQUFDLEtB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
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.playerManager = void 0;
4
+ const ManagerBase_1 = require("./ManagerBase");
5
+ const Player_1 = require("../entities/Player");
6
+ const Message_1 = require("../messages/Message");
7
+ const ArrayUtil_1 = require("../utils/ArrayUtil");
8
+ class PlayerManager extends ManagerBase_1.ManagerBase {
9
+ constructor() {
10
+ super('PlayerManager');
11
+ this.players = {};
12
+ this.clientUserMap = {};
13
+ }
14
+ initialize() {
15
+ }
16
+ listPlayers() {
17
+ return ArrayUtil_1.ArrayUtil.listValuesOfObject(this.players);
18
+ }
19
+ createPlayer(socket, client, user, networkDelay) {
20
+ let playerCode = this.generatePlayerCode(socket, user);
21
+ this.designContract(!this.players[playerCode], 'The socket has been assigned to another user');
22
+ let player = new Player_1.Player(playerCode, socket, client, user, networkDelay);
23
+ this.processDuplicateLoginUser(player);
24
+ this.players[player.code] = player;
25
+ client.addPlayer(player);
26
+ player.on(Player_1.Player.EVENT.DISCONNECTED, () => {
27
+ delete this.players[player.code];
28
+ (this.clientUserMap[player.clientUserKey] == player) && delete this.clientUserMap[player.clientUserKey];
29
+ client.removePlayer(player);
30
+ });
31
+ return player;
32
+ }
33
+ getTotalPlayersCount() {
34
+ let count = 0;
35
+ for (let _key in this.players) {
36
+ ++count;
37
+ }
38
+ return count;
39
+ }
40
+ getPlayerByCode(code) {
41
+ return this.players[code];
42
+ }
43
+ generatePlayerCode(socket, user) {
44
+ return 'DVP' + socket.client.id + '|' + user.username;
45
+ }
46
+ getPlayerByUsername(username) {
47
+ for (let key in this.players) {
48
+ let player = this.players[key];
49
+ if (player.user.username == username) {
50
+ return player;
51
+ }
52
+ }
53
+ return null;
54
+ }
55
+ processDuplicateLoginUser(player) {
56
+ let prevPlayer = this.clientUserMap[player.clientUserKey];
57
+ if (prevPlayer && prevPlayer != player) {
58
+ prevPlayer.disconnect();
59
+ }
60
+ this.clientUserMap[player.clientUserKey] = player;
61
+ }
62
+ updateLocale(player, locale) {
63
+ player.setLocale(locale);
64
+ return Promise.resolve(locale);
65
+ }
66
+ updateNetworkDelay(player, networkDelay) {
67
+ networkDelay = Math.max(10, networkDelay);
68
+ player.setNetworkDelay(networkDelay);
69
+ return Promise.resolve(networkDelay);
70
+ }
71
+ searchPlayers(player, term, length) {
72
+ if (length <= 0 || !term || term.length < 2) {
73
+ return Promise.resolve([]);
74
+ }
75
+ let list = [];
76
+ for (let key in this.players) {
77
+ let p = this.players[key];
78
+ if (p.client == player.client && !p.user.guest) {
79
+ if (p.user.nickname.includes(term) || p.user.username.includes(term)) {
80
+ list.push(p);
81
+ if (list.length >= length) {
82
+ break;
83
+ }
84
+ }
85
+ }
86
+ }
87
+ return Promise.resolve(list);
88
+ }
89
+ sendDataToPlayer(player, playerCode, data) {
90
+ let target = this.players[playerCode];
91
+ this.designContract(target, 'The player has left the game.');
92
+ return target.send(Message_1.Message.forDataToPlayer(player, data));
93
+ }
94
+ gltReport(player, _zoneCode, _paramInt, _paramStr, _meta, disconnect) {
95
+ if (disconnect) {
96
+ setTimeout(() => player.disconnect(), 1);
97
+ }
98
+ player.addCheat();
99
+ const room = player.getGameroom();
100
+ if (room) {
101
+ room.updateBrainer(false);
102
+ room.broadcast(Message_1.Message.forPlayerCheated(player.code));
103
+ }
104
+ return Promise.resolve(1);
105
+ }
106
+ }
107
+ exports.playerManager = new PlayerManager();
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGxheWVyTWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXJ2ZXIvbWFuYWdlcnMvUGxheWVyTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSwrQ0FBNEM7QUFDNUMsK0NBQTRDO0FBQzVDLGlEQUE4QztBQUM5QyxrREFBK0M7QUFFL0MsTUFBTSxhQUFjLFNBQVEseUJBQVc7SUFLbkM7UUFDSSxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7UUFKbkIsWUFBTyxHQUE4QixFQUFFLENBQUM7UUFDeEMsa0JBQWEsR0FBOEIsRUFBRSxDQUFDO0lBSXRELENBQUM7SUFFRCxVQUFVO0lBQ1YsQ0FBQztJQUVELFdBQVc7UUFDUCxPQUFPLHFCQUFTLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxZQUFZLENBQUMsTUFBdUIsRUFBRSxNQUFjLEVBQUUsSUFBYSxFQUFFLFlBQW9CO1FBQ3JGLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsOENBQThDLENBQUMsQ0FBQztRQUMvRixJQUFJLE1BQU0sR0FBRyxJQUFJLGVBQU0sQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLHlCQUF5QixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXZDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUNuQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXpCLE1BQU0sQ0FBQyxFQUFFLENBQUMsZUFBTSxDQUFDLEtB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
@@ -1,60 +1,60 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.socketManager = void 0;
4
- const ManagerBase_1 = require("./ManagerBase");
5
- const Message_1 = require("../messages/Message");
6
- const PlayerManager_1 = require("./PlayerManager");
7
- const gltserver_service_1 = require("../services/gltserver.service");
8
- const StringUtil_1 = require("../utils/StringUtil");
9
- const ClientManager_1 = require("./ClientManager");
10
- const MonitorManager_1 = require("./MonitorManager");
11
- class SocketManager extends ManagerBase_1.ManagerBase {
12
- constructor() {
13
- super('SocketManager');
14
- }
15
- initialize(gameIO) {
16
- gameIO.on('connection', (socket) => {
17
- //let player: Player = null;
18
- socket.on(Message_1.MessageType.ECHO, (message, cb) => {
19
- cb({ data: message });
20
- });
21
- socket.on(Message_1.MessageType.LOGIN, (token, msgVersion, networkDelay, cb) => {
22
- this.onLogin(socket, token, msgVersion, networkDelay, '', 'en', cb);
23
- });
24
- socket.on(Message_1.MessageType.LOGIN2, (token, msgVersion, networkDelay, devToken, cb) => {
25
- this.onLogin(socket, token, msgVersion, networkDelay, devToken, 'en', cb);
26
- });
27
- socket.on(Message_1.MessageType.LOGIN3, (token, msgVersion, networkDelay, devToken, locale, cb) => {
28
- this.onLogin(socket, token, msgVersion, networkDelay, devToken, locale, cb);
29
- });
30
- });
31
- }
32
- onLogin(socket, token, msgVersion, networkDelay, _devToken, locale, cb) {
33
- gltserver_service_1.serverService.validateAccessToken(token)
34
- .then(user => {
35
- this.designContract(user, 'no user returned');
36
- if (socket.connected) {
37
- return ClientManager_1.clientManager.getClientByToken(token, msgVersion)
38
- .then(client => {
39
- MonitorManager_1.monitorManager.log(client.project.code, 'player', 'user login', user.username);
40
- let player = PlayerManager_1.playerManager.createPlayer(socket, client, user, networkDelay);
41
- player.setLocale(locale);
42
- cb({ data: player.toVo() });
43
- return user;
44
- });
45
- }
46
- else {
47
- return user;
48
- }
49
- })
50
- .catch(err => {
51
- console.error(err);
52
- if (socket.connected) {
53
- cb({ error: StringUtil_1.StringUtil.errorToString(err) });
54
- socket.disconnect(true);
55
- }
56
- });
57
- }
58
- }
59
- exports.socketManager = new SocketManager();
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU29ja2V0TWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXJ2ZXIvbWFuYWdlcnMvU29ja2V0TWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQ0FBNEM7QUFDNUMsaURBQWtEO0FBQ2xELG1EQUFnRDtBQUNoRCxxRUFBOEQ7QUFDOUQsb0RBQWlEO0FBQ2pELG1EQUFnRDtBQUNoRCxxREFBa0Q7QUFFbEQsTUFBTSxhQUFjLFNBQVEseUJBQVc7SUFFbkM7UUFDSSxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVNLFVBQVUsQ0FBQyxNQUEwQjtRQUN4QyxNQUFNLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDLE1BQXVCLEVBQUUsRUFBRTtZQUNoRCw0QkFBNEI7WUFFNUIsTUFBTSxDQUFDLEVBQUUsQ0FBQyxxQkFBVyxDQUFDLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUE4QixFQUFFLEVBQUU7Z0JBQ3BFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQzFCLENBQUMsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxDQUFDLEVBQUUsQ0FBQyxxQkFBVyxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQWEsRUFBRSxVQUFrQixFQUFFLFlBQW9CLEVBQUUsRUFBOEIsRUFBRSxFQUFFO2dCQUNySCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3hFLENBQUMsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxDQUFDLEVBQUUsQ0FBQyxxQkFBVyxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQWEsRUFBRSxVQUFrQixFQUFFLFlBQW9CLEVBQUUsUUFBZ0IsRUFBRSxFQUE4QixFQUFFLEVBQUU7Z0JBQ3hJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDOUUsQ0FBQyxDQUFDLENBQUM7WUFDSCxNQUFNLENBQUMsRUFBRSxDQUFDLHFCQUFXLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBYSxFQUFFLFVBQWtCLEVBQUUsWUFBb0IsRUFBRSxRQUFnQixFQUFFLE1BQWMsRUFBRSxFQUE4QixFQUFFLEVBQUU7Z0JBQ3hKLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDaEYsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxPQUFPLENBQUMsTUFBdUIsRUFBRSxLQUFhLEVBQUUsVUFBa0IsRUFBRSxZQUFvQixFQUFFLFNBQWlCLEVBQUUsTUFBYyxFQUFFLEVBQThCO1FBQy9KLGlDQUFhLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDO2FBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNULElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLGtCQUFrQixDQUFDLENBQUM7WUFFOUMsSUFBSSxNQUFNLENBQUMsU0FBUyxFQUFFO2dCQUNsQixPQUFPLDZCQUFhLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQztxQkFDbkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFO29CQUNYLCtCQUFjLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUMvRSxJQUFJLE1BQU0sR0FBRyw2QkFBYSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQztvQkFDNUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDekIsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQzVCLE9BQU8sSUFBSSxDQUFDO2dCQUNoQixDQUFDLENBQUMsQ0FBQTthQUNUO2lCQUFNO2dCQUNILE9BQU8sSUFBSSxDQUFDO2FBQ2Y7UUFDTCxDQUFDLENBQUM7YUFDRCxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDVCxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ25CLElBQUksTUFBTSxDQUFDLFNBQVMsRUFBRTtnQkFDbEIsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLHVCQUFVLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDN0MsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUMzQjtRQUNMLENBQUMsQ0FBQyxDQUFBO0lBQ1YsQ0FBQztDQUNKO0FBRVksUUFBQSxhQUFhLEdBQUcsSUFBSSxhQUFhLEVBQUUsQ0FBQyJ9
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.socketManager = void 0;
4
+ const ManagerBase_1 = require("./ManagerBase");
5
+ const Message_1 = require("../messages/Message");
6
+ const PlayerManager_1 = require("./PlayerManager");
7
+ const gltserver_service_1 = require("../services/gltserver.service");
8
+ const StringUtil_1 = require("../utils/StringUtil");
9
+ const ClientManager_1 = require("./ClientManager");
10
+ const MonitorManager_1 = require("./MonitorManager");
11
+ class SocketManager extends ManagerBase_1.ManagerBase {
12
+ constructor() {
13
+ super('SocketManager');
14
+ }
15
+ initialize(gameIO) {
16
+ gameIO.on('connection', (socket) => {
17
+ //let player: Player = null;
18
+ socket.on(Message_1.MessageType.ECHO, (message, cb) => {
19
+ cb({ data: message });
20
+ });
21
+ socket.on(Message_1.MessageType.LOGIN, (token, msgVersion, networkDelay, cb) => {
22
+ this.onLogin(socket, token, msgVersion, networkDelay, '', 'en', cb);
23
+ });
24
+ socket.on(Message_1.MessageType.LOGIN2, (token, msgVersion, networkDelay, devToken, cb) => {
25
+ this.onLogin(socket, token, msgVersion, networkDelay, devToken, 'en', cb);
26
+ });
27
+ socket.on(Message_1.MessageType.LOGIN3, (token, msgVersion, networkDelay, devToken, locale, cb) => {
28
+ this.onLogin(socket, token, msgVersion, networkDelay, devToken, locale, cb);
29
+ });
30
+ });
31
+ }
32
+ onLogin(socket, token, msgVersion, networkDelay, _devToken, locale, cb) {
33
+ gltserver_service_1.serverService.validateAccessToken(token)
34
+ .then(user => {
35
+ this.designContract(user, 'no user returned');
36
+ if (socket.connected) {
37
+ return ClientManager_1.clientManager.getClientByToken(token, msgVersion)
38
+ .then(client => {
39
+ MonitorManager_1.monitorManager.log(client.project.code, 'player', 'user login', user.username);
40
+ let player = PlayerManager_1.playerManager.createPlayer(socket, client, user, networkDelay);
41
+ player.setLocale(locale);
42
+ cb({ data: player.toVo() });
43
+ return user;
44
+ });
45
+ }
46
+ else {
47
+ return user;
48
+ }
49
+ })
50
+ .catch(err => {
51
+ console.error(err);
52
+ if (socket.connected) {
53
+ cb({ error: StringUtil_1.StringUtil.errorToString(err) });
54
+ socket.disconnect(true);
55
+ }
56
+ });
57
+ }
58
+ }
59
+ exports.socketManager = new SocketManager();
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU29ja2V0TWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXJ2ZXIvbWFuYWdlcnMvU29ja2V0TWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQ0FBNEM7QUFDNUMsaURBQWtEO0FBQ2xELG1EQUFnRDtBQUNoRCxxRUFBOEQ7QUFDOUQsb0RBQWlEO0FBQ2pELG1EQUFnRDtBQUNoRCxxREFBa0Q7QUFFbEQsTUFBTSxhQUFjLFNBQVEseUJBQVc7SUFFbkM7UUFDSSxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVNLFVBQVUsQ0FBQyxNQUEwQjtRQUN4QyxNQUFNLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDLE1BQXVCLEVBQUUsRUFBRTtZQUNoRCw0QkFBNEI7WUFFNUIsTUFBTSxDQUFDLEVBQUUsQ0FBQyxxQkFBVyxDQUFDLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUE4QixFQUFFLEVBQUU7Z0JBQ3BFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQzFCLENBQUMsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxDQUFDLEVBQUUsQ0FBQyxxQkFBVyxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQWEsRUFBRSxVQUFrQixFQUFFLFlBQW9CLEVBQUUsRUFBOEIsRUFBRSxFQUFFO2dCQUNySCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3hFLENBQUMsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxDQUFDLEVBQUUsQ0FBQyxxQkFBVyxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQWEsRUFBRSxVQUFrQixFQUFFLFlBQW9CLEVBQUUsUUFBZ0IsRUFBRSxFQUE4QixFQUFFLEVBQUU7Z0JBQ3hJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDOUUsQ0FBQyxDQUFDLENBQUM7WUFDSCxNQUFNLENBQUMsRUFBRSxDQUFDLHFCQUFXLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBYSxFQUFFLFVBQWtCLEVBQUUsWUFBb0IsRUFBRSxRQUFnQixFQUFFLE1BQWMsRUFBRSxFQUE4QixFQUFFLEVBQUU7Z0JBQ3hKLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDaEYsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxPQUFPLENBQUMsTUFBdUIsRUFBRSxLQUFhLEVBQUUsVUFBa0IsRUFBRSxZQUFvQixFQUFFLFNBQWlCLEVBQUUsTUFBYyxFQUFFLEVBQThCO1FBQy9KLGlDQUFhLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDO2FBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNULElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLGtCQUFrQixDQUFDLENBQUM7WUFFOUMsSUFBSSxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ25CLE9BQU8sNkJBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDO3FCQUNuRCxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7b0JBQ1gsK0JBQWMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQy9FLElBQUksTUFBTSxHQUFHLDZCQUFhLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDO29CQUM1RSxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN6QixFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDNUIsT0FBTyxJQUFJLENBQUM7Z0JBQ2hCLENBQUMsQ0FBQyxDQUFBO1lBQ1YsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLE9BQU8sSUFBSSxDQUFDO1lBQ2hCLENBQUM7UUFDTCxDQUFDLENBQUM7YUFDRCxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDVCxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ25CLElBQUksTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNuQixFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsdUJBQVUsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUM3QyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzVCLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQTtJQUNWLENBQUM7Q0FDSjtBQUVZLFFBQUEsYUFBYSxHQUFHLElBQUksYUFBYSxFQUFFLENBQUMifQ==