@discordx/lava-player
TypeScript icon, indicating that this package has built-in type declarations

1.1.1 • Public • Published

Discord server NPM version NPM downloads Build status paypal

Create a discord bot with TypeScript and Decorators!

📖 Introduction

A powerful lava link player library written in TypeScript for Node.js. Support youtube links.

💻 Installation

Version 16.6.0 or newer of Node.js is required

npm install @discordx/lava-player
yarn add @discordx/lava-player

Note: Required lavalink up and running

🤖 Bot Examples

None

Note: Create a pull request to include your bot in the example list.

Getting Started

const node = new Lava.Node({
  host: {
    address: process.env.LAVA_HOST ?? "",
    port: Number(process.env.LAVA_PORT) ?? 2333,
  },

  // your Lavalink password
  password: process.env.LAVA_PASSWORD ?? "",

  send(guildId, packet) {
    const guild = client.guilds.cache.get(guildId);
    if (guild) {
      guild.shard.send(packet);
    }
  },
  shardCount: 0, // the total number of shards that your bot is running (optional, useful if you're load balancing)
  userId: client.user?.id ?? "", // the user id of your bot
});

client.ws.on("VOICE_STATE_UPDATE", (data: Lava.VoiceStateUpdate) => {
  node.voiceStateUpdate(data);
});

client.ws.on("VOICE_SERVER_UPDATE", (data: Lava.VoiceServerUpdate) => {
  node.voiceServerUpdate(data);
});

Get Guild Player

const player = node.players.get("guild id");

Join Voice Channel

await player.join("channel id");

Play Track

const res = await voice.load("ytsearch:monstercat");
await player.play(res.tracks[0]);

Stop Music

await player.stop();
// or, to destroy the player entirely
await player.destroy();

Clustering

const cluster = new Lava.Cluster({
  nodes: [
    // node options here; see above
  ],
  send(guildId, packet) {
    // send to gateway; same as for single node usage
  },
  filter(node, guildId) {
    // optional
    // return a boolean indicating whether the given guild can be run on the given node
    // useful for limiting guilds to specific nodes (for instance, if you setup lavalink edge servers to minimize latency)
    // this must return true at least once for a given set of nodes, otherwise some methods may error
  },
});

📜 Documentation

☎️ Need help?

💖 Thank you

You can support discordx by giving it a GitHub star.

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 1.1.1
    20
    • latest

Version History

Package Sidebar

Install

npm i @discordx/lava-player

Weekly Downloads

133

Version

1.1.1

License

Apache-2.0

Unpacked Size

79.5 kB

Total Files

9

Last publish

Collaborators

  • samarmeena