UNPKG

lavaclient

Version:

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

59 lines 4.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ClusterNode = void 0; const node_js_1 = require("../node.js"); const penalty_js_1 = require("./penalty.js"); class ClusterNode extends node_js_1.Node { cluster; identifier; penalties = new penalty_js_1.Penalties(this); constructor(cluster, options) { super({ discord: cluster.options.discord, ...options }); this.cluster = cluster; this.identifier = options.identifier ?? `${options.info.host}:${options.info.port}`; } emit(event, ...args) { const _event = `node${event.replace(/(\b\w)/, (i) => i.toUpperCase())}`; if (this.cluster.listenerCount(_event)) { return this.cluster.emit(_event, this, ...args); } if (event === "debug") { const event = args[0]; return this.cluster.emit("debug", { ...event, message: `[${this.identifier}] ${event.message}`, }); } return 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; } if (message.op === "event") { player.handleEvent(message); switch (message.type) { case "TrackStartEvent": this.penalties.loadsAttempted++; break; case "TrackEndEvent": if (message.reason === "loadFailed") this.penalties.loadsFailed++; break; case "TrackExceptionEvent": this.penalties.tracksFailed++; break; case "TrackStuckEvent": this.penalties.tracksStuck++; break; } } else { player.patchWithState(message.state); } } } exports.ClusterNode = ClusterNode; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbHVzdGVyL25vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBcUJBLHdDQUEyRDtBQUMzRCw2Q0FBeUM7QUFFekMsTUFBYSxXQUFZLFNBQVEsY0FBSTtJQVlwQjtJQVJKLFVBQVUsQ0FBUztJQUtuQixTQUFTLEdBQUcsSUFBSSxzQkFBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXpDLFlBQ2EsT0FBZ0IsRUFDekIsT0FBMkI7UUFFM0IsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUgvQyxZQUFPLEdBQVAsT0FBTyxDQUFTO1FBS3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLFVBQVUsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEYsQ0FBQztJQUVRLElBQUksQ0FBNkIsS0FBUSxFQUFFLEdBQUcsSUFBK0I7UUFDbEYsTUFBTSxNQUFNLEdBQUcsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQXlCLENBQUM7UUFDL0YsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUVwQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztTQUNuRDtRQUVELElBQUksS0FBSyxLQUFLLE9BQU8sRUFBRTtZQUNuQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFxQixDQUFDO1lBQzFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUM5QixHQUFHLEtBQUs7Z0JBQ1IsT0FBTyxFQUFFLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxLQUFLLENBQUMsT0FBTyxFQUFFO2FBQ25ELENBQUMsQ0FBQztTQUNOO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVrQixtQkFBbUIsQ0FBQyxPQUE2RDtRQUNoRyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsYUFBYSxPQUFPLENBQUMsRUFBRSxzQkFBc0IsRUFBRSxDQUFDLENBQUM7WUFDN0YsT0FBTztTQUNWO1FBRUQsSUFBSSxPQUFPLENBQUMsRUFBRSxLQUFLLE9BQU8sRUFBRTtZQUN4QixNQUFNLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzVCLFFBQVEsT0FBTyxDQUFDLElBQUksRUFBRTtnQkFDbEIsS0FBSyxpQkFBaUI7b0JBQ2xCLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFLENBQUM7b0JBQ2hDLE1BQU07Z0JBQ1YsS0FBSyxlQUFlO29CQUNoQixJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssWUFBWTt3QkFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO29CQUNsRSxNQUFNO2dCQUNWLEtBQUsscUJBQXFCO29CQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDO29CQUM5QixNQUFNO2dCQUNWLEtBQUssaUJBQWlCO29CQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO29CQUM3QixNQUFNO2FBQ2I7U0FDSjthQUFNO1lBQ0gsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDeEM7SUFDTCxDQUFDO0NBQ0o7QUFqRUQsa0NBaUVDIn0=