What is discord.js?
discord.js is a powerful Node.js module that allows you to interact with the Discord API very easily. It provides a comprehensive set of features to create bots and manage Discord servers.
What are discord.js's main functionalities?
Creating a Bot
This code demonstrates how to create a simple Discord bot using discord.js. The bot logs 'Ready!' to the console when it is successfully logged in and ready.
const { Client, GatewayIntentBits } = require('discord.js');
const client = new Client({ intents: [GatewayIntentBits.Guilds] });
client.once('ready', () => {
console.log('Ready!');
});
client.login('your-token-goes-here');
Handling Messages
This code shows how to handle messages in a Discord server. When a user sends a message with the content '!ping', the bot responds with 'Pong!'.
client.on('messageCreate', message => {
if (message.content === '!ping') {
message.channel.send('Pong!');
}
});
Managing Roles
This code demonstrates how to manage roles in a Discord server. When a user sends a message with the content '!addRole', the bot adds a role named 'NewRole' to the user.
client.on('messageCreate', async message => {
if (message.content === '!addRole') {
let role = message.guild.roles.cache.find(r => r.name === 'NewRole');
if (role) {
await message.member.roles.add(role);
message.channel.send('Role added!');
}
}
});
Sending Embeds
This code shows how to send embedded messages in Discord. When a user sends a message with the content '!embed', the bot responds with a rich embed message.
const { MessageEmbed } = require('discord.js');
client.on('messageCreate', message => {
if (message.content === '!embed') {
const embed = new MessageEmbed()
.setTitle('Sample Embed')
.setDescription('This is an example of an embed message')
.setColor(0xff0000);
message.channel.send({ embeds: [embed] });
}
});
Other packages similar to discord.js
eris
Eris is another powerful library for interacting with the Discord API. It is known for being lightweight and efficient, making it a good alternative to discord.js. However, it may have a steeper learning curve for beginners.
discord.io
discord.io is a small, lightweight library for interfacing with Discord. It is less feature-rich compared to discord.js and Eris, but it can be a good choice for simpler bots or for those who prefer a minimalistic approach.
discord.js is a powerful node.js module that allows you to interact with the Discord API.
Installation
Node.js 6.0.0 or newer is required.
Without voice support: npm install discord.js --save
With voice support (node-opus): npm install discord.js node-opus --save
With voice support (opusscript): npm install discord.js opusscript --save
If both audio packages are installed, discord.js will automatically choose node-opus.
The preferred audio engine is node-opus, as it performs significantly better than opusscript.
Using opusscript is only recommended for development on Windows, since getting node-opus to build there can be a bit of a challenge.
For production bots, using node-opus should be considered a necessity, especially if they're going to be running on multiple servers.
Example Usage
const Discord = require('discord.js');
const client = new Discord.Client();
client.on('ready', () => {
console.log('I am ready!');
});
client.on('message', message => {
if (message.content === 'ping') {
message.reply('pong');
}
});
client.login('your token');
A bot template using discord.js can be generated using generator-discordbot.
Links
Contributing
Before creating an issue, please ensure that it hasn't already been reported/suggested, and double-check the
documentation.
See the contributing 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.