Introdução
🤖 Um modulo para criar bots do Discord usando NestJS, baseado no Discord.js
Sobre
Este pacote usa o melhor do mundo NodeJS debaixo do pano. Discord.js é a biblioteca mais poderosa para criar bots e Nest.js é um framework progressivo para a criação de aplicações bem arquitetadas. Este módulo fornece uma maneira rápida e fácil para criar bots do Discord e uma integração profunda com sua aplicação NestJS.
Recursos
- Simples. Flexível. Fácil de usar.
- Capacidade de criar decoradores personalizados.
- Interaja com o Discord (Slash Commands, Menus de Contexto, Componentes de Mensagem, Listeners).
- Suporte completo de guards NestJS, interceptors, filtros e pipes!
Para perguntas e suporte, por favor use o Issues.
Instalação
Node.js 18.0.0 ou mais recente é necessário.
- npm
- Yarn
- pnpm
$ npm install necord discord.js
$ yarn add necord discord.js
$ pnpm add necord discord.js
Utilização
Uma vez que o processo de instalação estiver concluído, nós podemos importar o NecordPaginationModule
com o seu NecordModule
para a raiz AppModule
:
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 {}
Em seguida, crie o arquivo app.update.ts
e adicione os decoradores On
/Once
para lidar com eventos de API do 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('ready')
public onReady(@Context() [client]: ContextOf<'ready'>) {
this.logger.log(`Bot conectado como ${client.user.username}`);
}
@On('warn')
public onWarn(@Context() [message]: ContextOf<'warn'>) {
this.logger.warn(message);
}
}
Sempre que você precisar manipular qualquer dado de eventos, use o decorador Context
.