Files
discord.js/README.md
Gus Caplan 1e5afc1608 Add etf encoding support with erlpack (#943)
* the performance from this is astounding

* help uws

* save 15 bytes in webpacks

* update readme

* why is markdown like this

* optimizations

* Update WebSocketManager.js
2016-12-02 21:35:59 -05:00

4.4 KiB


discord.js


Discord server NPM version NPM downloads Build status Dependencies

NPM info

About

discord.js is a powerful node.js module that allows you to interact with the Discord API very easily. It takes a much more object-oriented approach than most other JS Discord libraries, making your bot's code significantly tidier and easier to comprehend. Usability and performance are key focuses of discord.js, and it also has nearly 100% coverage of 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
With a fast websocket client (uws) npm install discord.js uws --save
With fast websocket encoding (erlpack) npm install disscord.js hammerandchisel/erlpack --save

The preferred audio engine is node-opus, as it performs significantly better than opusscript. When both are available, discord.js will automatically choose node-opus. Using opusscript is only recommended for development environments where node-opus is tough to get working. 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.

Web distributions

Web builds of discord.js that are fully capable of running in browsers are available here. These are built by Webpack 2. The API is identical, but rather than using require('discord.js'), the entire Discord object is available as a global (on the window object). The ShardingManager and any voice-related functionality is unavailable in these builds.

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.