lavaclient
lavaclient copied to clipboard
A simple, easy-to-use, and flexible lavalink client for node.js
A lightweight and powerful lavalink client for nodejs.
- Easy-to-use: lavaclient has a neat and user-friendly promise-based api.
- Performant: designed to be small and lightweight, it's a great choice for any project.
- Library Agnostic: lavaclient doesn't require you to use a specific discord library. Use anything you want!
Installation
Node.js v16.11.0 or newer is required
Stable
yarn add lavaclient # or npm install
Beta (may be outdated)
yarn add lavaclient@beta # or npm install
Deno
If you're looking for a Deno variant of lavaclient... We've got you covered!!
- Lavadeno: https://github.com/lavaclient/lavadeno
Usage
Setup
import { Cluster, Node } from "lavaclient";
const info = { host: "localhost", port: 2333, password: "youshallnotpass" };
const lavalink = new Node({
connection: info,
sendGatewayPayload: (id, payload) => sendWithDiscordLib(id, payload),
});
// or for clustering:
const lavalink = new Cluster({
nodes: [ { id: "main", ...info } ],
sendGatewayPayload: (id, payload) => sendWithDiscordLib(id, payload),
});
lavalink.connect("870267613635309618");
Handling Voice Updates
Lavalink requires voice updates to play audio in a voice channel, this may vary from library to library.
What you need for correctly sending voice updates to lavalink:
- A connection to the Discord gateway.
- Raw Voice State and Server updates
- Passing the data of the voice update to
(Cluster|Node)#handleVoiceUpdate
Playing Music
const results = await lavalink.rest.loadTracks(
"ytsearch:never gonna give you up",
);
await lavalink
.createPlayer("830616783199010857")
.connect("830638203739308053")
.play(results.tracks[0]);
this is a very poor way of playing music btw... checkout our discord.js example
Need some more help? Join our Support Server
lavaclient © 2018 - 2022