gamelet-cli
Version:
Download project from code.gamelet.com, edit/test in vscode and sync back to server.
78 lines • 5.85 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlcnZlci9lbnRpdGllcy9DbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNENBQXlDO0FBQ3pDLCtEQUE0RDtBQUM1RCxvREFBaUQ7QUFHakQsTUFBYSxNQUFNO0lBTWYsWUFBbUIsT0FBc0IsRUFBUyxVQUFrQjtRQUFqRCxZQUFPLEdBQVAsT0FBTyxDQUFlO1FBQVMsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUY1RCxZQUFPLEdBQWEsRUFBRSxDQUFDO1FBRzNCLElBQUksT0FBTyxVQUFVLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDakMsVUFBVSxHQUFHLEVBQUUsR0FBRyxVQUFVLENBQUM7UUFDakMsQ0FBQzthQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNyQixVQUFVLEdBQUcsRUFBRSxDQUFBO1FBQ25CLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUVELElBQUksR0FBRztRQUNILE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNyQixDQUFDO0lBRUQsU0FBUyxDQUFDLE1BQWM7UUFDcEIscUJBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxZQUFZLENBQUMsTUFBYztRQUN2QixxQkFBUyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxVQUFrQjtRQUNqQyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNB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