UNPKG

@jsprismarine/prismarine

Version:

Dedicated Minecraft Bedrock Edition server written in TypeScript

67 lines (66 loc) 6.45 kB
"use strict"; Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } }); const require_runtime = require("./_virtual/_rolldown/runtime.cjs.cjs"); let node_assert = require("node:assert"); node_assert = require_runtime.__toESM(node_assert, 1); //#region src/SessionManager.ts var SessionManager = class { 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) { return this.getAllPlayers().find((p) => p.getName() === name) ?? null; } /** * 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; (0, node_assert.default)(found !== null, `Player with id ${id} cannot be found!`); return found; } }; //#endregion exports.default = SessionManager; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2Vzc2lvbk1hbmFnZXIuY2pzLmNqcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi9zcmMvU2Vzc2lvbk1hbmFnZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdub2RlOmFzc2VydCc7XG5pbXBvcnQgdHlwZSBQbGF5ZXIgZnJvbSAnLi9QbGF5ZXInO1xuaW1wb3J0IHR5cGUgQ2xpZW50Q29ubmVjdGlvbiBmcm9tICcuL25ldHdvcmsvQ2xpZW50Q29ubmVjdGlvbic7XG5pbXBvcnQgdHlwZSB7IFBsYXllckxpc3RFbnRyeSB9IGZyb20gJy4vbmV0d29yay9wYWNrZXQvUGxheWVyTGlzdFBhY2tldCc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNlc3Npb25NYW5hZ2VyIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbm5lY3Rpb25zOiBNYXA8c3RyaW5nLCBDbGllbnRDb25uZWN0aW9uPiA9IG5ldyBNYXAoKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBsYXllckxpc3Q6IE1hcDxzdHJpbmcsIFBsYXllckxpc3RFbnRyeT4gPSBuZXcgTWFwKCk7XG5cbiAgICBwdWJsaWMgYWRkKHRva2VuOiBzdHJpbmcsIGNvbm5lY3Rpb246IENsaWVudENvbm5lY3Rpb24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb25uZWN0aW9ucy5zZXQodG9rZW4sIGNvbm5lY3Rpb24pO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYXModG9rZW46IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25uZWN0aW9ucy5oYXModG9rZW4pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQodG9rZW46IHN0cmluZyk6IENsaWVudENvbm5lY3Rpb24gfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdGlvbnMuZ2V0KHRva2VuKSA/PyBudWxsO1xuICAgIH1cblxuICAgIHB1YmxpYyByZW1vdmUodG9rZW46IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25uZWN0aW9ucy5kZWxldGUodG9rZW4pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRQbGF5ZXJMaXN0KCk6IE1hcDxzdHJpbmcsIFBsYXllckxpc3RFbnRyeT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wbGF5ZXJMaXN0O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRBbGxQbGF5ZXJzKCk6IFBsYXllcltdIHtcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5jb25uZWN0aW9ucy52YWx1ZXMoKSlcbiAgICAgICAgICAgIC5tYXAoKGNvbm4pID0+IGNvbm4uZ2V0UGxheWVyU2Vzc2lvbigpPy5nZXRQbGF5ZXIoKSEpXG4gICAgICAgICAgICAuZmlsdGVyKChwOiBhbnkpID0+IHApIGFzIFBsYXllcltdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEtpY2sgYWxsIHBsYXllcnMuXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvbiAtIFRoZSByZWFzb24gdG8ga2ljayB0aGUgcGxheWVycy5cbiAgICAgKi9cbiAgICBwdWJsaWMgYXN5bmMga2lja0FsbFBsYXllcnMocmVhc29uOiBzdHJpbmcpIHtcbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5nZXRBbGxQbGF5ZXJzKCkubWFwKChwbGF5ZXIpID0+IHBsYXllci5raWNrKHJlYXNvbikpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZmluZFBsYXllcih7IG5hbWUsIHh1aWQgfTogeyBuYW1lPzogc3RyaW5nOyB4dWlkPzogc3RyaW5nIH0pOiBQbGF5ZXIgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0QWxsUGxheWVycygpLmZpbmQoKHApID0+IHAuZ2V0TmFtZSgpID09PSBuYW1lIHx8IHAuZ2V0WFVJRCgpID09PSB4dWlkKSA/PyBudWxsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEp1c3QgYSBjb21wYXRpYmlsaXR5IGxheWVyIHRvIG5vdCBicmVhayBldmVyeXRoaW5nIGZvciBub3dcbiAgICAgKlxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICogQHBhcmFtIG5hbWVcbiAgICAgKiBAcmV0dXJuc1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXRQbGF5ZXJCeUV4YWN0TmFtZShuYW1lOiBzdHJpbmcpOiBQbGF5ZXIgfCBudWxsIHtcbiAgICAgICAgY29uc3QgZm91bmQgPSB0aGlzLmdldEFsbFBsYXllcnMoKS5maW5kKChwKSA9PiBwLmdldE5hbWUoKSA9PT0gbmFtZSkgPz8gbnVsbDtcbiAgICAgICAgcmV0dXJuIGZvdW5kO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEp1c3QgYSBjb21wYXRpYmlsaXR5IGxheWVyIHRvIG5vdCBicmVhayBldmVyeXRoaW5nIGZvciBub3dcbiAgICAgKlxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICogQHBhcmFtIGlkXG4gICAgICogQHJldHVybnNcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0UGxheWVyQnlJZChpZDogYmlnaW50KTogUGxheWVyIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IGZvdW5kID0gdGhpcy5nZXRBbGxQbGF5ZXJzKCkuZmluZCgocCkgPT4gcC5nZXRSdW50aW1lSWQoKSA9PT0gaWQpID8/IG51bGw7XG4gICAgICAgIGFzc2VydChmb3VuZCAhPT0gbnVsbCwgYFBsYXllciB3aXRoIGlkICR7aWR9IGNhbm5vdCBiZSBmb3VuZCFgKTtcbiAgICAgICAgcmV0dXJuIGZvdW5kO1xuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBS0EsSUFBcUIsaUJBQXJCLE1BQW9DO0NBQ2hDLDhCQUE4RCxJQUFJLElBQUk7Q0FDdEUsNkJBQTRELElBQUksSUFBSTtDQUVwRSxJQUFXLE9BQWUsWUFBb0M7RUFDMUQsS0FBSyxZQUFZLElBQUksT0FBTyxVQUFVO0NBQzFDO0NBRUEsSUFBVyxPQUF3QjtFQUMvQixPQUFPLEtBQUssWUFBWSxJQUFJLEtBQUs7Q0FDckM7Q0FFQSxJQUFXLE9BQXdDO0VBQy9DLE9BQU8sS0FBSyxZQUFZLElBQUksS0FBSyxLQUFLO0NBQzFDO0NBRUEsT0FBYyxPQUF3QjtFQUNsQyxPQUFPLEtBQUssWUFBWSxPQUFPLEtBQUs7Q0FDeEM7Q0FFQSxnQkFBcUQ7RUFDakQsT0FBTyxLQUFLO0NBQ2hCO0NBRUEsZ0JBQWlDO0VBQzdCLE9BQU8sTUFBTSxLQUFLLEtBQUssWUFBWSxPQUFPLENBQUMsRUFDdEMsS0FBSyxTQUFTLEtBQUssaUJBQWlCLEdBQUcsVUFBVSxDQUFFLEVBQ25ELFFBQVEsTUFBVyxDQUFDO0NBQzdCOzs7OztDQU1BLE1BQWEsZUFBZSxRQUFnQjtFQUN4QyxNQUFNLFFBQVEsSUFBSSxLQUFLLGNBQWMsRUFBRSxLQUFLLFdBQVcsT0FBTyxLQUFLLE1BQU0sQ0FBQyxDQUFDO0NBQy9FO0NBRUEsV0FBa0IsRUFBRSxNQUFNLFFBQXlEO0VBQy9FLE9BQU8sS0FBSyxjQUFjLEVBQUUsTUFBTSxNQUFNLEVBQUUsUUFBUSxNQUFNLFFBQVEsRUFBRSxRQUFRLE1BQU0sSUFBSSxLQUFLO0NBQzdGOzs7Ozs7OztDQVNBLHFCQUE0QixNQUE2QjtFQUVyRCxPQURjLEtBQUssY0FBYyxFQUFFLE1BQU0sTUFBTSxFQUFFLFFBQVEsTUFBTSxJQUFJLEtBQUs7Q0FFNUU7Ozs7Ozs7O0NBU0EsY0FBcUIsSUFBMkI7RUFDNUMsTUFBTSxRQUFRLEtBQUssY0FBYyxFQUFFLE1BQU0sTUFBTSxFQUFFLGFBQWEsTUFBTSxFQUFFLEtBQUs7RUFDM0UsQ0FBQSxHQUFBLFlBQUEsU0FBTyxVQUFVLE1BQU0sa0JBQWtCLEdBQUcsa0JBQWtCO0VBQzlELE9BQU87Q0FDWDtBQUNKIn0=