Documentation β¨ β Source code πͺ‘ β Examples π οΈ β Community π¬
Transform your bot into a professional DJ with the power of the Lavalink ecosystem. This package uses lavalink-client behind the scenes, providing a high-performance and efficient solution for managing audio streams on Discord. By leveraging Lavalink, your bot gains the ability to manage audio playback, queues, and real-time controls with minimal latency, transforming it into a fully capable and professional music system.
Node.js 18.0.0 or newer is required.
$ npm i @necord/lavalink necord discord.js
$ yarn add @necord/lavalink necord discord.js
$ pnpm add @necord/lavalink necord discord.js
Once the installation process is complete, we can import the NecordLavalinkModule
into the root AppModule
:
import { NecordLavalinkModule } from '@necord/lavalink';
import { Module } from '@nestjs/common';
import { Client } from 'discord.js';
import { AppUpdate } from './app.update';
@Module({
imports: [
NecordLavalinkModule.forRoot({
nodes: [
{
authorization: 'youshallnotpass',
host: 'localhost',
port: 2333,
id: 'main_node'
}
]
})
],
providers: [AppUpdate]
})
export class AppModule {
}
Then create app.update.ts
file and add OnLavalinkManager
/OnceLavalinkManager
decorators for handling LavalinkManager events and
OnNodeManager
/OnceNodeManager
decorators for handling NodeManager events:
import { Injectable, Logger } from '@nestjs/common';
import { Context } from 'necord';
import { OnLavalinkManager, OnNodeManager, LavalinkManagerContextOf, NodeManagerContextOf } from '@necord/lavalink';
@Injectable()
export class AppUpdate {
private readonly logger = new Logger(AppUpdate.name);
@OnNodeManager('connect')
public onReady(@Context() [node]: NodeManagerContextOf<'connect'>) {
this.logger.log(`Node: ${node.options.id} Connected`);
}
@OnLavalinkManager('playerCreate')
public onPlayerCreate(@Context() [player]: LavalinkManagerContextOf<'playerCreate'>) {
this.logger.log(`Player created at ${player.guildId}`);
}
}
Whenever you need to handle any event data, use the Context
decorator.
If you want to fully dive into Necord, check out these resources:
- Necord Wiki - Official documentation of Necord.
- Nest JS - A progressive framework for creating well-architectured applications.
- Discord JS - The most powerful library for creating bots.
- Discord API - Official documentation of Discord API.
- Lavalink - Official Lavalink documentation.
- lavalink-client - Easy, flexible and feature-rich lavalink@v4 Client.
- Author - Alexey Filippov
- Twitter - @SocketSomeone