UNPKG

lavaclient

Version:

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

86 lines 6.44 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PlayerVoice = void 0; const tools_js_1 = require("./tools.js"); const tiny_typed_emitter_1 = require("tiny-typed-emitter"); class PlayerVoice extends tiny_typed_emitter_1.TypedEmitter { player; channelId = null; connected = false; latency = -1; server = null; voiceUpdate = {}; constructor(player) { super(); this.player = player; } connect(channel, options = {}) { this.voiceUpdate = {}; const channelId = channel && (0, tools_js_1.getId)(channel); this.player.node.emit("debug", { system: "player", subsystem: "voice", message: `updating voice status in guild=${this.player.id}, channel=${channelId}`, player: this.player, }); this.player.node.options.discord.sendGatewayCommand(this.player.id, { op: 4, d: { guild_id: this.player.id, channel_id: channelId, self_deaf: options.deafened ?? false, self_mute: options.muted ?? false, }, }); return this; } disconnect() { return this.connect(null); } async handleVoiceUpdate(update) { if ("token" in update) { this.voiceUpdate.event = update; } else { if (update.user_id !== this.player.node.userId) { return false; } const channel = update.channel_id; if (!channel && this.channelId) { this.emit("channelLeave", this.channelId); this.channelId = null; this.voiceUpdate = {}; } else if (channel && !this.channelId) { this.channelId = update.channel_id; this.emit("channelJoin", this.channelId); } else if (channel !== this.channelId) { this.emit("channelMove", this.channelId, update.channel_id); this.channelId = update.channel_id; } if (this.voiceUpdate.sessionId === update.session_id) { return false; } this.voiceUpdate.sessionId = update.session_id; } if (this.voiceUpdate.event && this.voiceUpdate.sessionId) { this.player.node.emit("debug", { system: "player", subsystem: "voice", message: "submitting voice update to node.", player: this.player, }); const data = await this.player.api.update({ voice: { ...this.voiceUpdate.event, sessionId: this.voiceUpdate.sessionId, }, }); this.player.patch(data); } return true; } } exports.PlayerVoice = PlayerVoice; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxheWVyVm9pY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcGxheWVyVm9pY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBa0JBLHlDQUErRDtBQUUvRCwyREFBa0Q7QUFFbEQsTUFBYSxXQUFZLFNBQVEsaUNBQStCO0lBdUJ2QztJQW5CckIsU0FBUyxHQUFrQixJQUFJLENBQUM7SUFLaEMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUtsQixPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFLYixNQUFNLEdBQStCLElBQUksQ0FBQztJQUVsQyxXQUFXLEdBQStFLEVBQUUsQ0FBQztJQUVyRyxZQUFxQixNQUFjO1FBQy9CLEtBQUssRUFBRSxDQUFDO1FBRFMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUVuQyxDQUFDO0lBUUQsT0FBTyxDQUFDLE9BQTJDLEVBQUUsVUFBMEIsRUFBRTtRQUM3RSxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUV0QixNQUFNLFNBQVMsR0FBRyxPQUFPLElBQUksSUFBQSxnQkFBSyxFQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDM0IsTUFBTSxFQUFFLFFBQVE7WUFDaEIsU0FBUyxFQUFFLE9BQU87WUFDbEIsT0FBTyxFQUFFLGtDQUFrQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsYUFBYSxTQUFTLEVBQUU7WUFDakYsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1NBQ3RCLENBQUMsQ0FBQztRQUdILElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUU7WUFDaEUsRUFBRSxFQUFFLENBQUM7WUFDTCxDQUFDLEVBQUU7Z0JBQ0MsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMs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