- Fixed audio subsystem breaking (not buffering data) when using PM2 (process manager);
- Rate limited file uploads with streams now resend data correctly;
- Minor performance improvement for audio mixing without volume set.
- High level audio streams (
AudioEncoderStream
,FFmpegEncoder
,OggOpusPlayer
,WebmOpusPlayer
), instantiated usingIVoiceConnection.createExternalEncoder
andIVoiceConnection.getEncoderStream
.
- Rate limit handling for messages. All messages are now put in a queue and sent sequentially;
- Low level audio API extensions (
AudioEncoder
) - new methods.enqueueMultiple
and.clearQueue
; - Event
GUILD_CREATE
now has a parameterbecameAvailable
to discriminate between joined and unavailable guilds.
- Normal precision scheduling now processes packet queue correctly;
- AudioEncoder queue changed to pause after 1 second of inactivity;
- V4 READY timeout changed to reset after each
GUILD_CREATE
; - Fixed voice disconnecting after resuming gateway connection;
- Gateway V4 support;
- Exposed
GATEWAY_RESUMED
event; - Bans now can be added without member object -
IGuild.ban(user)
.
- Fully migrated to bot multiserver voice API (user accounts no longer can connect to more than one guild concurrently);
- Improved voice disconnect handling logic: more info in
VOICE_DISCONNECTED
event docs (no breaking changes); - Presence updates for friend lists are no longer dispatched over
PRESENCE_UPDATE
event; - (Discord-side)
Invites.accept
no longer works on bot accounts.
- Exposed
user.bot
boolean property; - Implemented offline guild members requesting:
Users.fetchMembers(singleGuildOrGuildsArray)
; - Alternative methods for deleting/editing messages by id:
Messages.editMessage(content, messageId, channelId)
;Messages.deleteMessage(messageId, channelId)
;
- Pending voice connections can now be cancelled with
.leave()
on the same channel.
GUILD_MEMBER_REMOVE
is now handled correctly and actually removes members from cache;- Fixed
IGuild.getPruneEstimate()
andIGuild.pruneMembers()
; - Encoder states are no longer created in proxy mode;
- Voice connections now properly disconnect on
GUILD_UNAVAILABLE
; - Fixed
IVoiceChannel.joined
reporting incorrect state for pending connections.
- Improved performance for voice encryption and RTP muxing.
- Memory and CPU usage has been reduced greatly;
- Implemented caching of member interfaces;
- Messages are sorted on insertion using binary sort, sorting after fetching is removed;
JSON.stringify
on interfaces returns a copy of raw model data instead of stringifying models recursively;- Interfaces can now be properly formatted (inspected) using
console.log
andutil.inspect
;
- Fix voice state tracking on
READY
for clients in multiple servers; - Cache voice server address on connect and no longer attempt to resolve hostname during UDP packet send calls;
- Fix
DirectMessageChannels.getOrOpen(recipient)
crashing on node 5.7.0;
- Improve performance of
<Collection>.get
;
- Fix voice leave or disconnect crashing the library when called for voice connections on secondary gateways;