lavaclient
Version:
A simple, easy-to-use, and flexible lavalink client for node.js
68 lines • 5.93 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.NodePlayerManager = void 0;
const tools_js_1 = require("./tools.js");
class NodePlayerManager {
node;
cache = new Map();
constructor(node) {
this.node = node;
}
has(guild) {
return this.cache.has((0, tools_js_1.getId)(guild));
}
resolve(guild) {
return this.cache.get((0, tools_js_1.getId)(guild));
}
create(guild) {
if (this.has((0, tools_js_1.getId)(guild))) {
return this.resolve((0, tools_js_1.getId)(guild));
}
const player = this.node.createPlayer((0, tools_js_1.getId)(guild));
this.cache.set((0, tools_js_1.getId)(guild), player);
return player;
}
async fetch(arg0, options = {}) {
if (typeof arg0 === "boolean") {
const response = (await this.node.ws.session?.players()) ?? [];
return response.map((data) => {
const player = arg0 ? this.create(data.guildId) : this.node.createPlayer(data.guildId);
return player.patch(data);
});
}
const guildId = (0, tools_js_1.getId)(arg0);
let player = this.cache.get(guildId);
if (!options.force && player) {
return player;
}
const data = await this.node.ws.session?.player(guildId)?.fetchOrNull();
if (data) {
player = options.cache ? player ?? this.create(guildId) : this.node.createPlayer(guildId);
return player.patch(data);
}
return;
}
async destroy(guild, force = false) {
if (!guild) {
let count = 0;
for (const [_, player] of this.cache) {
player.api.remove();
}
return count;
}
const player = this.resolve((0, tools_js_1.getId)(guild));
this.cache.delete((0, tools_js_1.getId)(guild));
if (!player) {
if (force) {
return this.node.ws.session?.player((0, tools_js_1.getId)(guild))?.remove() ?? false;
}
return false;
}
return player.api.remove();
}
handleVoiceUpdate(update) {
return this.resolve(update.guild_id)?.voice?.handleVoiceUpdate(update) ?? Promise.resolve(false);
}
}
exports.NodePlayerManager = NodePlayerManager;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxheWVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wbGF5ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQW9CQSx5Q0FBaUQ7QUE0RWpELE1BQWEsaUJBQWlCO0lBR0w7SUFGWixLQUFLLEdBQStCLElBQUksR0FBRyxFQUFFLENBQUM7SUFFdkQsWUFBcUIsSUFBVztRQUFYLFNBQUksR0FBSixJQUFJLENBQU87SUFBRyxDQUFDO0lBRXBDLEdBQUcsQ0FBQyxLQUFtQjtRQUNuQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUEsZ0JBQUssRUFBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxPQUFPLENBQUMsS0FBbUI7UUFDdkIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFBLGdCQUFLLEVBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQW1CO1FBQ3RCLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFBLGdCQUFLLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUN4QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBQSxnQkFBSyxFQUFDLEtBQUssQ0FBQyxDQUFFLENBQUM7U0FDdEM7UUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFBLGdCQUFLLEVBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFBLGdCQUFLLEVBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFckMsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQU1ELEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBd0MsRUFBRSxVQUF3QixFQUFFO1FBRTVFLElBQUksT0FBTyxJQUFJLEtBQUssU0FBUyxFQUFFO1lBRTNC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