UNPKG

lavaclient

Version:

A simple, easy-to-use, and flexible lavalink client for node.js

104 lines 7.76 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ClusterPlayerManager = void 0; const balancer_js_1 = require("./balancer.js"); const tools_js_1 = require("../tools.js"); class ClusterPlayerManager { cluster; options; cached; constructor(cluster, options) { this.cluster = cluster; this.options = options; } get cache() { return (this.cached ??= this.generateCache()); } has(guild) { const guildId = (0, tools_js_1.getId)(guild); if (this.options.has) { return this.options.has(this, guildId); } for (const node of this.cluster.nodes.values()) { if (node.players.has(guildId)) return true; } return false; } resolve(guild) { const guildId = (0, tools_js_1.getId)(guild); if (this.options.find) { return this.options.find(this, guildId); } for (const node of this.cluster.nodes.values()) { const player = node.players.resolve(guildId); if (player) return player; } return; } async fetch(arg0, options = {}) { if (typeof arg0 === "boolean") { const players = []; for (const node of this.cluster.nodes.values()) { players.push(await node.players.fetch(arg0)); } if (arg0) { delete this.cached; } return players.flat(); } const guildId = (0, tools_js_1.getId)(arg0); if (this.options.fetch) { return this.options.fetch(this, guildId, options); } const player = this.resolve(guildId); if (!options.force && player) { return player; } if (options.cache) { delete this.cached; } for (const node of this.cluster.nodes.values()) { const data = await node.players.fetch(guildId, options); if (data) return data; } return; } create(guild) { const cached = this.resolve((0, tools_js_1.getId)(guild)); if (cached) return cached; const player = (0, balancer_js_1.nextOrThrow)(this.cluster.balancer).players.create((0, tools_js_1.getId)(guild)); delete this.cached; return player; } async destroy(guild, force = false) { if (!guild) { let count = 0; for (const node of this.cluster.nodes.values()) { count += await node.players.destroy(); } return count; } for (const node of this.cluster.nodes.values()) { if (await node.players.destroy(guild, force)) return true; } return false; } handleVoiceUpdate(update) { return this.resolve(update.guild_id)?.voice?.handleVoiceUpdate(update) ?? Promise.resolve(false); } generateCache() { const map = new Map(); for (const node of this.cluster.nodes.values()) { for (const [k, v] of node.players.cache) map.set(k, v); } return map; } } exports.ClusterPlayerManager = ClusterPlayerManager; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxheWVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbHVzdGVyL3BsYXllcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBd0JBLCtDQUE0QztBQUM1QywwQ0FBa0Q7QUFPbEQsTUFBYSxvQkFBb0I7SUFJaEI7SUFDQTtJQUpMLE1BQU0sQ0FBOEI7SUFFNUMsWUFDYSxPQUFnQixFQUNoQixPQUFvQztRQURwQyxZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2hCLFlBQU8sR0FBUCxPQUFPLENBQTZCO0lBQzlDLENBQUM7SUFFSixJQUFJLEtBQUs7UUFDTCxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsR0FBRyxDQUFDLEtBQW1CO1FBQ25CLE1BQU0sT0FBTyxHQUFHLElBQUEsZ0JBQUssRUFBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFO1lBQ2xCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQzFDO1FBRUQsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUM1QyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQztnQkFBRSxPQUFPLElBQUksQ0FBQztTQUM5QztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxPQUFPLENBQUMsS0FBbUI7UUFDdkIsTUFBTSxPQUFPLEdBQUcsSUFBQSxnQkFBSyxFQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFDbkIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEVB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