Перейти к содержанию

Введение

Necord Logo

🤖 Модуль для создания Discord ботов с помощью NestJS, основанный на Discord.js

Документация ✨Исходный код 🪡Примеры 🛠️Сообщество 💬

NPM VersionNPM LicenseNPM DownloadsLast commit

Что это?

Этот пакет использует лучшие возможности платформы NodeJS. Discord.js — это самая мощная библиотека для создания ботов, а Nest.js — это прогрессивный фреймворк для создания хорошо структурированных приложений. Этот модуль обеспечивает быстрый и простой способ создания ботов для Discord и глубокую интеграцию с вашим приложением на NestJS.

Особенности

  • Простой. Гибкий. Легкий в использовании.
  • Возможность создания собственных декораторов.
  • Взаимодействие с Discord (интерактивные команды, контекстные меню, компоненты сообщений, обработчики событий).
  • Полная поддержка фишек и функционала NestJS!

Для вопросов и поддержки используйте раздел Проблем.

Установка

Требуется Node.js 18.0.0 или новее.

$ npm install necord discord.js

Использование

После завершения процесса установки мы можем импортировать NecordModule в корневой AppModule:

src/app.module.ts
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 {}

Затем создайте файл app.update.ts и добавьте декораторы On/Once для обработки событий Discord API:

src/app.update.ts
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 logged in as ${client.user.username}`);
}

@On('warn')
public onWarn(@Context() [message]: ContextOf<'warn'>) {
this.logger.warn(message);
}
}

Когда вам нужно обработать какие-либо данные о событиях, используйте декоратор Context.