Introduction
🤖 Un module pour créer des bots Discord avec NestJS, basé sur Discord.js
À propos
Ce package utilise le meilleur de l'univers NodeJS en coulisses. Discord.js est la bibliothèque la plus puissante pour créer des bots et Nest.js est un framework progressif pour créer des applications bien architecturées. Ce module offre un moyen rapide et simple de créer des bots Discord et une intégration approfondie avec votre application NestJS.
Fonctionnalités
- Simple. Flexible. Facile à utiliser.
- Possibilité de créer des décorateurs personnalisés.
- Interagissez avec Discord (commandes slash, menus contextuels, composants de message, écouteurs).
- Prise en charge complète des guards, intercepteurs, filtres et pipes de NestJS !
Pour toute question ou demande d'assistance, veuillez utiliser les Issues.
Installation
Node.js 18.0.0 ou une version plus récente est requis.
- npm
- Yarn
- pnpm
- Bun
$ npm install necord discord.js
$ yarn add necord discord.js
$ pnpm add necord discord.js
$ bun add necord discord.js
Utilisation
Une fois le processus d'installation terminé, nous pouvons importer le NecordModule dans le AppModule racine :
import { NecordModule } from 'necord';
import { Module } from '@nestjs/common';
import { IntentsBitField } from 'discord.js';
import { AppUpdate } from './app.update';
@Module({
imports: [
NecordModule.forRoot({
token: 'DISCORD_BOT_TOKEN',
intents: [IntentsBitField.Flags.Guilds]
})
],
providers: [AppUpdate]
})
export class AppModule {}
Créez ensuite le fichier app.update.ts et ajoutez les décorateurs On/Once pour gérer les événements de l'API Discord :
import { Injectable, Logger } from '@nestjs/common';
import { Context, On, Once, ContextOf } from 'necord';
import { Client } from 'discord.js';
@Injectable()
export class AppUpdate {
private readonly logger = new Logger(AppUpdate.name);
public constructor(private readonly client: Client) {}
@Once('clientReady')
public onReady(@Context() [client]: ContextOf<'clientReady'>) {
this.logger.log(`Bot logged in as ${client.user.username}`);
}
@On('warn')
public onWarn(@Context() [message]: ContextOf<'warn'>) {
this.logger.warn(message);
}
}
Chaque fois que vous devez traiter des données d'événement, utilisez le décorateur Context.
