Введение
🤖 A module for creating Discord bots using NestJS, based on Discord.js
Documentation ✨   Source code 🪡   Examples 🛠️   Community 💬
Что это?
Этот пакет использует лучшее из мира NodeJS под капотом. Discord.js - самая мощная библиотека для создания ботов, а Nest.js - прогрессивный фреймворк для создания хорошо структурированных приложений. Этот модуль обеспечивает быстрый и простой способ создания ботов Discord и глубокую интеграцию с вашим приложением NestJS.
Особенности
- Простота. Гибкость. Простота в использовании.
- Возможность создания пользовательских декораторов.
- Взаимодействие с Discord (слэш-команды, контекстное меню, компоненты сообщений, слушатели).
- Полная поддержка фишек и функционала NestJS!
Для вопросов и поддержки используйте [Issues] (https://github.com/GlobalArtInc/nestcord/issues/new?assignees=&labels=question&template=question.yml).
Установка
Требуется Node.js 16.6.0 или новее.
- npm
- Yarn
- pnpm
- Bun
$ npm install @globalart/nestcord discord.js
$ yarn add @globalart/nestcord discord.js
$ pnpm add @globalart/nestcord discord.js
$ bun add @globalart/nestcord discord.js
Использование
После завершения процесса установки мы можем импортировать NestCordModule
в корневой AppModule
:
import { NestCordModule } from '@globalart/nestcord';
import { Module } from '@nestjs/common';
import { IntentsBitField } from 'discord.js';
import { AppUpdate } from './app.update';
@Module({
imports: [
NestCordModule.forRoot({
token: 'DISCORD_BOT_TOKEN',
intents: [IntentsBitField.Flags.Guilds]
})
],
providers: [AppUpdate]
})
export class AppModule {}
Затем создайте файл app.update.ts
и добавьте декораторы On
/Once
для обработки событий Discord API:
import { Injectable, Logger } from '@nestjs/common';
import { Context, On, Once, ContextOf } from '@globalart/nestcord';
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 logged in as ${client.user.username}`);
}
@On('warn')
public onWarn(@Context() [message]: ContextOf<'warn'>) {
this.logger.warn(message);
}
}
Когда вам нужно обработать какие-либо данные о событиях, используйте декоратор Context
.