discord.js/packages/discord.js
Jiralite 638b896efa
fix: Throw error on no message id for Message#fetchReference() (#10295)
* docs(MessageReference): ? is nullable, not `undefined`

* docs(MessageReference): sort by message type

* fix(Message): add throw

* docs(MessageReference): fix English

---------

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2024-05-24 13:09:59 +00:00
..
docs fix: fix external links (#9313) 2023-04-07 10:35:56 +00:00
scripts fix: export "ESM" types when discord.js is imported in ESM land (#10009) 2023-11-30 23:19:22 +00:00
src fix: Throw error on no message id for Message#fetchReference() (#10295) 2024-05-24 13:09:59 +00:00
test feat: polls (#10185) 2024-04-30 23:21:07 +00:00
typings refactor(GuildChannelManager): improve addFollower errors (#10277) 2024-05-17 13:14:03 +00:00
.cliff-jumperrc.json chore: No identifier base in development versions (#9848) 2023-10-03 19:24:13 +00:00
.eslintrc.json types: use readonly array / collection types for user input (#10045) 2024-02-23 00:29:06 +00:00
.gitignore fix: export "ESM" types when discord.js is imported in ESM land (#10009) 2023-11-30 23:19:22 +00:00
.lintstagedrc.json build: refactor linting setup 2023-08-24 06:43:23 +02:00
.prettierignore chore: refactor workspace 2023-05-03 02:14:22 +02:00
.prettierrc.json chore: config overhaul 2023-08-22 01:33:47 +02:00
api-extractor.json feat: mainlib docs on new website (#9930) 2023-11-08 10:16:54 +01:00
CHANGELOG.md chore: fix changelogs 2024-05-05 21:00:59 +03:00
cliff.toml build: git-cliff config 2023-04-02 01:55:39 +02:00
LICENSE feat: docgen package (#8029) 2022-06-07 10:51:33 +02:00
package.json chore(discord.js): release discord.js@14.15.2 2024-05-05 21:00:59 +03:00
README.md docs(create-discord-bot): support bun in create-discord-bot (#9798) 2023-08-28 09:36:26 +02:00
tsconfig.json chore: remove ws dependency (#10180) 2024-03-31 14:09:38 +00:00
tslint.json chore: config overhaul 2023-08-22 01:33:47 +02:00


discord.js


Discord server npm version npm downloads Tests status Code coverage

Vercel Cloudflare Workers

About

discord.js is a powerful Node.js module that allows you to easily interact with the Discord API.

  • Object-oriented
  • Predictable abstractions
  • Performant
  • 100% coverage of the Discord API

Installation

Node.js 16.11.0 or newer is required.

npm install discord.js
yarn add discord.js
pnpm add discord.js
bun add discord.js

Optional packages

  • zlib-sync for WebSocket data compression and inflation (npm install zlib-sync)
  • bufferutil for a much faster WebSocket connection (npm install bufferutil)
  • utf-8-validate in combination with bufferutil for much faster WebSocket processing (npm install utf-8-validate)
  • @discordjs/voice for interacting with the Discord Voice API (npm install @discordjs/voice)

Example usage

Install discord.js:

npm install discord.js
yarn add discord.js
pnpm add discord.js
bun add discord.js

Register a slash command against the Discord API:

import { REST, Routes } from 'discord.js';

const commands = [
  {
    name: 'ping',
    description: 'Replies with Pong!',
  },
];

const rest = new REST({ version: '10' }).setToken(TOKEN);

try {
  console.log('Started refreshing application (/) commands.');

  await rest.put(Routes.applicationCommands(CLIENT_ID), { body: commands });

  console.log('Successfully reloaded application (/) commands.');
} catch (error) {
  console.error(error);
}

Afterwards we can create a quite simple example bot:

import { Client, GatewayIntentBits } from 'discord.js';
const client = new Client({ intents: [GatewayIntentBits.Guilds] });

client.on('ready', () => {
  console.log(`Logged in as ${client.user.tag}!`);
});

client.on('interactionCreate', async interaction => {
  if (!interaction.isChatInputCommand()) return;

  if (interaction.commandName === 'ping') {
    await interaction.reply('Pong!');
  }
});

client.login(TOKEN);

Extensions

Contributing

Before creating an issue, please ensure that it hasn't already been reported/suggested, and double-check the documentation.
See the contribution guide if you'd like to submit a PR.

Help

If you don't understand something in the documentation, you are experiencing problems, or you just need a gentle nudge in the right direction, please don't hesitate to join our official discord.js Server.