gamelet-cli 0.6.2 → 0.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/LICENSE +0 -0
- package/README.md +0 -0
- package/assets/common.d.ts +4 -4
- package/assets/gitignore.txt +65 -65
- package/assets/launch.json +21 -21
- package/assets/package.json.twig +22 -22
- package/assets/server/greenlock.d/config.json +25 -25
- package/assets/server/static/css/style.css +0 -0
- package/assets/server/static/js/monitor.js +0 -0
- package/assets/server/static/js/test.js +0 -0
- package/assets/server/views/error.twig +0 -0
- package/assets/server/views/index.twig +0 -0
- package/assets/server/views/monitor.twig +0 -0
- package/assets/server/views/test.twig +0 -0
- package/assets/tsconfig.json.twig +42 -42
- package/build/package.json +67 -67
- package/build/src/gamelet/download.js +736 -736
- package/build/src/gamelet/merges.js +143 -143
- package/build/src/gamelet/prepare.js +274 -274
- package/build/src/gamelet/upload.js +278 -278
- package/build/src/index.js +85 -85
- package/build/src/server/Constant.js +9 -9
- package/build/src/server/entities/Client.js +77 -77
- package/build/src/server/entities/ClientOwner.js +66 -66
- package/build/src/server/entities/ClientProject.js +83 -83
- package/build/src/server/entities/Gameroom.js +88 -88
- package/build/src/server/entities/GameroomBase.js +275 -275
- package/build/src/server/entities/Gamezone.js +72 -72
- package/build/src/server/entities/ListFilter.js +192 -192
- package/build/src/server/entities/Monitor.js +80 -80
- package/build/src/server/entities/Player.js +131 -131
- package/build/src/server/managers/ApiManager.js +74 -74
- package/build/src/server/managers/ClientManager.js +63 -63
- package/build/src/server/managers/Database.js +664 -594
- package/build/src/server/managers/GameroomManager.js +391 -391
- package/build/src/server/managers/ManagerBase.js +16 -16
- package/build/src/server/managers/MonitorManager.js +72 -72
- package/build/src/server/managers/PlayerManager.js +103 -103
- package/build/src/server/managers/SocketManager.js +55 -55
- package/build/src/server/managers/UserManager.js +57 -57
- package/build/src/server/messages/Message.js +141 -141
- package/build/src/server/server.js +109 -109
- package/build/src/server/services/ServiceBase.js +24 -24
- package/build/src/server/services/clientService.js +23 -23
- package/build/src/server/services/gameroomService.js +121 -121
- package/build/src/server/services/gltserver.service.js +23 -23
- package/build/src/server/services/playerService.js +29 -29
- package/build/src/server/startServer.js +32 -32
- package/build/src/server/types/BadgeStatus.js +24 -24
- package/build/src/server/types/OrderType.js +37 -37
- package/build/src/server/types/SubmitType.js +23 -23
- package/build/src/server/types/TimeRange.js +25 -25
- package/build/src/server/utils/ArrayUtil.js +125 -125
- package/build/src/server/utils/IntUtil.js +9 -9
- package/build/src/server/utils/ObjectUtil.js +190 -190
- package/build/src/server/utils/StringUtil.js +36 -36
- package/build/src/server/vo/Database.js +0 -0
- package/build/src/server/vo/Gameroom.js +0 -0
- package/build/src/server/vo/Gamezone.js +0 -0
- package/build/src/server/vo/Player.js +0 -0
- package/build/src/server/vo/Response.js +0 -0
- package/build/src/server/vo/System.js +0 -0
- package/build/src/utils/cli.js +48 -48
- package/build/src/utils/file.js +326 -326
- package/build/src/utils/init.js +41 -41
- package/build/src/utils/log.js +16 -16
- package/build/src/utils/net.js +38 -38
- package/package.json +2 -2
|
@@ -1,81 +1,81 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Monitor = void 0;
|
|
4
|
-
const ClientManager_1 = require("./../managers/ClientManager");
|
|
5
|
-
const Message_1 = require("./../messages/Message");
|
|
6
|
-
const events_1 = require("events");
|
|
7
|
-
const StringUtil_1 = require("../utils/StringUtil");
|
|
8
|
-
const PlayerManager_1 = require("../managers/PlayerManager");
|
|
9
|
-
const gameroomService_1 = require("../services/gameroomService");
|
|
10
|
-
class Monitor extends events_1.EventEmitter {
|
|
11
|
-
constructor(code, socket, project, user) {
|
|
12
|
-
super();
|
|
13
|
-
this.code = code;
|
|
14
|
-
this.socket = socket;
|
|
15
|
-
this.project = project;
|
|
16
|
-
this.user = user;
|
|
17
|
-
}
|
|
18
|
-
initialize() {
|
|
19
|
-
/**
|
|
20
|
-
* this is for monitor client accessing msgserver
|
|
21
|
-
*/
|
|
22
|
-
this.socket.on(Message_1.MessageType.CLIENT_MONITOR_API, (projectCode, api, params, cb) => {
|
|
23
|
-
ClientManager_1.clientManager.getClientProject(projectCode, false)
|
|
24
|
-
.then(project => {
|
|
25
|
-
let func = this['_clientapi_' + api];
|
|
26
|
-
try {
|
|
27
|
-
let result = func.apply(this, [project].concat(params));
|
|
28
|
-
if (result && typeof result === 'object' && typeof result.then === 'function') {
|
|
29
|
-
result.then(data => {
|
|
30
|
-
cb({ data: data });
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
else {
|
|
34
|
-
cb({ data: result });
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
catch (err) {
|
|
38
|
-
cb({ error: StringUtil_1.StringUtil.errorToString(err) });
|
|
39
|
-
}
|
|
40
|
-
});
|
|
41
|
-
});
|
|
42
|
-
this.socket.on('disconnect', () => {
|
|
43
|
-
this.dispose();
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
dispose() {
|
|
47
|
-
if (!this.socket.disconnected) {
|
|
48
|
-
this.socket.disconnect(true);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
// client api --------------------------------------------
|
|
52
|
-
_clientapi_list_players(project) {
|
|
53
|
-
let list = [];
|
|
54
|
-
if (project) {
|
|
55
|
-
project.cleanDisconnectedPlayers();
|
|
56
|
-
list = project.playerList;
|
|
57
|
-
}
|
|
58
|
-
return list.map(player => player.toMonitorPlayer());
|
|
59
|
-
}
|
|
60
|
-
_clientapi_disconnect_player(_project, playerCode) {
|
|
61
|
-
let player = PlayerManager_1.playerManager.getPlayerByCode(playerCode);
|
|
62
|
-
player && player.disconnect();
|
|
63
|
-
}
|
|
64
|
-
_clientapi_data_to_player(_project, playerCode, data) {
|
|
65
|
-
let target = PlayerManager_1.playerManager.getPlayerByCode(playerCode);
|
|
66
|
-
PlayerManager_1.playerManager.designContract(target, 'The player has left the game.');
|
|
67
|
-
return target.send(Message_1.Message.forMonitorDataToPlayer(this, data));
|
|
68
|
-
}
|
|
69
|
-
_clientapi_data_to_project(_project, data) {
|
|
70
|
-
return gameroomService_1.gameroomService._getManager().broadcastInProject(this, _project, data);
|
|
71
|
-
}
|
|
72
|
-
_clientapi_data_to_gamelet(_project, data) {
|
|
73
|
-
gameroomService_1.gameroomService._getManager().designContract(_project.code == 'Server', 'Your monitor does not have the authority to make a Gamelet Broadcast');
|
|
74
|
-
return gameroomService_1.gameroomService._getManager().broadcastInGamelet(this, data);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
exports.Monitor = Monitor;
|
|
78
|
-
Monitor.EVENT = {
|
|
79
|
-
DISCONNECTED: 'disconnected',
|
|
80
|
-
};
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Monitor = void 0;
|
|
4
|
+
const ClientManager_1 = require("./../managers/ClientManager");
|
|
5
|
+
const Message_1 = require("./../messages/Message");
|
|
6
|
+
const events_1 = require("events");
|
|
7
|
+
const StringUtil_1 = require("../utils/StringUtil");
|
|
8
|
+
const PlayerManager_1 = require("../managers/PlayerManager");
|
|
9
|
+
const gameroomService_1 = require("../services/gameroomService");
|
|
10
|
+
class Monitor extends events_1.EventEmitter {
|
|
11
|
+
constructor(code, socket, project, user) {
|
|
12
|
+
super();
|
|
13
|
+
this.code = code;
|
|
14
|
+
this.socket = socket;
|
|
15
|
+
this.project = project;
|
|
16
|
+
this.user = user;
|
|
17
|
+
}
|
|
18
|
+
initialize() {
|
|
19
|
+
/**
|
|
20
|
+
* this is for monitor client accessing msgserver
|
|
21
|
+
*/
|
|
22
|
+
this.socket.on(Message_1.MessageType.CLIENT_MONITOR_API, (projectCode, api, params, cb) => {
|
|
23
|
+
ClientManager_1.clientManager.getClientProject(projectCode, false)
|
|
24
|
+
.then(project => {
|
|
25
|
+
let func = this['_clientapi_' + api];
|
|
26
|
+
try {
|
|
27
|
+
let result = func.apply(this, [project].concat(params));
|
|
28
|
+
if (result && typeof result === 'object' && typeof result.then === 'function') {
|
|
29
|
+
result.then(data => {
|
|
30
|
+
cb({ data: data });
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
cb({ data: result });
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
catch (err) {
|
|
38
|
+
cb({ error: StringUtil_1.StringUtil.errorToString(err) });
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
this.socket.on('disconnect', () => {
|
|
43
|
+
this.dispose();
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
dispose() {
|
|
47
|
+
if (!this.socket.disconnected) {
|
|
48
|
+
this.socket.disconnect(true);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
// client api --------------------------------------------
|
|
52
|
+
_clientapi_list_players(project) {
|
|
53
|
+
let list = [];
|
|
54
|
+
if (project) {
|
|
55
|
+
project.cleanDisconnectedPlayers();
|
|
56
|
+
list = project.playerList;
|
|
57
|
+
}
|
|
58
|
+
return list.map(player => player.toMonitorPlayer());
|
|
59
|
+
}
|
|
60
|
+
_clientapi_disconnect_player(_project, playerCode) {
|
|
61
|
+
let player = PlayerManager_1.playerManager.getPlayerByCode(playerCode);
|
|
62
|
+
player && player.disconnect();
|
|
63
|
+
}
|
|
64
|
+
_clientapi_data_to_player(_project, playerCode, data) {
|
|
65
|
+
let target = PlayerManager_1.playerManager.getPlayerByCode(playerCode);
|
|
66
|
+
PlayerManager_1.playerManager.designContract(target, 'The player has left the game.');
|
|
67
|
+
return target.send(Message_1.Message.forMonitorDataToPlayer(this, data));
|
|
68
|
+
}
|
|
69
|
+
_clientapi_data_to_project(_project, data) {
|
|
70
|
+
return gameroomService_1.gameroomService._getManager().broadcastInProject(this, _project, data);
|
|
71
|
+
}
|
|
72
|
+
_clientapi_data_to_gamelet(_project, data) {
|
|
73
|
+
gameroomService_1.gameroomService._getManager().designContract(_project.code == 'Server', 'Your monitor does not have the authority to make a Gamelet Broadcast');
|
|
74
|
+
return gameroomService_1.gameroomService._getManager().broadcastInGamelet(this, data);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
exports.Monitor = Monitor;
|
|
78
|
+
Monitor.EVENT = {
|
|
79
|
+
DISCONNECTED: 'disconnected',
|
|
80
|
+
};
|
|
81
81
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9uaXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXJ2ZXIvZW50aXRpZXMvTW9uaXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrREFBNEQ7QUFDNUQsbURBQTZEO0FBRTdELG1DQUFzQztBQUN0QyxvREFBaUQ7QUFFakQsNkRBQTBEO0FBQzFELGlFQUE4RDtBQUU5RCxNQUFhLE9BQVEsU0FBUSxxQkFBWTtJQU1yQyxZQUFtQixJQUFZLEVBQVMsTUFBdUIsRUFBUyxPQUFzQixFQUFTLElBQWE7UUFDaEgsS0FBSyxFQUFFLENBQUM7UUFETyxTQUFJLEdBQUosSUFBSSxDQUFRO1FBQVMsV0FBTSxHQUFOLE1BQU0sQ0FBaUI7UUFBUyxZQUFPLEdBQVAsT0FBTyxDQUFlO1FBQVMsU0FBSSxHQUFKLElBQUksQ0FBUztJQUVwSCxDQUFDO0lBRU0sVUFBVTtRQUNiOztXQUVHO1FBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMscUJBQVcsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLFdBQW1CLEVBQUUsR0FBVyxFQUFFLE1BQWEsRUFBRSxFQUE4QixFQUFFLEVBQUU7WUFDL0gsNkJBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDO2lCQUM3QyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ1osSUFBSSxJQUFJLEdBQWEsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUMsQ0FBQztnQkFDL0MsSUFBSTtvQkFDQSxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO29CQUN4RCxJQUFJLE1BQU0sSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksT0FBTyxNQUFNLENBQUMsSUFBSSxLQUFLLFVBQVUsRUFBRTt3QkFDM0UsTUFBTSxDQUFDLElB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
|
|
@@ -1,132 +1,132 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Player = void 0;
|
|
4
|
-
const ArrayUtil_1 = require("./../utils/ArrayUtil");
|
|
5
|
-
const gameroomService_1 = require("../services/gameroomService");
|
|
6
|
-
const StringUtil_1 = require("../utils/StringUtil");
|
|
7
|
-
const events_1 = require("events");
|
|
8
|
-
const playerService_1 = require("../services/playerService");
|
|
9
|
-
const MonitorManager_1 = require("../managers/MonitorManager");
|
|
10
|
-
const clientService_1 = require("../services/clientService");
|
|
11
|
-
class Player extends events_1.EventEmitter {
|
|
12
|
-
constructor(code, socket, client, user, _networkDelay) {
|
|
13
|
-
super();
|
|
14
|
-
this.code = code;
|
|
15
|
-
this.socket = socket;
|
|
16
|
-
this.client = client;
|
|
17
|
-
this.user = user;
|
|
18
|
-
this._networkDelay = _networkDelay;
|
|
19
|
-
this.gamezones = [];
|
|
20
|
-
// timestamp in seconds
|
|
21
|
-
this.loginTime = 0;
|
|
22
|
-
// timestamp in milliseconds
|
|
23
|
-
this._lastMsgTime = 0;
|
|
24
|
-
this._cheats = 0;
|
|
25
|
-
this._lastMsgTime = Date.now();
|
|
26
|
-
this.loginTime = Math.floor(this._lastMsgTime / 1000);
|
|
27
|
-
this.setupServiceCall(gameroomService_1.gameroomService);
|
|
28
|
-
this.setupServiceCall(clientService_1.clientService);
|
|
29
|
-
this.setupServiceCall(playerService_1.playerService);
|
|
30
|
-
MonitorManager_1.monitorManager.eventPlayerConneced(this);
|
|
31
|
-
socket.on('disconnect', () => this.onDisconnected());
|
|
32
|
-
let gameroomManager = gameroomService_1.gameroomService._getManager();
|
|
33
|
-
gameroomManager.enterGamezone(this, gameroomManager.getClientZone(this.client).code);
|
|
34
|
-
}
|
|
35
|
-
onDisconnected() {
|
|
36
|
-
if (this.gameroom) {
|
|
37
|
-
this.gameroom.removePlayer(this);
|
|
38
|
-
}
|
|
39
|
-
this.gamezones.slice().forEach(zone => zone.removePlayer(this));
|
|
40
|
-
this.emit(Player.EVENT.DISCONNECTED, this);
|
|
41
|
-
MonitorManager_1.monitorManager.eventPlayerDisconnected(this);
|
|
42
|
-
}
|
|
43
|
-
addCheat() {
|
|
44
|
-
this._cheats++;
|
|
45
|
-
}
|
|
46
|
-
get cheats() {
|
|
47
|
-
return this._cheats;
|
|
48
|
-
}
|
|
49
|
-
setNetworkDelay(value) {
|
|
50
|
-
this._networkDelay = value;
|
|
51
|
-
}
|
|
52
|
-
get networkDelay() {
|
|
53
|
-
return this._networkDelay;
|
|
54
|
-
}
|
|
55
|
-
get lastMsgTime() {
|
|
56
|
-
return this._lastMsgTime;
|
|
57
|
-
}
|
|
58
|
-
setupServiceCall(service) {
|
|
59
|
-
this.socket.on(service.name, (method, params, cb) => {
|
|
60
|
-
this._lastMsgTime = Date.now();
|
|
61
|
-
service._execute(this, method, params)
|
|
62
|
-
.then(result => {
|
|
63
|
-
cb({ data: result });
|
|
64
|
-
})
|
|
65
|
-
.catch(err => {
|
|
66
|
-
cb({ error: StringUtil_1.StringUtil.errorToString(err) });
|
|
67
|
-
});
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
get clientUserKey() {
|
|
71
|
-
return this.client.project.code + '/' + this.user.username;
|
|
72
|
-
}
|
|
73
|
-
disconnect() {
|
|
74
|
-
if (this.socket.disconnected) {
|
|
75
|
-
this.onDisconnected();
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
this.socket.disconnect(true);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
toVo() {
|
|
82
|
-
let json = {
|
|
83
|
-
code: this.code,
|
|
84
|
-
user: this.user,
|
|
85
|
-
loginTime: this.loginTime,
|
|
86
|
-
networkDelay: this.networkDelay,
|
|
87
|
-
};
|
|
88
|
-
if (this.socket.disconnected) {
|
|
89
|
-
json.disconnected = true;
|
|
90
|
-
}
|
|
91
|
-
return json;
|
|
92
|
-
}
|
|
93
|
-
toMonitorPlayer() {
|
|
94
|
-
return Object.assign(this.toVo(), {
|
|
95
|
-
msgVer: this.client.msgVersion,
|
|
96
|
-
lastMsgTime: this.lastMsgTime
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
send(msg) {
|
|
100
|
-
if (this.socket.connected) {
|
|
101
|
-
return new Promise(resolve => {
|
|
102
|
-
MonitorManager_1.monitorManager.logOutgoing(this.client.project.code, 'player', 'player.send', [this.code, msg.type, msg.params]);
|
|
103
|
-
msg.send(this.socket, response => {
|
|
104
|
-
resolve(response);
|
|
105
|
-
});
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
return Promise.reject('not connected');
|
|
109
|
-
}
|
|
110
|
-
getGameroom() {
|
|
111
|
-
return this.gameroom;
|
|
112
|
-
}
|
|
113
|
-
setGameroom(gameroom) {
|
|
114
|
-
if (this.gameroom) {
|
|
115
|
-
let oldRoom = this.gameroom;
|
|
116
|
-
this.gameroom = null;
|
|
117
|
-
oldRoom.removePlayer(this);
|
|
118
|
-
}
|
|
119
|
-
this.gameroom = gameroom;
|
|
120
|
-
}
|
|
121
|
-
addGamezone(gamezone) {
|
|
122
|
-
ArrayUtil_1.ArrayUtil.addUniqueElement(this.gamezones, gamezone);
|
|
123
|
-
}
|
|
124
|
-
removeGamezone(gamezone) {
|
|
125
|
-
ArrayUtil_1.ArrayUtil.removeElement(this.gamezones, gamezone);
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
exports.Player = Player;
|
|
129
|
-
Player.EVENT = {
|
|
130
|
-
DISCONNECTED: 'disconnected',
|
|
131
|
-
};
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Player = void 0;
|
|
4
|
+
const ArrayUtil_1 = require("./../utils/ArrayUtil");
|
|
5
|
+
const gameroomService_1 = require("../services/gameroomService");
|
|
6
|
+
const StringUtil_1 = require("../utils/StringUtil");
|
|
7
|
+
const events_1 = require("events");
|
|
8
|
+
const playerService_1 = require("../services/playerService");
|
|
9
|
+
const MonitorManager_1 = require("../managers/MonitorManager");
|
|
10
|
+
const clientService_1 = require("../services/clientService");
|
|
11
|
+
class Player extends events_1.EventEmitter {
|
|
12
|
+
constructor(code, socket, client, user, _networkDelay) {
|
|
13
|
+
super();
|
|
14
|
+
this.code = code;
|
|
15
|
+
this.socket = socket;
|
|
16
|
+
this.client = client;
|
|
17
|
+
this.user = user;
|
|
18
|
+
this._networkDelay = _networkDelay;
|
|
19
|
+
this.gamezones = [];
|
|
20
|
+
// timestamp in seconds
|
|
21
|
+
this.loginTime = 0;
|
|
22
|
+
// timestamp in milliseconds
|
|
23
|
+
this._lastMsgTime = 0;
|
|
24
|
+
this._cheats = 0;
|
|
25
|
+
this._lastMsgTime = Date.now();
|
|
26
|
+
this.loginTime = Math.floor(this._lastMsgTime / 1000);
|
|
27
|
+
this.setupServiceCall(gameroomService_1.gameroomService);
|
|
28
|
+
this.setupServiceCall(clientService_1.clientService);
|
|
29
|
+
this.setupServiceCall(playerService_1.playerService);
|
|
30
|
+
MonitorManager_1.monitorManager.eventPlayerConneced(this);
|
|
31
|
+
socket.on('disconnect', () => this.onDisconnected());
|
|
32
|
+
let gameroomManager = gameroomService_1.gameroomService._getManager();
|
|
33
|
+
gameroomManager.enterGamezone(this, gameroomManager.getClientZone(this.client).code);
|
|
34
|
+
}
|
|
35
|
+
onDisconnected() {
|
|
36
|
+
if (this.gameroom) {
|
|
37
|
+
this.gameroom.removePlayer(this);
|
|
38
|
+
}
|
|
39
|
+
this.gamezones.slice().forEach(zone => zone.removePlayer(this));
|
|
40
|
+
this.emit(Player.EVENT.DISCONNECTED, this);
|
|
41
|
+
MonitorManager_1.monitorManager.eventPlayerDisconnected(this);
|
|
42
|
+
}
|
|
43
|
+
addCheat() {
|
|
44
|
+
this._cheats++;
|
|
45
|
+
}
|
|
46
|
+
get cheats() {
|
|
47
|
+
return this._cheats;
|
|
48
|
+
}
|
|
49
|
+
setNetworkDelay(value) {
|
|
50
|
+
this._networkDelay = value;
|
|
51
|
+
}
|
|
52
|
+
get networkDelay() {
|
|
53
|
+
return this._networkDelay;
|
|
54
|
+
}
|
|
55
|
+
get lastMsgTime() {
|
|
56
|
+
return this._lastMsgTime;
|
|
57
|
+
}
|
|
58
|
+
setupServiceCall(service) {
|
|
59
|
+
this.socket.on(service.name, (method, params, cb) => {
|
|
60
|
+
this._lastMsgTime = Date.now();
|
|
61
|
+
service._execute(this, method, params)
|
|
62
|
+
.then(result => {
|
|
63
|
+
cb({ data: result });
|
|
64
|
+
})
|
|
65
|
+
.catch(err => {
|
|
66
|
+
cb({ error: StringUtil_1.StringUtil.errorToString(err) });
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
get clientUserKey() {
|
|
71
|
+
return this.client.project.code + '/' + this.user.username;
|
|
72
|
+
}
|
|
73
|
+
disconnect() {
|
|
74
|
+
if (this.socket.disconnected) {
|
|
75
|
+
this.onDisconnected();
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
this.socket.disconnect(true);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
toVo() {
|
|
82
|
+
let json = {
|
|
83
|
+
code: this.code,
|
|
84
|
+
user: this.user,
|
|
85
|
+
loginTime: this.loginTime,
|
|
86
|
+
networkDelay: this.networkDelay,
|
|
87
|
+
};
|
|
88
|
+
if (this.socket.disconnected) {
|
|
89
|
+
json.disconnected = true;
|
|
90
|
+
}
|
|
91
|
+
return json;
|
|
92
|
+
}
|
|
93
|
+
toMonitorPlayer() {
|
|
94
|
+
return Object.assign(this.toVo(), {
|
|
95
|
+
msgVer: this.client.msgVersion,
|
|
96
|
+
lastMsgTime: this.lastMsgTime
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
send(msg) {
|
|
100
|
+
if (this.socket.connected) {
|
|
101
|
+
return new Promise(resolve => {
|
|
102
|
+
MonitorManager_1.monitorManager.logOutgoing(this.client.project.code, 'player', 'player.send', [this.code, msg.type, msg.params]);
|
|
103
|
+
msg.send(this.socket, response => {
|
|
104
|
+
resolve(response);
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
return Promise.reject('not connected');
|
|
109
|
+
}
|
|
110
|
+
getGameroom() {
|
|
111
|
+
return this.gameroom;
|
|
112
|
+
}
|
|
113
|
+
setGameroom(gameroom) {
|
|
114
|
+
if (this.gameroom) {
|
|
115
|
+
let oldRoom = this.gameroom;
|
|
116
|
+
this.gameroom = null;
|
|
117
|
+
oldRoom.removePlayer(this);
|
|
118
|
+
}
|
|
119
|
+
this.gameroom = gameroom;
|
|
120
|
+
}
|
|
121
|
+
addGamezone(gamezone) {
|
|
122
|
+
ArrayUtil_1.ArrayUtil.addUniqueElement(this.gamezones, gamezone);
|
|
123
|
+
}
|
|
124
|
+
removeGamezone(gamezone) {
|
|
125
|
+
ArrayUtil_1.ArrayUtil.removeElement(this.gamezones, gamezone);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
exports.Player = Player;
|
|
129
|
+
Player.EVENT = {
|
|
130
|
+
DISCONNECTED: 'disconnected',
|
|
131
|
+
};
|
|
132
132
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGxheWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlcnZlci9lbnRpdGllcy9QbGF5ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsb0RBQWlEO0FBQ2pELGlFQUE4RDtBQUc5RCxvREFBaUQ7QUFDakQsbUNBQXNDO0FBQ3RDLDZEQUEwRDtBQUMxRCwrREFBNEQ7QUFDNUQsNkRBQTBEO0FBRzFELE1BQWEsTUFBTyxTQUFRLHFCQUFZO0lBa0JwQyxZQUFtQixJQUFZLEVBQVMsTUFBdUIsRUFBUyxNQUFjLEVBQVMsSUFBYSxFQUFVLGFBQXFCO1FBQ3ZJLEtBQUssRUFBRSxDQUFDO1FBRE8sU0FBSSxHQUFKLElBQUksQ0FBUTtRQUFTLFdBQU0sR0FBTixNQUFNLENBQWlCO1FBQVMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFTLFNBQUksR0FBSixJQUFJLENBQVM7UUFBVSxrQkFBYSxHQUFiLGFBQWEsQ0FBUTtRQVZuSSxjQUFTLEdBQWUsRUFBRSxDQUFDO1FBRW5DLHVCQUF1QjtRQUNmLGNBQVMsR0FBVyxDQUFDLENBQUM7UUFFOUIsNEJBQTRCO1FBQ3BCLGlCQUFZLEdBQVcsQ0FBQyxDQUFDO1FBRXpCLFlBQU8sR0FBVyxDQUFDLENBQUM7UUFLeEIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFFdEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGlDQUFlLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsNkJBQWEsQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyw2QkFBYSxDQUFDLENBQUM7UUFFckMsK0JBQWMsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV6QyxN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
|
|
@@ -1,75 +1,75 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.apiManager = void 0;
|
|
7
|
-
const ManagerBase_1 = require("./ManagerBase");
|
|
8
|
-
const cors_1 = __importDefault(require("cors"));
|
|
9
|
-
const ClientManager_1 = require("./ClientManager");
|
|
10
|
-
const MaxListClientsLength = 100;
|
|
11
|
-
class ApiManager extends ManagerBase_1.ManagerBase {
|
|
12
|
-
constructor() {
|
|
13
|
-
super('ApiManager');
|
|
14
|
-
}
|
|
15
|
-
initialize(app) {
|
|
16
|
-
/**
|
|
17
|
-
* this is for gltserver to access msgserver states
|
|
18
|
-
*/
|
|
19
|
-
app.get('/clientapi/:method/:clientCode', cors_1.default(), (_req, res) => {
|
|
20
|
-
this.callMethod('clientapi_', _req.params.method, this.parseParams(_req.params.clientCode, _req.query.args))
|
|
21
|
-
.then(json => {
|
|
22
|
-
res.json(json);
|
|
23
|
-
})
|
|
24
|
-
.catch(err => {
|
|
25
|
-
res.sendStatus(500).json(err);
|
|
26
|
-
});
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
parseParams(firstParam, paramsString) {
|
|
30
|
-
let params = paramsString && JSON.parse(paramsString);
|
|
31
|
-
if (!Array.isArray(params)) {
|
|
32
|
-
params = [];
|
|
33
|
-
}
|
|
34
|
-
if (firstParam !== null) {
|
|
35
|
-
params.unshift(firstParam);
|
|
36
|
-
}
|
|
37
|
-
return params;
|
|
38
|
-
}
|
|
39
|
-
callMethod(prefix, methodName, params) {
|
|
40
|
-
let method = this[prefix + methodName];
|
|
41
|
-
this.designContract(method && typeof method === 'function', 'This api is not available.');
|
|
42
|
-
return method.apply(this, params);
|
|
43
|
-
}
|
|
44
|
-
clientapi_list_players_count(_clientCode, clientCodes) {
|
|
45
|
-
if (clientCodes.length > MaxListClientsLength) {
|
|
46
|
-
clientCodes = clientCodes.slice(0, MaxListClientsLength);
|
|
47
|
-
}
|
|
48
|
-
let json = {};
|
|
49
|
-
for (let clientCode of clientCodes) {
|
|
50
|
-
let project = ClientManager_1.clientManager.getCachedClientProject(clientCode);
|
|
51
|
-
if (project) {
|
|
52
|
-
json[clientCode] = project.playersCount;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
return Promise.resolve(json);
|
|
56
|
-
}
|
|
57
|
-
clientapi_get_players_count(clientCode, version, options) {
|
|
58
|
-
let project = ClientManager_1.clientManager.getCachedClientProject(clientCode);
|
|
59
|
-
return Promise.resolve({
|
|
60
|
-
count: project ? project.getPlayersCount(version, options) : 0
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
clientapi_list_clients(_clientCode, start, length) {
|
|
64
|
-
length = Math.min(length, MaxListClientsLength);
|
|
65
|
-
let projects = ClientManager_1.clientManager.listProjects().slice(start, start + length);
|
|
66
|
-
let clients = {};
|
|
67
|
-
for (let project of projects) {
|
|
68
|
-
clients[project.code] = project.playersCount;
|
|
69
|
-
;
|
|
70
|
-
}
|
|
71
|
-
return Promise.resolve(clients);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
exports.apiManager = new ApiManager();
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.apiManager = void 0;
|
|
7
|
+
const ManagerBase_1 = require("./ManagerBase");
|
|
8
|
+
const cors_1 = __importDefault(require("cors"));
|
|
9
|
+
const ClientManager_1 = require("./ClientManager");
|
|
10
|
+
const MaxListClientsLength = 100;
|
|
11
|
+
class ApiManager extends ManagerBase_1.ManagerBase {
|
|
12
|
+
constructor() {
|
|
13
|
+
super('ApiManager');
|
|
14
|
+
}
|
|
15
|
+
initialize(app) {
|
|
16
|
+
/**
|
|
17
|
+
* this is for gltserver to access msgserver states
|
|
18
|
+
*/
|
|
19
|
+
app.get('/clientapi/:method/:clientCode', cors_1.default(), (_req, res) => {
|
|
20
|
+
this.callMethod('clientapi_', _req.params.method, this.parseParams(_req.params.clientCode, _req.query.args))
|
|
21
|
+
.then(json => {
|
|
22
|
+
res.json(json);
|
|
23
|
+
})
|
|
24
|
+
.catch(err => {
|
|
25
|
+
res.sendStatus(500).json(err);
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
parseParams(firstParam, paramsString) {
|
|
30
|
+
let params = paramsString && JSON.parse(paramsString);
|
|
31
|
+
if (!Array.isArray(params)) {
|
|
32
|
+
params = [];
|
|
33
|
+
}
|
|
34
|
+
if (firstParam !== null) {
|
|
35
|
+
params.unshift(firstParam);
|
|
36
|
+
}
|
|
37
|
+
return params;
|
|
38
|
+
}
|
|
39
|
+
callMethod(prefix, methodName, params) {
|
|
40
|
+
let method = this[prefix + methodName];
|
|
41
|
+
this.designContract(method && typeof method === 'function', 'This api is not available.');
|
|
42
|
+
return method.apply(this, params);
|
|
43
|
+
}
|
|
44
|
+
clientapi_list_players_count(_clientCode, clientCodes) {
|
|
45
|
+
if (clientCodes.length > MaxListClientsLength) {
|
|
46
|
+
clientCodes = clientCodes.slice(0, MaxListClientsLength);
|
|
47
|
+
}
|
|
48
|
+
let json = {};
|
|
49
|
+
for (let clientCode of clientCodes) {
|
|
50
|
+
let project = ClientManager_1.clientManager.getCachedClientProject(clientCode);
|
|
51
|
+
if (project) {
|
|
52
|
+
json[clientCode] = project.playersCount;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return Promise.resolve(json);
|
|
56
|
+
}
|
|
57
|
+
clientapi_get_players_count(clientCode, version, options) {
|
|
58
|
+
let project = ClientManager_1.clientManager.getCachedClientProject(clientCode);
|
|
59
|
+
return Promise.resolve({
|
|
60
|
+
count: project ? project.getPlayersCount(version, options) : 0
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
clientapi_list_clients(_clientCode, start, length) {
|
|
64
|
+
length = Math.min(length, MaxListClientsLength);
|
|
65
|
+
let projects = ClientManager_1.clientManager.listProjects().slice(start, start + length);
|
|
66
|
+
let clients = {};
|
|
67
|
+
for (let project of projects) {
|
|
68
|
+
clients[project.code] = project.playersCount;
|
|
69
|
+
;
|
|
70
|
+
}
|
|
71
|
+
return Promise.resolve(clients);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
exports.apiManager = new ApiManager();
|
|
75
75
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBpTWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXJ2ZXIvbWFuYWdlcnMvQXBpTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwrQ0FBNEM7QUFFNUMsZ0RBQXdCO0FBQ3hCLG1EQUFnRDtBQUdoRCxNQUFNLG9CQUFvQixHQUFHLEdBQUcsQ0FBQztBQUVqQyxNQUFNLFVBQVcsU0FBUSx5QkFBVztJQUVoQztRQUNJLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQsVUFBVSxDQUFDLEdBQW9CO1FBRTNCOztXQUVHO1FBQ0gsR0FBRyxDQUFDLEdBQUcsQ0FBQyxnQ0FBZ0MsRUFBRSxjQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUM1RCxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBYyxDQUFDLENBQUM7aUJBQ2pILElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDVCxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ25CLENBQUMsQ0FBQztpQkFDRCxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ1QsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbEMsQ0FBQyxDQUFDLENBQUM7UUFDWCxDQUFDLENBQUMsQ0FBQztJQUVQLENBQUM7SUFFTyxXQUFXLENBQUMsVUFBZSxFQUFFLFlBQW9CO1FBQ3JELElBQUksTUFBTSxHQUFVLFlBQVksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FB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
|