UNPKG

gamelet-cli

Version:

Download project from code.gamelet.com, edit/test in vscode and sync back to server.

78 lines 5.85 kB
"use strict"; 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlcnZlci9lbnRpdGllcy9DbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNENBQXlDO0FBQ3pDLCtEQUE0RDtBQUM1RCxvREFBaUQ7QUFHakQsTUFBYSxNQUFNO0lBTWYsWUFBbUIsT0FBc0IsRUFBUyxVQUFrQjtRQUFqRCxZQUFPLEdBQVAsT0FBTyxDQUFlO1FBQVMsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUY1RCxZQUFPLEdBQWEsRUFBRSxDQUFDO1FBRzNCLElBQUksT0FBTyxVQUFVLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDakMsVUFBVSxHQUFHLEVBQUUsR0FBRyxVQUFVLENBQUM7UUFDakMsQ0FBQzthQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNyQixVQUFVLEdBQUcsRUFBRSxDQUFBO1FBQ25CLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUVELElBQUksR0FBRztRQUNILE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNyQixDQUFDO0lBRUQsU0FBUyxDQUFDLE1BQWM7UUFDcEIscUJBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxZQUFZLENBQUMsTUFBYztRQUN2QixxQkFBUyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxVQUFrQjtRQUNqQyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNB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