Predictable JavaScript abstractions for Discord API.
JavaScript

readme.md

Discordie

npm

A Node.js module providing a set of interfaces to interact with Discord API.

Documentation

Requires at least Node.js 4.0.0.

No native modules required to work with audio. Choose from precompiled (default) or node-opus (optional).

Join #node_discordie in Discord API.

Fully Implemented

  • Messaging
  • Role and channel permission management API
  • Member management API (kicking, banning, etc.)
  • Direct messages
  • Voice encoding, sending, decoding and receiving (audio streaming example: examples/encoderstream.js)
  • Guild (server) and channel management API
  • Local user profile (username change, statuses, avatars)
  • Multiserver voice support

Documentation

http://qeled.github.io/discordie/

Mirrors inline documentation in files:

  • lib/interfaces/*.js
  • lib/models/*.js
  • lib/voice/*.js
  • lib/Constants.js
  • lib/index.js

Example

var Discordie = require("discordie");
var Events = Discordie.Events;

var client = new Discordie();

client.connect({ token: "" });

client.Dispatcher.on(Events.GATEWAY_READY, e => {
  console.log("Connected as: " + client.User.username);
});

client.Dispatcher.on(Events.MESSAGE_CREATE, e => {
  if (e.message.content == "ping")
    e.message.channel.sendMessage("pong");
});

Related

Library comparison: https://discordapi.com/unofficial/comparison.html

.NET: RogueException/Discord.Net || Luigifan/DiscordSharp || robinhood128/DiscordUnity

Node.js: izy521/discord.io || hydrabolt/discord.js || abalabahaha/eris

Python: Rapptz/discord.py

Ruby: meew0/discordrb

Go: bwmarrin/discordgo

Rust: SpaceManiac/discord-rs

PHP: teamreflex/DiscordPHP || Cleanse/discord-hypertext

Java: austinv11/Discord4J || DV8FromTheWorld/JDA || BtoBastian/Javacord

Lua: SinisterRectus/Discordia || satom99/litcord