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
Discord.js is a node module that allows you to interface with the Discord API for creation of things such as bots or loggers.
The aim of this API is to make it really simple to start developing your bots. This API has server, channel and user tracking, as well as tools to make identification really simple.
The new rewrite of the API (version 3+) is written in ECMAScript 6 and compiled down to EC5 using Babel. It allows the code to be written faster and more consistently, and take use of new features.
New update break your code? Read why here.
Find the website here.
For more information, click here.
This module is still in alpha - especially the newer versions!
This node module is still in alpha, and some methods and functions may change or completely disappear!
Installation
npm install --save discord.js
Features
- Send, Receive Delete and Edit messages from channels and DMs! Auto-initiates DMs for you!
- Create, Delete and Leave servers and channels
- Create invites for Servers
- Silent Mention - trigger mention notification without actually @mentioning a user!
- Get complete metadata on users, channels and servers - including avatars.
- Get limitless logs from channels.
- Fast and efficient caching
- Auto-cache messages
Example usage
var Discord = require( "discord.js" );
var myBot = new Discord.Client();
myBot.login( "hello@example.com", "password1" );
myBot.on( "ready", function() {
console.log( "Bot connected successfully." );
} );
myBot.on( "message", function( message ) {
if ( message.content === "ping" ) {
this.sendMessage( message.channel, "pong" );
}
} );
TODO
- Joining servers from an invite
- Stealthy Ninja support