isonmad e9fa8a438c fix Client.destroy bugs (#828)
* add test for Client.destroy()

* propagate errors in ClientManager.destroy

If the promise returned by logout() rejects, previously
it would be completely uncaught, and just return an
eternally pending promise that never resolved.

* fix RESTMethods.logout

Without a data argument, the POST that superagent sends causes
the discord server to reply with a HTTP 400 error:

text: '{"Content-Type": "Expected Content-Type to be one of set([\'application/json\'])."}',

* fix Client.destroy

_timeouts and _intervals were changed to Set objects in
commit 6ede7a32fd a month ago.

Changing them to arrays causes failures if you try to reuse
the client object again.

* always close websocket in ClientManager.destroy

Invoking logout does not implicitly cause the server to close
the websocket for you, so cleanup everything.

Otherwise the websocket being open keeps node alive and hanging
mysteriously until the connection hits a timeout.

* fix indentation for eslint
2016-10-26 14:49:45 +01:00
2016-10-25 19:47:17 +01:00
2016-10-26 14:49:45 +01:00
2016-10-26 14:49:45 +01:00
2016-09-23 21:43:16 +01:00
2016-10-14 01:26:54 -04:00
2016-04-16 22:58:49 +01:00
Evie 😒
2016-10-24 01:10:52 -04:00

discord.js

Discord npm npm Build Status David

NPM

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.

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.

Languages
TypeScript 61.1%
JavaScript 28.5%
MDX 10.1%
CSS 0.2%