UNPKG

lavaclient

Version:

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

63 lines 6.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Node = void 0; const tslib_1 = require("tslib"); const API = tslib_1.__importStar(require("lavalink-api-client")); const WS = tslib_1.__importStar(require("lavalink-ws-client")); const player_js_1 = require("./player.js"); const tiny_typed_emitter_1 = require("tiny-typed-emitter"); const players_js_1 = require("./players.js"); class Node extends tiny_typed_emitter_1.TypedEmitter { options; players; rest; ws; api; userId; constructor(options) { super(); this.options = options; this.players = new players_js_1.NodePlayerManager(this); this.rest = new API.LavalinkHttpClient({ ...options.info, ...options.rest }); this.api = new API.LavalinkAPI(this.rest); this.ws = new WS.LavalinkWSClient(this.api, { ...options.ws, userId: options.discord.userId }); this.userId = options.discord.userId; this.rest.on("request", (event) => this.emit("request", event)); this.ws.on("ready", (event) => this.emit("ready", event)); this.ws.on("debug", (message) => this.emit("debug", { system: "ws", message })); this.ws.on("error", (error) => this.emit("error", error)); this.ws.on("connected", (event) => this.emit("connected", event)); this.ws.on("disconnected", (event) => this.emit("disconnected", event)); this.ws.on("message", (message) => { if (message.op === "event" || message.op === "playerUpdate") this.handlePlayerMessage(message); }); } get uptime() { return this.ws.uptime; } connect(options = {}) { if (options.userId) this.userId = options.userId; this.ws.connect(options); } disconnect() { this.ws.disconnect(); } createPlayer(guildId) { return new player_js_1.Player(this, guildId); } emit(event, ...args) { return this.listenerCount(event) > 0 ? super.emit(event, ...args) : false; } handlePlayerMessage(message) { const player = this.players.resolve(message.guildId); if (!player) { this.emit("debug", { system: "ws", message: `received '${message.op}' for unknown player` }); return; } message.op === "event" ? player.handleEvent(message) : player.patchWithState(message.state); } } exports.Node = Node; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9ub2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFpQkEsaUVBQTJDO0FBQzNDLCtEQUF5QztBQUd6QywyQ0FBcUM7QUFDckMsMkRBQWtEO0FBQ2xELDZDQUFnRTtBQUVoRSxNQUFhLElBQUssU0FBUSxpQ0FBd0I7SUF1QnpCO0lBbkJaLE9BQU8sQ0FBc0I7SUFLN0IsSUFBSSxDQUF5QjtJQUs3QixFQUFFLENBQXNCO0lBS3hCLEdBQUcsQ0FBa0I7SUFFOUIsTUFBTSxDQUFxQjtJQUUzQixZQUFxQixPQUFvQjtRQUNyQyxLQUFLLEVBQUUsQ0FBQztRQURTLFlBQU8sR0FBUCxPQUFPLENBQWE7UUFHckMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLDhCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsa0JBQWtCLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM3RSxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDL0YsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUtyQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFHaEUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBRTFELElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVoRixJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFFMUQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBRWxFLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLGNBQWMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUV4RSxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUM5QixJQUFJLE9BQU8sQ0FBQyxFQUFFLEtBQUssT0FBTyxJQUFJLE9BQU8sQ0FBQyxFQUFFLEtBQUssY0FBYztnQkFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbkcsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBS0QsSUFBSSxNQUFNO1FBQ04sT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQztJQUMxQixDQUFDO0lBT0QsT0FBTyxDQUFDLFVBQTZDLEVBQUU7UUFDbkQsSUFBSSxPQUFPLENBQUMsTUFBTTtZQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUNqRCxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBS0QsVUFBVTtRQUNOLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUtELFlBQVksQ0FBQyxPQUFlO1FBQ3hCLE9BQU8sSUFBSSxrQkFBTSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRVEsSUFBSSxDQUE2QixLQUFRLEVBQUUsR0FBRyxJQUErQjtRQUNsRixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDOUUsQ0FBQztJQUVTLG1CQUFtQixDQUFDLE9BQTZEO1FBQ3ZGLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxhQUFhLE9BQU8sQ0FBQyxFQUFFLHNCQUFzQixFQUFFLENBQUMsQ0FBQztZQUM3RixPQUFPO1NBQ1Y7UUFFRCxPQUFPLENBQUMsRUFBRSxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEcsQ0FBQztDQUNKO0FBakdELG9CQWlHQyJ9