Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/qeled/discordie

Predictable JavaScript abstractions for Discord API.
https://github.com/qeled/discordie

Last synced: 30 days ago
JSON representation

Predictable JavaScript abstractions for Discord API.

Awesome Lists containing this project

README

        

# Discordie

[![npm](https://img.shields.io/npm/dm/discordie.svg)](https://www.npmjs.com/package/discordie)

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

[**Documentation**](http://qeled.github.io/discordie/)

**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](https://discord.gg/0SBTUU1wZTYM8nHo) in [Discord API](https://discord.gg/0SBTUU1wZTYM8nHo).

## 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`](https://github.com/qeled/discordie/blob/master/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

```js
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**](https://github.com/RogueException/Discord.Net) ||
[Luigifan/**DiscordSharp**](https://github.com/Luigifan/DiscordSharp) ||
[robinhood128/**DiscordUnity**](https://github.com/robinhood128/DiscordUnity)

**Node.js**:
[izy521/**discord.io**](https://github.com/izy521/discord.io) ||
[hydrabolt/**discord.js**](https://github.com/hydrabolt/discord.js) ||
[abalabahaha/**eris**](https://github.com/abalabahaha/eris)

**Python**:
[Rapptz/**discord.py**](https://github.com/Rapptz/discord.py)

**Ruby**:
[meew0/**discordrb**](https://github.com/meew0/discordrb)

**Go**:
[bwmarrin/**discordgo**](https://github.com/bwmarrin/discordgo)

**Rust**:
[SpaceManiac/**discord-rs**](https://github.com/SpaceManiac/discord-rs)

**PHP**:
[teamreflex/**DiscordPHP**](https://github.com/teamreflex/DiscordPHP) ||
[Cleanse/**discord-hypertext**](https://github.com/Cleanse/discord-hypertext)

**Java**:
[austinv11/**Discord4J**](https://github.com/austinv11/Discord4J) ||
[DV8FromTheWorld/**JDA**](https://github.com/DV8FromTheWorld/JDA/) ||
[BtoBastian/**Javacord**](https://github.com/BtoBastian/Javacord)

**Lua**:
[SinisterRectus/**Discordia**](https://github.com/SinisterRectus/Discordia) ||
[satom99/**litcord**](https://github.com/satom99/litcord)