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.
- 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 +593 -593
- 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,84 +1,84 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ClientProject = void 0;
|
|
4
|
-
const Constant_1 = require("./../Constant");
|
|
5
|
-
const Client_1 = require("./Client");
|
|
6
|
-
class ClientProject {
|
|
7
|
-
constructor(code, owner) {
|
|
8
|
-
this.code = code;
|
|
9
|
-
this.owner = owner;
|
|
10
|
-
this.clients = {};
|
|
11
|
-
autoDisconnectInactivePlayerLoop(this);
|
|
12
|
-
}
|
|
13
|
-
getClient(msgVersion) {
|
|
14
|
-
let client = this.clients[msgVersion];
|
|
15
|
-
if (!client) {
|
|
16
|
-
client = new Client_1.Client(this, msgVersion);
|
|
17
|
-
this.clients[msgVersion] = client;
|
|
18
|
-
}
|
|
19
|
-
return client;
|
|
20
|
-
}
|
|
21
|
-
listClients() {
|
|
22
|
-
let list = [];
|
|
23
|
-
for (let key in this.clients) {
|
|
24
|
-
let client = this.clients[key];
|
|
25
|
-
if (client.playersCount) {
|
|
26
|
-
list.push(client);
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
delete this.clients[key];
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
return list;
|
|
33
|
-
}
|
|
34
|
-
removePlayerByCode(playerCode) {
|
|
35
|
-
for (let key in this.clients) {
|
|
36
|
-
let player = this.clients[key].removePlayerByCode(playerCode);
|
|
37
|
-
if (player) {
|
|
38
|
-
return player;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
return null;
|
|
42
|
-
}
|
|
43
|
-
get playerList() {
|
|
44
|
-
let list = [];
|
|
45
|
-
for (let key in this.clients) {
|
|
46
|
-
list = list.concat(this.clients[key].playerList);
|
|
47
|
-
}
|
|
48
|
-
return list;
|
|
49
|
-
}
|
|
50
|
-
get playersCount() {
|
|
51
|
-
let count = 0;
|
|
52
|
-
for (let key in this.clients) {
|
|
53
|
-
count += this.clients[key].playersCount;
|
|
54
|
-
}
|
|
55
|
-
return count;
|
|
56
|
-
}
|
|
57
|
-
cleanDisconnectedPlayers() {
|
|
58
|
-
for (let key in this.clients) {
|
|
59
|
-
this.clients[key].cleanDisconnectedPlayers();
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
getPlayersCount(version, options) {
|
|
63
|
-
if (version) {
|
|
64
|
-
const client = this.getClient(version);
|
|
65
|
-
return client ? client.getPlayersCount(options) : 0;
|
|
66
|
-
}
|
|
67
|
-
else if (options) {
|
|
68
|
-
let total = 0;
|
|
69
|
-
for (let key in this.clients) {
|
|
70
|
-
total += this.clients[key].getPlayersCount(options);
|
|
71
|
-
}
|
|
72
|
-
return total;
|
|
73
|
-
}
|
|
74
|
-
else {
|
|
75
|
-
return this.playersCount;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
exports.ClientProject = ClientProject;
|
|
80
|
-
function autoDisconnectInactivePlayerLoop(project) {
|
|
81
|
-
setTimeout(autoDisconnectInactivePlayerLoop, Constant_1.Constant.ONE_HOUR * 2, project);
|
|
82
|
-
project.listClients().slice().forEach(client => client.disconnectInactivePlayers());
|
|
83
|
-
}
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ClientProject = void 0;
|
|
4
|
+
const Constant_1 = require("./../Constant");
|
|
5
|
+
const Client_1 = require("./Client");
|
|
6
|
+
class ClientProject {
|
|
7
|
+
constructor(code, owner) {
|
|
8
|
+
this.code = code;
|
|
9
|
+
this.owner = owner;
|
|
10
|
+
this.clients = {};
|
|
11
|
+
autoDisconnectInactivePlayerLoop(this);
|
|
12
|
+
}
|
|
13
|
+
getClient(msgVersion) {
|
|
14
|
+
let client = this.clients[msgVersion];
|
|
15
|
+
if (!client) {
|
|
16
|
+
client = new Client_1.Client(this, msgVersion);
|
|
17
|
+
this.clients[msgVersion] = client;
|
|
18
|
+
}
|
|
19
|
+
return client;
|
|
20
|
+
}
|
|
21
|
+
listClients() {
|
|
22
|
+
let list = [];
|
|
23
|
+
for (let key in this.clients) {
|
|
24
|
+
let client = this.clients[key];
|
|
25
|
+
if (client.playersCount) {
|
|
26
|
+
list.push(client);
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
delete this.clients[key];
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return list;
|
|
33
|
+
}
|
|
34
|
+
removePlayerByCode(playerCode) {
|
|
35
|
+
for (let key in this.clients) {
|
|
36
|
+
let player = this.clients[key].removePlayerByCode(playerCode);
|
|
37
|
+
if (player) {
|
|
38
|
+
return player;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
get playerList() {
|
|
44
|
+
let list = [];
|
|
45
|
+
for (let key in this.clients) {
|
|
46
|
+
list = list.concat(this.clients[key].playerList);
|
|
47
|
+
}
|
|
48
|
+
return list;
|
|
49
|
+
}
|
|
50
|
+
get playersCount() {
|
|
51
|
+
let count = 0;
|
|
52
|
+
for (let key in this.clients) {
|
|
53
|
+
count += this.clients[key].playersCount;
|
|
54
|
+
}
|
|
55
|
+
return count;
|
|
56
|
+
}
|
|
57
|
+
cleanDisconnectedPlayers() {
|
|
58
|
+
for (let key in this.clients) {
|
|
59
|
+
this.clients[key].cleanDisconnectedPlayers();
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
getPlayersCount(version, options) {
|
|
63
|
+
if (version) {
|
|
64
|
+
const client = this.getClient(version);
|
|
65
|
+
return client ? client.getPlayersCount(options) : 0;
|
|
66
|
+
}
|
|
67
|
+
else if (options) {
|
|
68
|
+
let total = 0;
|
|
69
|
+
for (let key in this.clients) {
|
|
70
|
+
total += this.clients[key].getPlayersCount(options);
|
|
71
|
+
}
|
|
72
|
+
return total;
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
return this.playersCount;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
exports.ClientProject = ClientProject;
|
|
80
|
+
function autoDisconnectInactivePlayerLoop(project) {
|
|
81
|
+
setTimeout(autoDisconnectInactivePlayerLoop, Constant_1.Constant.ONE_HOUR * 2, project);
|
|
82
|
+
project.listClients().slice().forEach(client => client.disconnectInactivePlayers());
|
|
83
|
+
}
|
|
84
84
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xpZW50UHJvamVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXJ2ZXIvZW50aXRpZXMvQ2xpZW50UHJvamVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw0Q0FBeUM7QUFDekMscUNBQWdFO0FBS2hFLE1BQWEsYUFBYTtJQUl0QixZQUFtQixJQUFZLEVBQVMsS0FBa0I7UUFBdkMsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUFTLFVBQUssR0FBTCxLQUFLLENBQWE7UUFGbEQsWUFBTyxHQUE4QixFQUFFLENBQUM7UUFHNUMsZ0NBQWdDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELFNBQVMsQ0FBQyxVQUFrQjtRQUN4QixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDVCxNQUFNLEdBQUcsSUFBSSxlQUFNLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ3RDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsTUFBTSxDQUFDO1NBQ3JDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLElBQUksR0FBYSxFQUFFLENBQUM7UUFDeEIsS0FBSyxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQzFCLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDL0IsSUFBSSxNQUFNLENBQUMsWUFBWSxFQUFFO2dCQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ3JCO2lCQUFNO2dCQUNILE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUM1QjtTQUNKO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELGtCQUFrQixDQUFDLFVBQWtCO1FBQ2pDLEtBQUssSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUMxQixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzlELElBQUksTUFBTSxFQUFFO2dCQUNSLE9BQU8sTUFBTSxDQUFDO2FBQ2pCO1NBQ0o7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1YsSUFBSSxJQUFJLEdBQWEsRUFBRSxDQUFDO1FBQ3hCLEtBQUssSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUMxQixJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ3BEO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELElBQUksWUFBWTtRQUNaLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNkLEtBQUssSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUMxQixLQUFLLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUM7U0FDM0M7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQsd0JBQXdCO1FBQ3BCLEtBQUssSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUMxQixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLHdCQUF3QixFQUFFLENBQUM7U0FDaEQ7SUFDTCxDQUFDO0lBRUQsZUFBZSxDQUFDLE9BQWdCLEVBQUUsT0FBc0M7UUFDcEUsSUFBSSxPQUFPLEVBQUU7WUFDVCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3ZDLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDdkQ7YUFBTSxJQUFJLE9BQU8sRUFBRTtZQUNoQixJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7WUFDZCxLQUFLLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQzFCLEtBQUssSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUN2RDtZQUNELE9BQU8sS0FBSyxDQUFDO1NBQ2hCO2FBQU07WUFDSCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7U0FDNUI7SUFDTCxDQUFDO0NBQ0o7QUE1RUQsc0NBNEVDO0FBRUQsU0FBUyxnQ0FBZ0MsQ0FBQyxPQUFzQjtJQUM1RCxVQUFVLENBQUMsZ0NBQWdDLEVBQUUsbUJBQVEsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzdFLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMseUJBQXlCLEVBQUUsQ0FBQyxDQUFDO0FBQ3hGLENBQUMifQ==
|
|
@@ -1,89 +1,89 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Gameroom = exports.GameroomState = void 0;
|
|
4
|
-
const GameroomBase_1 = require("./GameroomBase");
|
|
5
|
-
var GameroomState;
|
|
6
|
-
(function (GameroomState) {
|
|
7
|
-
GameroomState[GameroomState["OPEN"] = 0] = "OPEN";
|
|
8
|
-
GameroomState[GameroomState["LOCKED"] = 1] = "LOCKED";
|
|
9
|
-
GameroomState[GameroomState["OVER"] = 2] = "OVER";
|
|
10
|
-
})(GameroomState = exports.GameroomState || (exports.GameroomState = {}));
|
|
11
|
-
class Gameroom extends GameroomBase_1.GameroomBase {
|
|
12
|
-
constructor(server, client, code, creator, gamezone, name, password, maxPlayers, state, stateJson, allowGuest) {
|
|
13
|
-
super('gameroom', code, server, client, stateJson);
|
|
14
|
-
this.creator = creator;
|
|
15
|
-
this.gamezone = gamezone;
|
|
16
|
-
this.name = name;
|
|
17
|
-
this.password = password;
|
|
18
|
-
this.maxPlayers = maxPlayers;
|
|
19
|
-
this.state = state;
|
|
20
|
-
this.allowGuest = allowGuest;
|
|
21
|
-
this.brainer = creator;
|
|
22
|
-
}
|
|
23
|
-
get monitorChannel() {
|
|
24
|
-
return `(room) ${this.code}`;
|
|
25
|
-
}
|
|
26
|
-
dispose() {
|
|
27
|
-
this.gamezone.removeGameroom(this);
|
|
28
|
-
super.dispose();
|
|
29
|
-
}
|
|
30
|
-
addPlayer(player) {
|
|
31
|
-
if (this.playersCount >= this.maxPlayers) {
|
|
32
|
-
throw new Error('The number of players has reached the limit of the gameroom size.');
|
|
33
|
-
}
|
|
34
|
-
if (super.addPlayer(player)) {
|
|
35
|
-
player.setGameroom(this);
|
|
36
|
-
return true;
|
|
37
|
-
}
|
|
38
|
-
return false;
|
|
39
|
-
}
|
|
40
|
-
removePlayer(player) {
|
|
41
|
-
if (player.getGameroom() == this) {
|
|
42
|
-
player.setGameroom(null);
|
|
43
|
-
}
|
|
44
|
-
if (super.removePlayer(player)) {
|
|
45
|
-
if (!this.playersCount) {
|
|
46
|
-
this.dispose();
|
|
47
|
-
}
|
|
48
|
-
return true;
|
|
49
|
-
}
|
|
50
|
-
return false;
|
|
51
|
-
}
|
|
52
|
-
toVo() {
|
|
53
|
-
const json = {
|
|
54
|
-
code: this.code,
|
|
55
|
-
creator: this.creator.toVo(),
|
|
56
|
-
name: this.name,
|
|
57
|
-
zoneCode: this.gamezone.code,
|
|
58
|
-
maxPlayers: this.maxPlayers,
|
|
59
|
-
allowGuest: this.allowGuest,
|
|
60
|
-
createTime: this.createTime,
|
|
61
|
-
};
|
|
62
|
-
this.password && (json.pwd = 1);
|
|
63
|
-
return json;
|
|
64
|
-
}
|
|
65
|
-
toStatusVo() {
|
|
66
|
-
return {
|
|
67
|
-
state: this.state,
|
|
68
|
-
stateJson: this.stateJson,
|
|
69
|
-
players: this.playersCount,
|
|
70
|
-
ping: this.getPing(),
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
toAndStatusVo() {
|
|
74
|
-
return {
|
|
75
|
-
room: this.toVo(),
|
|
76
|
-
status: this.toStatusVo()
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
toFullVo() {
|
|
80
|
-
return {
|
|
81
|
-
room: this.toVo(),
|
|
82
|
-
status: this.toStatusVo(),
|
|
83
|
-
brainer: this.getBrainer().code,
|
|
84
|
-
playerStates: this.playerStates
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
exports.Gameroom = Gameroom;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Gameroom = exports.GameroomState = void 0;
|
|
4
|
+
const GameroomBase_1 = require("./GameroomBase");
|
|
5
|
+
var GameroomState;
|
|
6
|
+
(function (GameroomState) {
|
|
7
|
+
GameroomState[GameroomState["OPEN"] = 0] = "OPEN";
|
|
8
|
+
GameroomState[GameroomState["LOCKED"] = 1] = "LOCKED";
|
|
9
|
+
GameroomState[GameroomState["OVER"] = 2] = "OVER";
|
|
10
|
+
})(GameroomState = exports.GameroomState || (exports.GameroomState = {}));
|
|
11
|
+
class Gameroom extends GameroomBase_1.GameroomBase {
|
|
12
|
+
constructor(server, client, code, creator, gamezone, name, password, maxPlayers, state, stateJson, allowGuest) {
|
|
13
|
+
super('gameroom', code, server, client, stateJson);
|
|
14
|
+
this.creator = creator;
|
|
15
|
+
this.gamezone = gamezone;
|
|
16
|
+
this.name = name;
|
|
17
|
+
this.password = password;
|
|
18
|
+
this.maxPlayers = maxPlayers;
|
|
19
|
+
this.state = state;
|
|
20
|
+
this.allowGuest = allowGuest;
|
|
21
|
+
this.brainer = creator;
|
|
22
|
+
}
|
|
23
|
+
get monitorChannel() {
|
|
24
|
+
return `(room) ${this.code}`;
|
|
25
|
+
}
|
|
26
|
+
dispose() {
|
|
27
|
+
this.gamezone.removeGameroom(this);
|
|
28
|
+
super.dispose();
|
|
29
|
+
}
|
|
30
|
+
addPlayer(player) {
|
|
31
|
+
if (this.playersCount >= this.maxPlayers) {
|
|
32
|
+
throw new Error('The number of players has reached the limit of the gameroom size.');
|
|
33
|
+
}
|
|
34
|
+
if (super.addPlayer(player)) {
|
|
35
|
+
player.setGameroom(this);
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
removePlayer(player) {
|
|
41
|
+
if (player.getGameroom() == this) {
|
|
42
|
+
player.setGameroom(null);
|
|
43
|
+
}
|
|
44
|
+
if (super.removePlayer(player)) {
|
|
45
|
+
if (!this.playersCount) {
|
|
46
|
+
this.dispose();
|
|
47
|
+
}
|
|
48
|
+
return true;
|
|
49
|
+
}
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
toVo() {
|
|
53
|
+
const json = {
|
|
54
|
+
code: this.code,
|
|
55
|
+
creator: this.creator.toVo(),
|
|
56
|
+
name: this.name,
|
|
57
|
+
zoneCode: this.gamezone.code,
|
|
58
|
+
maxPlayers: this.maxPlayers,
|
|
59
|
+
allowGuest: this.allowGuest,
|
|
60
|
+
createTime: this.createTime,
|
|
61
|
+
};
|
|
62
|
+
this.password && (json.pwd = 1);
|
|
63
|
+
return json;
|
|
64
|
+
}
|
|
65
|
+
toStatusVo() {
|
|
66
|
+
return {
|
|
67
|
+
state: this.state,
|
|
68
|
+
stateJson: this.stateJson,
|
|
69
|
+
players: this.playersCount,
|
|
70
|
+
ping: this.getPing(),
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
toAndStatusVo() {
|
|
74
|
+
return {
|
|
75
|
+
room: this.toVo(),
|
|
76
|
+
status: this.toStatusVo()
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
toFullVo() {
|
|
80
|
+
return {
|
|
81
|
+
room: this.toVo(),
|
|
82
|
+
status: this.toStatusVo(),
|
|
83
|
+
brainer: this.getBrainer().code,
|
|
84
|
+
playerStates: this.playerStates
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
exports.Gameroom = Gameroom;
|
|
89
89
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2FtZXJvb20uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmVyL2VudGl0aWVzL0dhbWVyb29tLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLGlEQUE4QztBQUc5QyxJQUFZLGFBSVg7QUFKRCxXQUFZLGFBQWE7SUFDckIsaURBQUksQ0FBQTtJQUNKLHFEQUFNLENBQUE7SUFDTixpREFBSSxDQUFBO0FBQ1IsQ0FBQyxFQUpXLGFBQWEsR0FBYixxQkFBYSxLQUFiLHFCQUFhLFFBSXhCO0FBRUQsTUFBYSxRQUFTLFNBQVEsMkJBQVk7SUFFdEMsWUFDSSxNQUEwQixFQUMxQixNQUFjLEVBQ2QsSUFBWSxFQUNMLE9BQWUsRUFDZixRQUFrQixFQUNsQixJQUFZLEVBQ1osUUFBZ0IsRUFDaEIsVUFBa0IsRUFDbEIsS0FBb0IsRUFDM0IsU0FBaUMsRUFDMUIsVUFBbUI7UUFFMUIsS0FBSyxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztRQVQ1QyxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNoQixlQUFVLEdBQVYsVUFBVSxDQUFRO1FBQ2xCLFVBQUssR0FBTCxLQUFLLENBQWU7UUFFcEIsZUFBVSxHQUFWLFVBQVUsQ0FBUztRQUcxQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2QsT0FBTyxVQUFVLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUNoQyxDQUFDO0lBRUQsT0FBTztRQUNILElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsU0FBUyxDQUFDLE1BQWM7UUFDcEIsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDdEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxtRUFBbUUsQ0FBQyxDQUFBO1NBQ3ZGO1FBQ0QsSUFBSSxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3pCLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDekIsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxZQUFZLENBQUMsTUFBYztRQUN2QixJQUFJLE1BQU0sQ0FBQyxXQUFXLEVBQUUsSUFBSSxJQUFJLEVBQUU7WUFDOUIsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM1QjtRQUNELElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDcEIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQ2xCO1lBQ0QsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxJQUFJO1FBQ0EsTUFBTSxJQUFJLEdBQVE7WUFDZCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFDNUIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSTtZQUM1QixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDM0IsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtTQUM5QixDQUFBO1FBQ0QsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDaEMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELFVBQVU7UUFDTixPQUFPO1lBQ0gsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixPQUFPLEVBQUUsSUFBSSxDQUFDLFlBQVk7WUFDMUIsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUU7U0FDdkIsQ0FBQTtJQUNMLENBQUM7SUFFRCxhQUFhO1FBQ1QsT0FBTztZQUNILElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2pCLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFO1NBQzVCLENBQUE7SUFDTCxDQUFDO0lBRUQsUUFBUTtRQUNKLE9BQU87WUFDSCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNqQixNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUN6QixPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLElBQUk7WUFDL0IsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO1NBQ2xDLENBQUE7SUFDTCxDQUFDO0NBQ0o7QUExRkQsNEJBMEZDIn0=
|