@jsprismarine/prismarine
Version:
Dedicated Minecraft Bedrock Edition server written in TypeScript
69 lines (62 loc) • 7.42 kB
JavaScript
;
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