VoiceConnection rework (#1183)

* VoiceConnection rework

- improves codebase
- removes concept of pending connections
- attempts to fix memory leaks by removing EventEmitter listeners
- makes voice connections keep track of its own channel when it is moved by another user
- allows voice connections to reconnect when Discord falls back to another voice server or a region change occurs
- adds events for some of the aforementioned events

* Removed unused code

* More clean up / bugfixes

* Added typedefs to Status and VoiceStatus constants
This commit is contained in:
Programmix
2017-02-22 12:13:52 -08:00
committed by Amish Shah
parent eb069d0249
commit 7fd94c29d8
7 changed files with 350 additions and 276 deletions

View File

@@ -163,6 +163,16 @@ const Endpoints = exports.Endpoints = {
emoji: (emojiID) => `${Endpoints.CDN}/emojis/${emojiID}.png`,
};
/**
* The current status of the client. Here are the available statuses:
* - READY
* - CONNECTING
* - RECONNECTING
* - IDLE
* - NEARLY
* - DISCONNECTED
* @typedef {number} Status
*/
exports.Status = {
READY: 0,
CONNECTING: 1,
@@ -172,6 +182,23 @@ exports.Status = {
DISCONNECTED: 5,
};
/**
* The current status of a voice connection. Here are the available statuses:
* - CONNECTED
* - CONNECTING
* - AUTHENTICATING
* - RECONNECTING
* - DISCONNECTED
* @typedef {number} VoiceStatus
*/
exports.VoiceStatus = {
CONNECTED: 0,
CONNECTING: 1,
AUTHENTICATING: 2,
RECONNECTING: 3,
DISCONNECTED: 4,
};
exports.ChannelTypes = {
text: 0,
DM: 1,