gamelet-cli 0.6.2 → 0.6.3

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 (68) hide show
  1. package/LICENSE +0 -0
  2. package/README.md +0 -0
  3. package/assets/common.d.ts +4 -4
  4. package/assets/gitignore.txt +65 -65
  5. package/assets/launch.json +21 -21
  6. package/assets/package.json.twig +22 -22
  7. package/assets/server/greenlock.d/config.json +25 -25
  8. package/assets/server/static/css/style.css +0 -0
  9. package/assets/server/static/js/monitor.js +0 -0
  10. package/assets/server/static/js/test.js +0 -0
  11. package/assets/server/views/error.twig +0 -0
  12. package/assets/server/views/index.twig +0 -0
  13. package/assets/server/views/monitor.twig +0 -0
  14. package/assets/server/views/test.twig +0 -0
  15. package/assets/tsconfig.json.twig +42 -42
  16. package/build/package.json +67 -67
  17. package/build/src/gamelet/download.js +736 -736
  18. package/build/src/gamelet/merges.js +143 -143
  19. package/build/src/gamelet/prepare.js +274 -274
  20. package/build/src/gamelet/upload.js +278 -278
  21. package/build/src/index.js +85 -85
  22. package/build/src/server/Constant.js +9 -9
  23. package/build/src/server/entities/Client.js +77 -77
  24. package/build/src/server/entities/ClientOwner.js +66 -66
  25. package/build/src/server/entities/ClientProject.js +83 -83
  26. package/build/src/server/entities/Gameroom.js +88 -88
  27. package/build/src/server/entities/GameroomBase.js +275 -275
  28. package/build/src/server/entities/Gamezone.js +72 -72
  29. package/build/src/server/entities/ListFilter.js +192 -192
  30. package/build/src/server/entities/Monitor.js +80 -80
  31. package/build/src/server/entities/Player.js +131 -131
  32. package/build/src/server/managers/ApiManager.js +74 -74
  33. package/build/src/server/managers/ClientManager.js +63 -63
  34. package/build/src/server/managers/Database.js +593 -593
  35. package/build/src/server/managers/GameroomManager.js +391 -391
  36. package/build/src/server/managers/ManagerBase.js +16 -16
  37. package/build/src/server/managers/MonitorManager.js +72 -72
  38. package/build/src/server/managers/PlayerManager.js +103 -103
  39. package/build/src/server/managers/SocketManager.js +55 -55
  40. package/build/src/server/managers/UserManager.js +57 -57
  41. package/build/src/server/messages/Message.js +141 -141
  42. package/build/src/server/server.js +109 -109
  43. package/build/src/server/services/ServiceBase.js +24 -24
  44. package/build/src/server/services/clientService.js +23 -23
  45. package/build/src/server/services/gameroomService.js +121 -121
  46. package/build/src/server/services/gltserver.service.js +23 -23
  47. package/build/src/server/services/playerService.js +29 -29
  48. package/build/src/server/startServer.js +32 -32
  49. package/build/src/server/types/BadgeStatus.js +24 -24
  50. package/build/src/server/types/OrderType.js +37 -37
  51. package/build/src/server/types/SubmitType.js +23 -23
  52. package/build/src/server/types/TimeRange.js +25 -25
  53. package/build/src/server/utils/ArrayUtil.js +125 -125
  54. package/build/src/server/utils/IntUtil.js +9 -9
  55. package/build/src/server/utils/ObjectUtil.js +190 -190
  56. package/build/src/server/utils/StringUtil.js +36 -36
  57. package/build/src/server/vo/Database.js +0 -0
  58. package/build/src/server/vo/Gameroom.js +0 -0
  59. package/build/src/server/vo/Gamezone.js +0 -0
  60. package/build/src/server/vo/Player.js +0 -0
  61. package/build/src/server/vo/Response.js +0 -0
  62. package/build/src/server/vo/System.js +0 -0
  63. package/build/src/utils/cli.js +48 -48
  64. package/build/src/utils/file.js +326 -326
  65. package/build/src/utils/init.js +41 -41
  66. package/build/src/utils/log.js +16 -16
  67. package/build/src/utils/net.js +38 -38
  68. package/package.json +2 -2
@@ -1,86 +1,86 @@
1
- #!/usr/bin/env node
2
- "use strict";
3
- /**
4
- * gamelet
5
- * Download project from code.gamelet.com, edit/test in vscode and sync back to server.
6
- *
7
- * @author Haska Su <https://haskasu.com>
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- const cli_1 = require("./utils/cli");
11
- const init_1 = require("./utils/init");
12
- const log_1 = require("./utils/log");
13
- const download_1 = require("./gamelet/download");
14
- const prepare_1 = require("./gamelet/prepare");
15
- const upload_1 = require("./gamelet/upload");
16
- const startServer_1 = require("./server/startServer");
17
- const Constant_1 = require("./server/Constant");
18
- const input = cli_1.cli.input;
19
- const flags = cli_1.cli.flags;
20
- const debug = !!flags.debug;
21
- (async () => {
22
- init_1.init({ clear: Boolean(flags.clear) });
23
- async function runDownload(prepareResult) {
24
- try {
25
- await download_1.download({
26
- token: prepareResult.token,
27
- projectCode: prepareResult.projectCode,
28
- folder: prepareResult.folder,
29
- sourceHandler: prepareResult.sourceHandler,
30
- targetItems: prepareResult.items,
31
- force: prepareResult.force,
32
- debug: debug
33
- });
34
- }
35
- catch (err) {
36
- console.error(err);
37
- }
38
- }
39
- if (input.indexOf('download') == 0) {
40
- let result = await prepare_1.prepare({ command: input[0], tokenFile: input[1], folder: flags.dir, sourceHandler: flags.source, debug: debug });
41
- if (result && result.token && result.projectCode && result.folder) {
42
- if (flags.item) {
43
- result.items = flags.item.split(',');
44
- }
45
- if (flags.force) {
46
- result.force = true;
47
- }
48
- await runDownload(result);
49
- }
50
- }
51
- else if (input.indexOf('merge') == 0) {
52
- let result = await prepare_1.prepare({ command: input[0], tokenFile: null, folder: flags.dir, sourceHandler: 'merge', debug: debug });
53
- if (result && result.token && result.projectCode && result.folder) {
54
- if (flags.item) {
55
- result.items = flags.item.split(',');
56
- }
57
- if (flags.force) {
58
- result.force = true;
59
- }
60
- await runDownload(result);
61
- }
62
- }
63
- else if (input.indexOf('upload') == 0) {
64
- let result = await prepare_1.prepare({ command: input[0], tokenFile: null, folder: flags.dir, sourceHandler: 'merge', debug: debug });
65
- if (result && result.token && result.projectCode && result.folder) {
66
- await upload_1.upload({
67
- token: result.token,
68
- projectCode: result.projectCode,
69
- folder: result.folder,
70
- debug: debug
71
- });
72
- }
73
- }
74
- else if (input.indexOf('help') == 0) {
75
- cli_1.cli.showHelp(0);
76
- }
77
- else if (input.indexOf('server') == 0) {
78
- let result = await prepare_1.prepare({ command: input[0], tokenFile: flags.token, folder: flags.dir, sourceHandler: 'skip', debug: debug });
79
- if (result && result.token && result.projectCode) {
80
- await startServer_1.startServer(result.projectCode, result.folder, Constant_1.Constant.ServerPort);
81
- }
82
- }
83
- debug && log_1.log(flags);
84
- process.exit();
85
- })();
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ /**
4
+ * gamelet
5
+ * Download project from code.gamelet.com, edit/test in vscode and sync back to server.
6
+ *
7
+ * @author Haska Su <https://haskasu.com>
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ const cli_1 = require("./utils/cli");
11
+ const init_1 = require("./utils/init");
12
+ const log_1 = require("./utils/log");
13
+ const download_1 = require("./gamelet/download");
14
+ const prepare_1 = require("./gamelet/prepare");
15
+ const upload_1 = require("./gamelet/upload");
16
+ const startServer_1 = require("./server/startServer");
17
+ const Constant_1 = require("./server/Constant");
18
+ const input = cli_1.cli.input;
19
+ const flags = cli_1.cli.flags;
20
+ const debug = !!flags.debug;
21
+ (async () => {
22
+ init_1.init({ clear: Boolean(flags.clear) });
23
+ async function runDownload(prepareResult) {
24
+ try {
25
+ await download_1.download({
26
+ token: prepareResult.token,
27
+ projectCode: prepareResult.projectCode,
28
+ folder: prepareResult.folder,
29
+ sourceHandler: prepareResult.sourceHandler,
30
+ targetItems: prepareResult.items,
31
+ force: prepareResult.force,
32
+ debug: debug
33
+ });
34
+ }
35
+ catch (err) {
36
+ console.error(err);
37
+ }
38
+ }
39
+ if (input.indexOf('download') == 0) {
40
+ let result = await prepare_1.prepare({ command: input[0], tokenFile: input[1], folder: flags.dir, sourceHandler: flags.source, debug: debug });
41
+ if (result && result.token && result.projectCode && result.folder) {
42
+ if (flags.item) {
43
+ result.items = flags.item.split(',');
44
+ }
45
+ if (flags.force) {
46
+ result.force = true;
47
+ }
48
+ await runDownload(result);
49
+ }
50
+ }
51
+ else if (input.indexOf('merge') == 0) {
52
+ let result = await prepare_1.prepare({ command: input[0], tokenFile: null, folder: flags.dir, sourceHandler: 'merge', debug: debug });
53
+ if (result && result.token && result.projectCode && result.folder) {
54
+ if (flags.item) {
55
+ result.items = flags.item.split(',');
56
+ }
57
+ if (flags.force) {
58
+ result.force = true;
59
+ }
60
+ await runDownload(result);
61
+ }
62
+ }
63
+ else if (input.indexOf('upload') == 0) {
64
+ let result = await prepare_1.prepare({ command: input[0], tokenFile: null, folder: flags.dir, sourceHandler: 'merge', debug: debug });
65
+ if (result && result.token && result.projectCode && result.folder) {
66
+ await upload_1.upload({
67
+ token: result.token,
68
+ projectCode: result.projectCode,
69
+ folder: result.folder,
70
+ debug: debug
71
+ });
72
+ }
73
+ }
74
+ else if (input.indexOf('help') == 0) {
75
+ cli_1.cli.showHelp(0);
76
+ }
77
+ else if (input.indexOf('server') == 0) {
78
+ let result = await prepare_1.prepare({ command: input[0], tokenFile: flags.token, folder: flags.dir, sourceHandler: 'skip', debug: debug });
79
+ if (result && result.token && result.projectCode) {
80
+ await startServer_1.startServer(result.projectCode, result.folder, Constant_1.Constant.ServerPort);
81
+ }
82
+ }
83
+ debug && log_1.log(flags);
84
+ process.exit();
85
+ })();
86
86
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFFQTs7Ozs7R0FLRzs7QUFFSCxxQ0FBa0M7QUFDbEMsdUNBQW9DO0FBQ3BDLHFDQUFrQztBQUNsQyxpREFBOEM7QUFDOUMsK0NBQTRDO0FBQzVDLDZDQUEwQztBQUMxQyxzREFBbUQ7QUFDbkQsZ0RBQTZDO0FBRTdDLE1BQU0sS0FBSyxHQUFHLFNBQUcsQ0FBQyxLQUFLLENBQUM7QUFDeEIsTUFBTSxLQUFLLEdBQUcsU0FBRyxDQUFDLEtBQUssQ0FBQztBQUN4QixNQUFNLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztBQUU1QixDQUFDLEtBQUssSUFBSSxFQUFFO0lBQ1IsV0FBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRXRDLEtBQUssVUFBVSxXQUFXLENBQUMsYUFBYTtRQUNwQyxJQUFJO1lBQ0EsTUFBTSxtQkFBUSxDQUFDO2dCQUNYLEtBQUssRUFBRSxhQUFhLENBQUMsS0FBSztnQkFDMUIsV0FBVyxFQUFFLGFBQWEsQ0FBQyxXQUFXO2dCQUN0QyxNQUFNLEVBQUUsYUFBYSxDQUFDLE1BQU07Z0JBQzVCLGFBQWEsRUFBRSxhQUFhLENBQUMsYUFBYTtnQkFDMUMsV0FBVyxFQUFFLGFBQWEsQ0FBQyxLQUFLO2dCQUNoQyxLQUFLLEVBQUUsYUFBYSxDQUFDLEtBQUs7Z0JBQzFCLEtBQUssRUFBRSxLQUFLO2FBQ2YsQ0FBQyxDQUFDO1NBQ047UUFBQyxPQUFPLEdBQUcsRUFBRTtZQUNWLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDdEI7SUFDTCxDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUNoQyxJQUFJLE1BQU0s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
@@ -1,10 +1,10 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Constant = void 0;
4
- exports.Constant = {
5
- ServerPort: 61701,
6
- ONE_MINUTE: 60000,
7
- ONE_HOUR: 60000 * 60,
8
- ONE_DAY: 60000 * 60 * 24,
9
- };
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Constant = void 0;
4
+ exports.Constant = {
5
+ ServerPort: 61701,
6
+ ONE_MINUTE: 60000,
7
+ ONE_HOUR: 60000 * 60,
8
+ ONE_DAY: 60000 * 60 * 24,
9
+ };
10
10
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29uc3RhbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmVyL0NvbnN0YW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsUUFBUSxHQUFHO0lBRXBCLFVBQVUsRUFBRSxLQUFLO0lBSWpCLFVBQVUsRUFBRSxLQUFLO0lBQ2pCLFFBQVEsRUFBRSxLQUFLLEdBQUcsRUFBRTtJQUNwQixPQUFPLEVBQUUsS0FBSyxHQUFHLEVBQUUsR0FBRyxFQUFFO0NBQzNCLENBQUEifQ==
@@ -1,78 +1,78 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Client = void 0;
4
- const Constant_1 = require("./../Constant");
5
- const PlayerManager_1 = require("./../managers/PlayerManager");
6
- const ArrayUtil_1 = require("./../utils/ArrayUtil");
7
- class Client {
8
- constructor(project, msgVersion) {
9
- this.project = project;
10
- this.msgVersion = msgVersion;
11
- this.players = [];
12
- if (typeof msgVersion === 'number') {
13
- msgVersion = '' + msgVersion;
14
- }
15
- else if (!msgVersion) {
16
- msgVersion = '';
17
- }
18
- this._key = project.code.replace(/\|/g, '/') + '|' + msgVersion.replace(/\|/g, '/');
19
- }
20
- get key() {
21
- return this._key;
22
- }
23
- addPlayer(player) {
24
- ArrayUtil_1.ArrayUtil.addUniqueElement(this.players, player);
25
- }
26
- removePlayer(player) {
27
- ArrayUtil_1.ArrayUtil.removeElement(this.players, player);
28
- }
29
- removePlayerByCode(playerCode) {
30
- let index = this.players.findIndex(p => p.code == playerCode);
31
- if (index == -1) {
32
- return null;
33
- }
34
- let player = this.players[index];
35
- this.players.splice(index, 1);
36
- return player;
37
- }
38
- get playersCount() {
39
- return this.players.length;
40
- }
41
- get playerList() {
42
- return this.players;
43
- }
44
- cleanDisconnectedPlayers() {
45
- this.players = this.players.filter(p => PlayerManager_1.playerManager.getPlayerByCode(p.code));
46
- }
47
- disconnectInactivePlayers() {
48
- let inactiveTime = Date.now() - Constant_1.Constant.ONE_HOUR * 3;
49
- this.players.slice().forEach(p => {
50
- if (p.lastMsgTime < inactiveTime) {
51
- p.disconnect();
52
- }
53
- });
54
- }
55
- getPlayersCount(options) {
56
- if (options) {
57
- let total = 0;
58
- const inGameroom = options.inGameroom;
59
- for (let player of this.players) {
60
- if (inGameroom) {
61
- if (!player.getGameroom() ||
62
- (inGameroom.zone && player.getGameroom().gamezone.code != inGameroom.zone) ||
63
- (inGameroom.code && player.getGameroom().code != inGameroom.code) ||
64
- (inGameroom.states && !inGameroom.states.includes(player.getGameroom().state))) {
65
- continue;
66
- }
67
- }
68
- ++total;
69
- }
70
- return total;
71
- }
72
- else {
73
- return this.playersCount;
74
- }
75
- }
76
- }
77
- exports.Client = Client;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Client = void 0;
4
+ const Constant_1 = require("./../Constant");
5
+ const PlayerManager_1 = require("./../managers/PlayerManager");
6
+ const ArrayUtil_1 = require("./../utils/ArrayUtil");
7
+ class Client {
8
+ constructor(project, msgVersion) {
9
+ this.project = project;
10
+ this.msgVersion = msgVersion;
11
+ this.players = [];
12
+ if (typeof msgVersion === 'number') {
13
+ msgVersion = '' + msgVersion;
14
+ }
15
+ else if (!msgVersion) {
16
+ msgVersion = '';
17
+ }
18
+ this._key = project.code.replace(/\|/g, '/') + '|' + msgVersion.replace(/\|/g, '/');
19
+ }
20
+ get key() {
21
+ return this._key;
22
+ }
23
+ addPlayer(player) {
24
+ ArrayUtil_1.ArrayUtil.addUniqueElement(this.players, player);
25
+ }
26
+ removePlayer(player) {
27
+ ArrayUtil_1.ArrayUtil.removeElement(this.players, player);
28
+ }
29
+ removePlayerByCode(playerCode) {
30
+ let index = this.players.findIndex(p => p.code == playerCode);
31
+ if (index == -1) {
32
+ return null;
33
+ }
34
+ let player = this.players[index];
35
+ this.players.splice(index, 1);
36
+ return player;
37
+ }
38
+ get playersCount() {
39
+ return this.players.length;
40
+ }
41
+ get playerList() {
42
+ return this.players;
43
+ }
44
+ cleanDisconnectedPlayers() {
45
+ this.players = this.players.filter(p => PlayerManager_1.playerManager.getPlayerByCode(p.code));
46
+ }
47
+ disconnectInactivePlayers() {
48
+ let inactiveTime = Date.now() - Constant_1.Constant.ONE_HOUR * 3;
49
+ this.players.slice().forEach(p => {
50
+ if (p.lastMsgTime < inactiveTime) {
51
+ p.disconnect();
52
+ }
53
+ });
54
+ }
55
+ getPlayersCount(options) {
56
+ if (options) {
57
+ let total = 0;
58
+ const inGameroom = options.inGameroom;
59
+ for (let player of this.players) {
60
+ if (inGameroom) {
61
+ if (!player.getGameroom() ||
62
+ (inGameroom.zone && player.getGameroom().gamezone.code != inGameroom.zone) ||
63
+ (inGameroom.code && player.getGameroom().code != inGameroom.code) ||
64
+ (inGameroom.states && !inGameroom.states.includes(player.getGameroom().state))) {
65
+ continue;
66
+ }
67
+ }
68
+ ++total;
69
+ }
70
+ return total;
71
+ }
72
+ else {
73
+ return this.playersCount;
74
+ }
75
+ }
76
+ }
77
+ exports.Client = Client;
78
78
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlcnZlci9lbnRpdGllcy9DbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNENBQXlDO0FBQ3pDLCtEQUE0RDtBQUM1RCxvREFBaUQ7QUFHakQsTUFBYSxNQUFNO0lBTWYsWUFBbUIsT0FBc0IsRUFBUyxVQUFrQjtRQUFqRCxZQUFPLEdBQVAsT0FBTyxDQUFlO1FBQVMsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUY1RCxZQUFPLEdBQWEsRUFBRSxDQUFDO1FBRzNCLElBQUksT0FBTyxVQUFVLEtBQUssUUFBUSxFQUFFO1lBQ2hDLFVBQVUsR0FBRyxFQUFFLEdBQUcsVUFBVSxDQUFDO1NBQ2hDO2FBQU0sSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNwQixVQUFVLEdBQUcsRUFBRSxDQUFBO1NBQ2xCO1FBQ0QsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3hGLENBQUM7SUFFRCxJQUFJLEdBQUc7UUFDSCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUFjO1FBQ3BCLHFCQUFTLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsWUFBWSxDQUFDLE1BQWM7UUFDdkIscUJBQVMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsVUFBa0I7UUFDakMsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLFVBQVUsQ0FBQyxDQUFDO1FBQzlELElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxFQUFFO1lBQ2IsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUNELElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzlCLE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDWixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUVELHdCQUF3QjtRQUNwQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsNkJBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEYsQ0FBQztJQUVELHlCQUF5QjtRQUNyQixJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsbUJBQVEsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzdCLElBQUksQ0FBQyxDQUFDLFdBQVcsR0FBRyxZQUFZLEVBQUU7Z0JBQzlCLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUNsQjtRQUNMLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUVELGVBQWUsQ0FBQyxPQUFzQztRQUNsRCxJQUFJLE9BQU8sRUFBRTtZQUNULElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztZQUNkLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUM7WUFDdEMsS0FBSyxJQUFJLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUM3QixJQUFJLFVBQVUsRUFBRTtvQkFDWixJQUNJLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRTt3QkFDckIsQ0FBQyxVQUFVLENBQUMsSUFBSSxJQUFJLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUM7d0JBQzFFLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUM7d0JBQ2pFLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUNoRjt3QkFDRSxTQUFTO3FCQUNaO2lCQUNKO2dCQUNELEVBQUUsS0FBSyxDQUFDO2FBQ1g7WUFDRCxPQUFPLEtBQUssQ0FBQztTQUNoQjthQUFNO1lBQ0gsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO1NBQzVCO0lBQ0wsQ0FBQztDQUNKO0FBaEZELHdCQWdGQyJ9
@@ -1,67 +1,67 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ClientOwner = void 0;
4
- const ClientProject_1 = require("./ClientProject");
5
- const Constant_1 = require("./../Constant");
6
- const gltserver_service_1 = require("../services/gltserver.service");
7
- class ClientOwner {
8
- constructor(ownername) {
9
- this.ownername = ownername;
10
- this.projects = {};
11
- this.maxPlayers = 5;
12
- this.timeToUpdateMaxPlayers = 0;
13
- }
14
- addProject(project) {
15
- this.projects[project.code] = project;
16
- }
17
- getProject(projectCode) {
18
- let project = this.projects[projectCode];
19
- if (!project) {
20
- project = new ClientProject_1.ClientProject(projectCode, this);
21
- this.projects[projectCode] = project;
22
- }
23
- return project;
24
- }
25
- getMaxPlayers() {
26
- if (Date.now() < this.timeToUpdateMaxPlayers) {
27
- return Promise.resolve(this.maxPlayers);
28
- }
29
- return gltserver_service_1.serverService.getMaxPlayers(this.ownername)
30
- .then(max => {
31
- this.maxPlayers = max;
32
- this.timeToUpdateMaxPlayers = Date.now() + Constant_1.Constant.ONE_MINUTE;
33
- return this.maxPlayers;
34
- });
35
- }
36
- get playerList() {
37
- let list = [];
38
- for (let key in this.projects) {
39
- list = list.concat(this.projects[key].playerList);
40
- }
41
- return list;
42
- }
43
- get playersCount() {
44
- let count = 0;
45
- for (let key in this.projects) {
46
- count += this.projects[key].playersCount;
47
- }
48
- return count;
49
- }
50
- getPlayersCountByProject(project) {
51
- let ownerCount = 0;
52
- let projectCount = 0;
53
- for (let key in this.projects) {
54
- let count = this.projects[key].playersCount;
55
- ownerCount += count;
56
- if (key == project.code) {
57
- projectCount = count;
58
- }
59
- }
60
- return {
61
- ownerCount: ownerCount,
62
- projectCount: projectCount
63
- };
64
- }
65
- }
66
- exports.ClientOwner = ClientOwner;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ClientOwner = void 0;
4
+ const ClientProject_1 = require("./ClientProject");
5
+ const Constant_1 = require("./../Constant");
6
+ const gltserver_service_1 = require("../services/gltserver.service");
7
+ class ClientOwner {
8
+ constructor(ownername) {
9
+ this.ownername = ownername;
10
+ this.projects = {};
11
+ this.maxPlayers = 5;
12
+ this.timeToUpdateMaxPlayers = 0;
13
+ }
14
+ addProject(project) {
15
+ this.projects[project.code] = project;
16
+ }
17
+ getProject(projectCode) {
18
+ let project = this.projects[projectCode];
19
+ if (!project) {
20
+ project = new ClientProject_1.ClientProject(projectCode, this);
21
+ this.projects[projectCode] = project;
22
+ }
23
+ return project;
24
+ }
25
+ getMaxPlayers() {
26
+ if (Date.now() < this.timeToUpdateMaxPlayers) {
27
+ return Promise.resolve(this.maxPlayers);
28
+ }
29
+ return gltserver_service_1.serverService.getMaxPlayers(this.ownername)
30
+ .then(max => {
31
+ this.maxPlayers = max;
32
+ this.timeToUpdateMaxPlayers = Date.now() + Constant_1.Constant.ONE_MINUTE;
33
+ return this.maxPlayers;
34
+ });
35
+ }
36
+ get playerList() {
37
+ let list = [];
38
+ for (let key in this.projects) {
39
+ list = list.concat(this.projects[key].playerList);
40
+ }
41
+ return list;
42
+ }
43
+ get playersCount() {
44
+ let count = 0;
45
+ for (let key in this.projects) {
46
+ count += this.projects[key].playersCount;
47
+ }
48
+ return count;
49
+ }
50
+ getPlayersCountByProject(project) {
51
+ let ownerCount = 0;
52
+ let projectCount = 0;
53
+ for (let key in this.projects) {
54
+ let count = this.projects[key].playersCount;
55
+ ownerCount += count;
56
+ if (key == project.code) {
57
+ projectCount = count;
58
+ }
59
+ }
60
+ return {
61
+ ownerCount: ownerCount,
62
+ projectCount: projectCount
63
+ };
64
+ }
65
+ }
66
+ exports.ClientOwner = ClientOwner;
67
67
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xpZW50T3duZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmVyL2VudGl0aWVzL0NsaWVudE93bmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1EQUFnRDtBQUNoRCw0Q0FBeUM7QUFDekMscUVBQThEO0FBRzlELE1BQWEsV0FBVztJQVFwQixZQUFtQixTQUFpQjtRQUFqQixjQUFTLEdBQVQsU0FBUyxDQUFRO1FBTjVCLGFBQVEsR0FBcUMsRUFBRSxDQUFDO1FBRWhELGVBQVUsR0FBVyxDQUFDLENBQUM7UUFFdkIsMkJBQXNCLEdBQVcsQ0FBQyxDQUFDO0lBSTNDLENBQUM7SUFFRCxVQUFVLENBQUMsT0FBc0I7UUFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDO0lBQzFDLENBQUM7SUFFRCxVQUFVLENBQUMsV0FBbUI7UUFDMUIsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1YsT0FBTyxHQUFHLElBQUksNkJBQWEsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDL0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsR0FBRyxPQUFPLENBQUM7U0FDeEM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDO0lBRUQsYUFBYTtRQUNULElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtZQUMxQyxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQzNDO1FBRUQsT0FBTyxpQ0FBYSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO2FBQzdDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNSLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsbUJBQVEsQ0FBQyxVQUFVLENBQUM7WUFDL0QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFBO0lBQ1YsQ0FBQztJQUVELElBQUksVUFBVTtRQUNWLElBQUksSUFBSSxHQUFhLEVBQUUsQ0FBQztRQUN4QixLQUFLLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDM0IsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUNyRDtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDWixJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDZCxLQUFLLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDM0IsS0FBSyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxDQUFDO1NBQzVDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVELHdCQUF3QixDQUFDLE9BQXNCO1FBQzNDLElBQUksVUFBVSxHQUFXLENBQUMsQ0FBQztRQUMzQixJQUFJLFlBQVksR0FBVyxDQUFDLENBQUM7UUFDN0IsS0FBSyxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQzNCLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxDQUFDO1lBQzVDLFVBQVUsSUFBSSxLQUFLLENBQUE7WUFDbkIsSUFBSSxHQUFHLElBQUksT0FBTyxDQUFDLElBQUksRUFBRTtnQkFDckIsWUFBWSxHQUFHLEtBQUssQ0FBQTthQUN2QjtTQUNKO1FBQ0QsT0FBTztZQUNILFVBQVUsRUFBRSxVQUFVO1lBQ3RCLFlBQVksRUFBRSxZQUFZO1NBQzdCLENBQUM7SUFDTixDQUFDO0NBRUo7QUF0RUQsa0NBc0VDIn0=