UNPKG

@jsprismarine/prismarine

Version:

Dedicated Minecraft Bedrock Edition server written in TypeScript

69 lines (62 loc) 7.42 kB
'use strict'; Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } }); const assert = require('node:assert'); const _interopDefault = e => e && e.__esModule ? e : { default: e }; const assert__default = /*#__PURE__*/_interopDefault(assert); class SessionManager { connections = /* @__PURE__ */ new Map(); playerList = /* @__PURE__ */ new Map(); add(token, connection) { this.connections.set(token, connection); } has(token) { return this.connections.has(token); } get(token) { return this.connections.get(token) ?? null; } remove(token) { return this.connections.delete(token); } getPlayerList() { return this.playerList; } getAllPlayers() { return Array.from(this.connections.values()).map((conn) => conn.getPlayerSession()?.getPlayer()).filter((p) => p); } /** * Kick all players. * @param {string} reason - The reason to kick the players. */ async kickAllPlayers(reason) { await Promise.all(this.getAllPlayers().map((player) => player.kick(reason))); } findPlayer({ name, xuid }) { return this.getAllPlayers().find((p) => p.getName() === name || p.getXUID() === xuid) ?? null; } /** * Just a compatibility layer to not break everything for now * * @deprecated * @param name * @returns */ getPlayerByExactName(name) { const found = this.getAllPlayers().find((p) => p.getName() === name) ?? null; return found; } /** * Just a compatibility layer to not break everything for now * * @deprecated * @param id * @returns */ getPlayerById(id) { const found = this.getAllPlayers().find((p) => p.getRuntimeId() === id) ?? null; assert__default.default(found !== null, `Player with id ${id} cannot be found!`); return found; } } exports.default = SessionManager; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2Vzc2lvbk1hbmFnZXIuY2pzLmNqcyIsInNvdXJjZXMiOlsiLi4vc3JjL1Nlc3Npb25NYW5hZ2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnbm9kZTphc3NlcnQnO1xuaW1wb3J0IHR5cGUgUGxheWVyIGZyb20gJy4vUGxheWVyJztcbmltcG9ydCB0eXBlIENsaWVudENvbm5lY3Rpb24gZnJvbSAnLi9uZXR3b3JrL0NsaWVudENvbm5lY3Rpb24nO1xuaW1wb3J0IHR5cGUgeyBQbGF5ZXJMaXN0RW50cnkgfSBmcm9tICcuL25ldHdvcmsvcGFja2V0L1BsYXllckxpc3RQYWNrZXQnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTZXNzaW9uTWFuYWdlciB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25uZWN0aW9uczogTWFwPHN0cmluZywgQ2xpZW50Q29ubmVjdGlvbj4gPSBuZXcgTWFwKCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBwbGF5ZXJMaXN0OiBNYXA8c3RyaW5nLCBQbGF5ZXJMaXN0RW50cnk+ID0gbmV3IE1hcCgpO1xuXG4gICAgcHVibGljIGFkZCh0b2tlbjogc3RyaW5nLCBjb25uZWN0aW9uOiBDbGllbnRDb25uZWN0aW9uKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29ubmVjdGlvbnMuc2V0KHRva2VuLCBjb25uZWN0aW9uKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaGFzKHRva2VuOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdGlvbnMuaGFzKHRva2VuKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0KHRva2VuOiBzdHJpbmcpOiBDbGllbnRDb25uZWN0aW9uIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rpb25zLmdldCh0b2tlbikgPz8gbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVtb3ZlKHRva2VuOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdGlvbnMuZGVsZXRlKHRva2VuKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UGxheWVyTGlzdCgpOiBNYXA8c3RyaW5nLCBQbGF5ZXJMaXN0RW50cnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGxheWVyTGlzdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0QWxsUGxheWVycygpOiBQbGF5ZXJbXSB7XG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuY29ubmVjdGlvbnMudmFsdWVzKCkpXG4gICAgICAgICAgICAubWFwKChjb25uKSA9PiBjb25uLmdldFBsYXllclNlc3Npb24oKT8uZ2V0UGxheWVyKCkhKVxuICAgICAgICAgICAgLmZpbHRlcigocDogYW55KSA9PiBwKSBhcyBQbGF5ZXJbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBLaWNrIGFsbCBwbGF5ZXJzLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb24gLSBUaGUgcmVhc29uIHRvIGtpY2sgdGhlIHBsYXllcnMuXG4gICAgICovXG4gICAgcHVibGljIGFzeW5jIGtpY2tBbGxQbGF5ZXJzKHJlYXNvbjogc3RyaW5nKSB7XG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKHRoaXMuZ2V0QWxsUGxheWVycygpLm1hcCgocGxheWVyKSA9PiBwbGF5ZXIua2ljayhyZWFzb24pKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGZpbmRQbGF5ZXIoeyBuYW1lLCB4dWlkIH06IHsgbmFtZT86IHN0cmluZzsgeHVpZD86IHN0cmluZyB9KTogUGxheWVyIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEFsbFBsYXllcnMoKS5maW5kKChwKSA9PiBwLmdldE5hbWUoKSA9PT0gbmFtZSB8fCBwLmdldFhVSUQoKSA9PT0geHVpZCkgPz8gbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBKdXN0IGEgY29tcGF0aWJpbGl0eSBsYXllciB0byBub3QgYnJlYWsgZXZlcnl0aGluZyBmb3Igbm93XG4gICAgICpcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqIEBwYXJhbSBuYW1lXG4gICAgICogQHJldHVybnNcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0UGxheWVyQnlFeGFjdE5hbWUobmFtZTogc3RyaW5nKTogUGxheWVyIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IGZvdW5kID0gdGhpcy5nZXRBbGxQbGF5ZXJzKCkuZmluZCgocCkgPT4gcC5nZXROYW1lKCkgPT09IG5hbWUpID8/IG51bGw7XG4gICAgICAgIHJldHVybiBmb3VuZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBKdXN0IGEgY29tcGF0aWJpbGl0eSBsYXllciB0byBub3QgYnJlYWsgZXZlcnl0aGluZyBmb3Igbm93XG4gICAgICpcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqIEBwYXJhbSBpZFxuICAgICAqIEByZXR1cm5zXG4gICAgICovXG4gICAgcHVibGljIGdldFBsYXllckJ5SWQoaWQ6IGJpZ2ludCk6IFBsYXllciB8IG51bGwge1xuICAgICAgICBjb25zdCBmb3VuZCA9IHRoaXMuZ2V0QWxsUGxheWVycygpLmZpbmQoKHApID0+IHAuZ2V0UnVudGltZUlkKCkgPT09IGlkKSA/PyBudWxsO1xuICAgICAgICBhc3NlcnQoZm91bmQgIT09IG51bGwsIGBQbGF5ZXIgd2l0aCBpZCAke2lkfSBjYW5ub3QgYmUgZm91bmQhYCk7XG4gICAgICAgIHJldHVybiBmb3VuZDtcbiAgICB9XG59XG4iXSwibmFtZXMiOlsiYXNzZXJ0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBS0EsTUFBcUIsY0FBZSxDQUFBO0FBQUEsRUFDZixXQUFBLHVCQUFpRCxHQUFJLEVBQUE7QUFBQSxFQUNyRCxVQUFBLHVCQUErQyxHQUFJLEVBQUE7QUFBQSxFQUU3RCxHQUFBLENBQUksT0FBZSxVQUFvQyxFQUFBO0FBQzFELElBQUssSUFBQSxDQUFBLFdBQUEsQ0FBWSxHQUFJLENBQUEsS0FBQSxFQUFPLFVBQVUsQ0FBQTtBQUFBO0FBQzFDLEVBRU8sSUFBSSxLQUF3QixFQUFBO0FBQy9CLElBQU8sT0FBQSxJQUFBLENBQUssV0FBWSxDQUFBLEdBQUEsQ0FBSSxLQUFLLENBQUE7QUFBQTtBQUNyQyxFQUVPLElBQUksS0FBd0MsRUFBQTtBQUMvQyxJQUFBLE9BQU8sSUFBSyxDQUFBLFdBQUEsQ0FBWSxHQUFJLENBQUEsS0FBSyxDQUFLLElBQUEsSUFBQTtBQUFBO0FBQzFDLEVBRU8sT0FBTyxLQUF3QixFQUFBO0FBQ2xDLElBQU8sT0FBQSxJQUFBLENBQUssV0FBWSxDQUFBLE1BQUEsQ0FBTyxLQUFLLENBQUE7QUFBQTtBQUN4QyxFQUVPLGFBQThDLEdBQUE7QUFDakQsSUFBQSxPQUFPLElBQUssQ0FBQSxVQUFBO0FBQUE7QUFDaEIsRUFFTyxhQUEwQixHQUFBO0FBQzdCLElBQUEsT0FBTyxNQUFNLElBQUssQ0FBQSxJQUFBLENBQUssWUFBWSxNQUFPLEVBQUMsRUFDdEMsR0FBSSxDQUFBLENBQUMsU0FBUyxJQUFLLENBQUEsZ0JBQUEsSUFBb0IsU0FBVSxFQUFFLEVBQ25ELE1BQU8sQ0FBQSxDQUFDLE1BQVcsQ0FBQyxDQUFBO0FBQUE7QUFDN0I7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU1BLE1BQWEsZUFBZSxNQUFnQixFQUFBO0FBQ3hDLElBQUEsTUFBTSxPQUFRLENBQUEsR0FBQSxDQUFJLElBQUssQ0FBQSxhQUFBLEVBQWdCLENBQUEsR0FBQSxDQUFJLENBQUMsTUFBQSxLQUFXLE1BQU8sQ0FBQSxJQUFBLENBQUssTUFBTSxDQUFDLENBQUMsQ0FBQTtBQUFBO0FBQy9FLEVBRU8sVUFBVyxDQUFBLEVBQUUsSUFBTSxFQUFBLElBQUEsRUFBeUQsRUFBQTtBQUMvRSxJQUFBLE9BQU8sSUFBSyxDQUFBLGFBQUEsRUFBZ0IsQ0FBQSxJQUFBLENBQUssQ0FBQyxDQUFNLEtBQUEsQ0FBQSxDQUFFLE9BQVEsRUFBQSxLQUFNLElBQVEsSUFBQSxDQUFBLENBQUUsT0FBUSxFQUFBLEtBQU0sSUFBSSxDQUFLLElBQUEsSUFBQTtBQUFBO0FBQzdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFTTyxxQkFBcUIsSUFBNkIsRUFBQTtBQUNyRCxJQUFNLE1BQUEsS0FBQSxHQUFRLElBQUssQ0FBQSxhQUFBLEVBQWdCLENBQUEsSUFBQSxDQUFLLENBQUMsQ0FBQSxLQUFNLENBQUUsQ0FBQSxPQUFBLEVBQWMsS0FBQSxJQUFJLENBQUssSUFBQSxJQUFBO0FBQ3hFLElBQU8sT0FBQSxLQUFBO0FBQUE7QUFDWDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBU08sY0FBYyxFQUEyQixFQUFBO0FBQzVDLElBQU0sTUFBQSxLQUFBLEdBQVEsSUFBSyxDQUFBLGFBQUEsRUFBZ0IsQ0FBQSxJQUFBLENBQUssQ0FBQyxDQUFBLEtBQU0sQ0FBRSxDQUFBLFlBQUEsRUFBbUIsS0FBQSxFQUFFLENBQUssSUFBQSxJQUFBO0FBQzNFLElBQUFBLHVCQUFBLENBQU8sS0FBVSxLQUFBLElBQUEsRUFBTSxDQUFrQixlQUFBLEVBQUEsRUFBRSxDQUFtQixpQkFBQSxDQUFBLENBQUE7QUFDOUQsSUFBTyxPQUFBLEtBQUE7QUFBQTtBQUVmOzs7OyJ9