gamelet-cli
Version:
Download project from code.gamelet.com, edit/test in vscode and sync back to server.
78 lines • 5.81 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Client = void 0;
const Constant_1 = require("./../Constant");
const PlayerManager_1 = require("./../managers/PlayerManager");
const ArrayUtil_1 = require("./../utils/ArrayUtil");
class Client {
constructor(project, msgVersion) {
this.project = project;
this.msgVersion = msgVersion;
this.players = [];
if (typeof msgVersion === 'number') {
msgVersion = '' + msgVersion;
}
else if (!msgVersion) {
msgVersion = '';
}
this._key = project.code.replace(/\|/g, '/') + '|' + msgVersion.replace(/\|/g, '/');
}
get key() {
return this._key;
}
addPlayer(player) {
ArrayUtil_1.ArrayUtil.addUniqueElement(this.players, player);
}
removePlayer(player) {
ArrayUtil_1.ArrayUtil.removeElement(this.players, player);
}
removePlayerByCode(playerCode) {
let index = this.players.findIndex(p => p.code == playerCode);
if (index == -1) {
return null;
}
let player = this.players[index];
this.players.splice(index, 1);
return player;
}
get playersCount() {
return this.players.length;
}
get playerList() {
return this.players;
}
cleanDisconnectedPlayers() {
this.players = this.players.filter(p => PlayerManager_1.playerManager.getPlayerByCode(p.code));
}
disconnectInactivePlayers() {
let inactiveTime = Date.now() - Constant_1.Constant.ONE_HOUR * 3;
this.players.slice().forEach(p => {
if (p.lastMsgTime < inactiveTime) {
p.disconnect();
}
});
}
getPlayersCount(options) {
if (options) {
let total = 0;
const inGameroom = options.inGameroom;
for (let player of this.players) {
if (inGameroom) {
if (!player.getGameroom() ||
(inGameroom.zone && player.getGameroom().gamezone.code != inGameroom.zone) ||
(inGameroom.code && player.getGameroom().code != inGameroom.code) ||
(inGameroom.states && !inGameroom.states.includes(player.getGameroom().state))) {
continue;
}
}
++total;
}
return total;
}
else {
return this.playersCount;
}
}
}
exports.Client = Client;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlcnZlci9lbnRpdGllcy9DbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNENBQXlDO0FBQ3pDLCtEQUE0RDtBQUM1RCxvREFBaUQ7QUFHakQsTUFBYSxNQUFNO0lBTWYsWUFBbUIsT0FBc0IsRUFBUyxVQUFrQjtRQUFqRCxZQUFPLEdBQVAsT0FBTyxDQUFlO1FBQVMsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUY1RCxZQUFPLEdBQWEsRUFBRSxDQUFDO1FBRzNCLElBQUksT0FBTyxVQUFVLEtBQUssUUFBUSxFQUFFO1lBQ2hDLFVBQVUsR0FBRyxFQUFFLEdBQUcsVUFBVSxDQUFDO1NBQ2hDO2FBQU0sSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNwQixVQUFVLEdBQUcsRUFBRSxDQUFBO1NBQ2xCO1FBQ0QsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3hGLENBQUM7SUFFRCxJQUFJLEdBQUc7UUFDSCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUFjO1FBQ3BCLHFCQUFTLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsWUFBWSxDQUFDLE1BQWM7UUFDdkIscUJBQVMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsVUFBa0I7UUFDakMsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLFVBQVUsQ0FBQyxDQUFDO1FBQzlELElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxFQUFFO1lBQ2IsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUNELElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzlCLE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDWixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUVELHdCQUF3QjtRQUNwQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsNkJBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEYsQ0FBQztJQUVELHlCQUF5QjtRQUNyQixJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsbUJBQVEsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzdCLElBQUksQ0FBQyxDQUFDLFdBQVcsR0FBRyxZQUFZLEVBQUU7Z0JBQzlCLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUNsQjtRQUNMLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUVELGVBQWUsQ0FBQyxPQUFzQztRQUNsRCxJQUFJLE9BQU8sRUFBRTtZQUNULElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztZQUNkLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUM7WUFDdEMsS0FBSyxJQUFJLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUM3QixJQUFJLFVBQVUsRUFBRTtvQkFDWixJQUNJLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRTt3QkFDckIsQ0FBQyxVQUFVLENBQUMsSUFBSSxJQUFJLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUM7d0JBQzFFLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUM7d0JBQ2pFLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUNoRjt3QkFDRSxTQUFTO3FCQUNaO2lCQUNKO2dCQUNELEVBQUUsS0FBSyxDQUFDO2FBQ1g7WUFDRCxPQUFPLEtBQUssQ0FBQztTQUNoQjthQUFNO1lBQ0gsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO1NBQzVCO0lBQ0wsQ0FBQztDQUNKO0FBaEZELHdCQWdGQyJ9