Skip to content

Releases: discordjs/discord.js

11.5.0

11 May 23:16
Compare
Choose a tag to compare

Overview

11.5.0 is being released to fix bugs from 11.4.2, backport new events from v12.0.0-dev and prepare users for the release of v12.0.0.

Deprecations

  • All user account-only methods have been deprecated (95a2d25)
  • ClientUser#setGame in favor of ClientUser#setActivity (cd06684)
  • Collection#exists in favor of Collection#some (09ddbcb)
  • Collection#find and Collection#findKey's 'prop', 'val' overload is deprecated, pass a function instead (09ddbcb)
  • Collection#filterArray, convert to an array and filter, or the other way around instead. (09ddbcb)
  • Collection#findAll, filter and then convert to an array, or the other way around. In addition, the 'prop', 'val' overload is also deprecated - pass a function instead (09ddbcb)
  • Guild#createChannel when specifying options without using an options object (7ea88ad)
  • Guild#defaultChannel, there will be no fallback/alternative (407500b)
  • Permissions.flags: READ_MESSAGES in favor of VIEW_CHANNEL (1fe201a)
  • Permissions#allowed and Permissions#denied in favor of Permissions#allow and Permissions#deny respectively (58ba2c7)

Additions

  • Add support for news and store channels (5e4654e, 8a086e0)
  • Add WEBHOOKS_UPDATE event (4530981, bd14d5d)
  • add GUILD_INTEGRATIONS_UPDATE event (3345c77)
  • Add WHITE as a ColorResolvable (5272cec)
  • Add support for creating a channel via Guild#createChannel with a position (7bc2e23)
  • Add support for all possible options in Guild#createChannel (7ea88ad, 691aaef)
  • Add Guild#fetchBan (5cd6d8d)
  • Add withReasons parameter to Guild#fetchBans (5cd6d8d)
  • Add Guild#fetchEmbed and Guild#setEmbed (091b4fc)
  • Add Guild#fetchVanityCode (c6201ee)
  • Add ClientOptions#retryLimit (e0f522a)
  • Add Presence#clientPresence (a2a0c05)
  • Add support for RichEmbed#setTimestamp to accept a numeric timestamp (49e8bd9)
  • Add RichEmbed#length (890b1be)
  • Add TextBasedChannel#lastPinTimestamp and TextBasedChannel#lastPinAt (ea3e575)
  • Add TextChannel#rateLimitPerUser and TextChannel#setRateLimitPerUser (1e85887)
  • Add error code 50020 (359ddaf)
  • Add support for voice kicking (ee42bdf)

Fixes

  • Correct webpack improperly handing deprecation warnings (7684ad3)
  • Ignore voice states referencing an invalid channel (73aaab5)
  • You can now create dispatchers with a volume of 0 (745e18b)
  • Emoji#fetchAuthor now rejects with a more descriptive error when missing MANAGE_EMOJI permissions (45a17e7)
  • Guild#addMember not resolving correctly if provided a user id (93bf430)
  • Guild#deleteEmoji will reject non-emoji objects or id's (cd58599)
  • GuildChannel#lockPermissions not resolving permission bitfields correctly (1fc84a9)
  • GuildMembers removed from their VoiceChannel when leaving the guild (b3f4590)
  • GuildMember#edit and GuildMember#setVoiceChannel throw a more descriptive error when passed bad input (a0ff72b)
  • Message#editedTimestamp being null after edits (616e0dd)
  • Permissions.resolve not accepting a Permissions instance (5d889be)
  • Roles with the same position are sorted in the correct order (923c945)
  • Util.splitMessage now throws an error if any, not just one, chunk exceeds the max length (1618829)
  • WebhookClient not handling ratelimit event properly (4ee3cf0)

11.4.2

13 Aug 14:23
ebfbf20
Compare
Choose a tag to compare

Overview

  • Typings are now included
  • Document ChannelData.parent and .permissionOverwrites, fix typedefs (3021e5c)

11.4.1

12 Aug 21:04
Compare
Choose a tag to compare

Overview

  • Fixes bugs from 11.4.0

Deprecations

  • Guild#defaultChannel, there will be no fallback/alternative (407500b)
  • Permissions: READ_MESSAGES, use VIEW_CHANNEL instead (1fe201a)
  • ClientUser#setGame, use ClientUser#setActivity instead (cd06684)
  • Collection#filterArray, convert to an array and filter, or the other way round instead. (09ddbcb)
  • Collection#findAll, same as Collection#filterArray but also pass a function instead (09ddbcb)
  • Collection#exists, use Collection#filter and convert to a boolean instead. (09ddbcb)
  • Collection#find and Collection#findKey's 'key', 'property' overload, pass a function instead. (09ddbcb)
  • All user bot methods (95a2d25)

Fixes

  • RichEmbed fields not getting set (7126cad)
  • Preemptively replacing channels when it already exists (d772bff)
  • Voice dependencies (72bb9cb)

11.4.0

09 Aug 17:11
bef0715
Compare
Choose a tag to compare

Overview

  • Fixes bugs from 11.3
  • Backports features such as Rich Presence

Deprecations

  • Guild#defaultChannel, there will be no fallback/alternative (407500b)
  • Permissions: READ_MESSAGES, use VIEW_CHANNEL instead (1fe201a)
  • ClientUser#setGame, use ClientUser#setActivity instead (cd06684)
  • Collection#filterArray, convert to an array and filter, or the other way round instead. (09ddbcb)
  • Collection#findAll, same as Collection#filterArray but also pass a function instead (09ddbcb)
  • Collection#exists, use Collection#filter and convert to a boolean instead. (09ddbcb)
  • Collection#find and Collection#findKey's 'key', 'property' overload, pass a function instead. (09ddbcb)
  • All user bot methods (95a2d25)

Additions

  • Backport GuildChannel#manageable getter (49ad8cc)
  • Backport Guild#mfaLevel property (7b9e84d)
  • Backport the ability to dynamically generate Snowflakes (d9a091f)
  • Backport DiscordAPIError#method property (8700e96)
  • Backport support for discord.gg/invite/<code> invites when using Client#fetchInvite (21326f6)
  • Backport Emoji#deletable getter (ed8ab91)
  • Backport Permissions#valueOf method (2d83126)
  • Backport 2 basic role colors, LUMINOUS_VIVID_PINK and DARK_VIVID_PINK (96b115e)
  • Backport Guild#verified getter (9169958)
  • Backport TextChannel#setNSFW method (54913d9)
  • Backport Game#toString method (c0ca73a)
  • Backport Emoji#fetchAuthor method (dd7eedb)
  • Backport GuildChannel#fetchInvites method (9904167)
  • Backport GuildMember#manageable getter (9bb8831)
  • Backport Collection#sweep method (2b6592e)
  • Backport Collection#tap method (de7d90a)
  • Backport Client#rateLimit event (0d90798) (6f02be2)
  • Backport Collection#partition method (f456f4c)
  • Backport RichPresence (6de5acb)
  • Backport deleted property (3fa9ed1)
  • Backport DefaultMessageNotifications (0702a0f)
  • Backport permissions improvements for Guild#createChannel and add Guild#replacePermissionOverwrites and GuildChannel#lockPermissions (524a15d)
  • Backport Webhook#token enumerability (96011cf)
  • Backport Message#url (41f6eaa)
  • Backport PRIORITY_SPEAKER permission (c33ab1e)
  • Backport TextChannel#bulkDelete accepts Snowflake[] parameter (c76f304)
  • Backport GuildChannel#permissionsFor that also takes a RoleResolvable (1e5b5b8)
  • Backport Permissions#toArray (6da423f)

Fixes

  • Allow GuildChannel#edit to clear its parent (6e5b674) and topic (92b4216)
  • Allow Role#edit to set the permissions to 0 (no permissions) (7c0b617)
  • 0 is a valid PermissionsResolvable (7c0b617)
  • Properly resolve permissions in Client#generateInvite (c387e96)
  • Remove bulk deleted messages from cache (7c37a0d)
  • Resolve with the correct member in RESTMethods#addMemberRole and RESTMethods#removeMemberRoles (de78a8d)
  • Do not update Message#editedTimestamp when there is none in the payload (3ba26ad)
  • Do not throw an error when accessing MessageEmbed#hexColor when the embed has no color (b60ee25)
  • Use Object.values instead of Object.keys to stay compatible with node 6 (feb0991)
  • Use the provided voice IP from discord directly instead of resolving its host name (b056227)
  • Reject on null image resolvable with a meaningful error (44fefdf)
  • Throw a descriptive error when not finding an opus engine (33a4232)
  • ClientUser#setActivity incorrectly resolving with the ClientUser instead of its Presence (a85d801)
  • Clean up event listener on failure in GuildMember#addRole and GuildMember#removeRole (a89de09)
  • Increase and decrease the amount of max listeners dynamically to avoid MaxListenersExceededWarning when using Collectors (60288d0)
  • Use Buffer.alloc instead of deprecated new Buffer (bd9c9ce)
  • Allow to remove the color of a role (2f2e281)
  • Allow to send files of url which does not resolve to a buffer by default (ae28f52)
  • Decrement Guild#memberCount when an uncached member leaves (15a8e17)
  • Avoid permanently hanging of the burst ratelimit handler (3790619)
  • Correctly resolve nicknames of users when creating a group dm with a bot (f23b617)
  • Properly validating CONNECT permissions in VoiceChannel#deletable (0387d34)
  • ShardClientUtil#send erroneously rejected on large payloads (eef4a4a), (493ba73)
  • MessageReaction#fetchUsers will now properly resolve with the fetched user rather than the full cache (f238883)
  • GuildMember#joinedAt is not guaranteed (ecf6e2b), (bd3d8d4)
  • Do not cache webhook users to preserver the correct username and avatar for all their messages (8a3ae87)
  • Ensure TextChannel#bulkDelete always returns a Promise (72346fb)
  • Proper rejection when providing a falsy token (448f384, a667e44)
  • Ensure VoiceChannel#bitrate gets set (695ff1e)
  • Keep reply option and do not throw an error when passing Message#reply an embed (1d9edec)
  • Fix channel bitrate not set when missing unnecessary permissions (695ff1e)
  • Do not try to send voice packets via udp when there is no socket (d81441f)
  • Proper rejection of using Emoji#fetchAuthor when an emoji is managed (d685e39)
  • Allow constructing RichEmbed from MessageEmbed (6d70da5, 87b4b23)

11.3.2

04 Mar 18:14
e5bd6ec
Compare
Choose a tag to compare

Overview

  • Fixes bug causing bots to go silently offline after ~40 minutes (#2378)
  • Includes TypeScript Definitions for the library

Deprecations

  • Guild#defaultChannel is now deprecated, there will be no fallback/alternative (407500b)
  • Permissions: READ_MESSAGES is now deprecated, use VIEW_CHANNEL instead (1fe201a)
  • ClientUser#setGame, use ClientUser#setActivity instead (cd06684)

Fixes

  • Properly reset the remaining ratelimit of the gateway connection after reset (c8f78b2)

11.3.1

03 Mar 20:49
Compare
Choose a tag to compare

Overview

  • Fixes bugs from 11.3
  • Improves documentation & adds examples

Deprecations

  • Guild#defaultChannel is now deprecated, there will be no fallback/alternative (407500b)
  • Permissions: READ_MESSAGES is now deprecated, use VIEW_CHANNEL instead (1fe201a)
  • ClientUser#setGame, use ClientUser#setActivity instead (cd06684)

Fixes

  • Disconnect from voice and remove channels of a guild upon leaving it (3df3741)
  • Fix VoiceConnection#playOpusStream by passing along opus option to the StreamDispatcher (96904b1)
  • Guild#createRole incorrect guild reference (932980e)
  • Fix param in ClientUser#setPresence (8cbefcc)
  • Don't overwrite typing entry making it impossible to stop typing in a channel (8df1ac9)
  • Set the type in CategoryChannel to category and document its type (b5ff309)
  • Webhook#send documented and returned incorrectly (e978253)
  • resolveColor not interpreting DEFAULT correctly (52c402f)
  • Do not create additional guild instances when re-identifying as new session (dc92582)
  • Let the process end gracefully after calling Client#destroy (af75e43)
  • Properly ratelimit the gateway with 120/60 instead of 60/120 (7f5c103)
  • GuildAuditLogs using Guild#fetchInvites (acdf43a)
  • Export CategoryChannel (f64e924)
  • Guild#fetchAuditLogs no longer internally calls Guild#fetchInvites (acdf43a)
  • TextChannel#BulkDelete discarding non-cached messages (363ead9)
  • RichEmbed didn't clone with timestamp (8f9e911)

11.3.0

14 Jan 19:35
c4b1be8
Compare
Choose a tag to compare

Overview

  • New features such as categories and different activity types
  • Documentation improvements

Deprecations

  • Guild#defaultChannel is now deprecated, there will be no fallback/alternative (407500b)
  • Permissions: READ_MESSAGES is now deprecated, use VIEW_CHANNEL instead (1fe201a)
  • ClientUser#setGame, use ClientUser#setActivity instead (cd06684)

Additions

  • Category Channel support (cce2480)
  • Activity Types support (cd06684)
  • Animated emojis support (659e89e)
  • Creating a guild channel with permission overwrites (862b2ec)
  • Allow before and after params for reaction users fetching (db5bdcd)

Fixes

  • GuildMember.permissions.missing is not a function (b274dba)
  • DMChannel messages not being cached (22da595, fb6d14d)
  • Audit logs incorrectly retrieving webhook information (e40c3f8)
  • Editing a voice channel sets the bitrate incorrectly (d705a0c)
  • Guild settings from Userbot not being created on new guilds (1c34819)
  • Default channel creation to text type (9f0417c)
  • Bulk delete rejects regardless of filterOld (6683c40)
  • Voice RTP headers fix (fc5d443)
  • Incorrectly caching voice channel members (8226752)
  • Animated icons not showing up as animated (d94ead7)
  • Channel#startTyping doesn't throw non-catchable error (b3eb1bb, 2efe2d2)

11.2.0

03 Sep 17:16
Compare
Choose a tag to compare

Deprecations

  • Guild#defaultChannel is now deprecated, there will be no fallback/alternative (407500b)
  • Permissions: READ_MESSAGES is now deprecated, use VIEW_CHANNEL instead (1fe201a)

Additions

  • MESSAGE_DELETE action for audit logs (712305d)
  • MESSAGE action for audit logs (7d7f1b2)
  • Invite#presenceCount and Invite#memberCount (ee622f7)
  • Webhook#send now accepts multiple files (fd7cb41)
  • Invite#textChannelCount and Invite#voiceChannelCount (28a29d5)
  • NSFW search option (3ec08d5)
  • MEMBER_ROLE_UPDATE action for audit logs (2f1eb71)
  • Guild#setExplicitContentFilter (e3232bd)
  • Expose DiscordAPIError and API error constants (b9434ed)
  • count optional argument to Collection methods (d513c4b)
  • TextChannel#nsfw is now a property to indicate if a channel is nsfw or not (ed84d76)
  • Audio bitrate support (cba4cc2)
  • Guild#nameAcronym (cd4a69d)
  • Reasons on every possible action that can take a reason (be4ccb3)
  • Guild#createRole now takes into account the position you pass and sets it accordingly (be4ccb3)
  • OAuth2Application#resetToken (f7664b0)
  • Retry on error code 500 (f7664b0)
  • Support for UserGuildSettings (f7664b0)
  • Attachment structure to make sending files/embeds easier (0b22d9a)
    • You can now pass Attachments and RichEmbeds as MessageOptions or send embeds directly
    • ResolveFile now accepts NodeStreams in addition to the already current options.
  • Support for GroupDMChannel#iconURL, GroupDMChannel#setIcon,
    GroupDMChannel#setName and GroupDMChannel#removeUser (17d7f5c) (1fe201a)
  • Support for Guild#afkChannel, Guild#systemChannel and Guild#setSystemChannel (e76ebb4)
  • You can now pass a Collection to the filter of a Collector (bce5b67)
  • Internally, DiscordAPIError now takes a #path to help narrow down issues (95e22c2)

Fixes

  • mentions to Mentions in RESTMethods (e96daba)
  • fetchMeMentions to fetchMentions in RESTMethods (3a73628)
  • Guild#deleteEmoji and editing related Emoji methods (41e0be1)
  • GuildAuditLogsEntry#extra now properly returns values (7d7f1b2)
  • GuildAuditLogs Target.INVITE uses the right properties now (1fc6e3b)
  • fetchMentions in RESTMethods sends a proper auth header and params are now fully optional (1e115ef)
  • Client#login Reject token errors properly (7980187)
  • GuildMember#setVoiceChannel moves member properly again (e3c3a4f)
  • Properly reject instead of throw in GuildMember#addRole and GuildMember#removeRole (45bc653)
  • Infinite loop in DiscordAPIError reaching maximum call stack size (6eced4d)
  • Unhandled exception when using µws (19d4d3b)
  • Don't ignore non-missing engine errors (2116fba)
  • Remove unused VoiceBroadcast#guaranteeOpusEngine (1ed6bbc)
  • VoiceConnection#authenticateFailed race condition (b5de89a)
  • Client#token is not enumerable anymore (f1a74f2)
  • Client#setTimeout uses args correctly now (4ce4dc0)
  • String.toLowerCase() errors in GuildAuditLogs (822c1f5)
  • DiscordAPIError#message sometimes being undefined (a56a24d) (bdc61a4) (8a9b6cb)
  • Double increments on the reaction count when the client reacts (2611efe)
  • Consistently store message reactions keyed under their unicode (425efe1)
  • OAuth2Application#reset resets the token now as well (f7664b0)
  • Webhooks options now function properly (splitting as whole, with files and embeds) (0b22d9a)
  • You can now reset the icon and splash with Guild#edit (0b22d9a)
  • The burst ratelimit handler properly rejects with a DiscordAPIError on all 4xx now (0b22d9a )
  • Buffers can again be send directly in the files array of the Message Options (95e22c2)
  • ADMINISTRATOR permission edge case which didn't resolve permissions correctly (0d6b7ce)

11.1.0

01 May 17:42
Compare
Choose a tag to compare

The branches have been reorganised a bit. Development is now done on the master branch, and the stable branch now houses the latest release. Additionally, the website has been moved into its own repository.

Overview

  • Improved gateway and voice stability
  • Added Voice Broadcasts for playing the same stream to multiple channels
  • Ability to search for messages and interact with audit logs
  • Nicer errors when making bad HTTP requests (e.g. when you don't have permission to ban a user)
  • Added User.tag -> username#1234
  • Better support for uws, it should work fine now
  • We deprecated some stuff, see below

Additions

  • Search functionality (beffb39, da32c2e, bde6749, d47f9d2)
  • SnowflakeUtil class (and Snowflake alias for it) (4952647, e5e36d9)
  • MessageOptions#reply to make any message a reply, even with Message#edit() (5caa7df)
  • ClientUser#settings (22b1c42)
  • fetchRecommendedShards() guildsPerShard parameter (2b25641)
  • Websocket error 4011 (sharding required) handling (a3091f5)
  • Choose whether or not to cache users/members when fetching them (78bf402)
  • Option to filter old messages in TextBasedChannel#bulkDelete (7f4846c)
  • ClientUser#acceptInvite() (48be401)
  • VoiceChannel#full and improve joinable/join permission checks (d10ca8e)
  • VoiceRegion, Client#fetchVoiceRegions, and Guild#fetchVoiceRegions (3f4cbd0)
  • User#lastMessage, GuildMember#lastMessage, and TextBasedChannel#lastMessage (c7f5b44)
  • GuildChannel#deletable (2beb77a)
  • VolumeInterface and Opus Stream support (7ed58f5)
  • Support to update emojis (18729b2)
  • Support for creating role-specific emojis (565c640)
  • Expose GuildMember#createDM and User#createDM (8da915f)
  • Ability to clone channel topic when cloning a channel (0b5eeb0)
  • Support for sodium (4994474)
  • RANDOM as a valid ColorResolvable (7c8f534)
  • RichEmbed#addBlankField (cc3e7b2)
  • Support for adding users to guilds (OAuth2, dd6dd6f)
  • RichEmbed#attachFile (db5259c)
  • More OAuth support (61e12c6)
  • volumeChange event to VolumeInterface (eb069d0)
  • More GroupDM features (4c9d8d6)
  • TypeDef for GuildMemberEditData (01d8d32)
  • Collection#clone (25bb602)
  • GuildMember#colorRole, GuildMember#displayColor, GuildMember#displayHexColor, and GuildMember#hoistRole (e7b0afb)
  • Support for sending multiple files in the same message (a82d9f1)
  • TextBasedChannel#ackMessage (94062d1)
  • Allow fetchMessage to work for non-bot accounts (64ce829)
  • MessageMentions#members (8444f19)
  • Guild#defaultRole (104f339)
  • Guild#explicitContentFilter (d189b51)
  • FEC and PLP support for Opus encoding (8716702)
  • ClientUserSettings (801633b)
  • VolumeInterface#volumeDecibels and VolumeInterface#volumeLogarithmic (a49d4e6)
  • User#tag (8436cbe)
  • VoiceConnection#dispatcher (dce8e83)
  • Support for libsodium.js (sodium alternative) (8475a4a)
  • Message#createReactionCollector (ca34c43)
  • TextChannel#nsfw (5ac2269)
  • Export Collector and ReactionCollector (13672cc)
  • Support for Audit Logs (4127cf6)
  • Guild#me for the client's GuildMember in a Guild (5cad25e)

Changes

  • Presence updates will only clone the presence objects if there is a Client#presenceUpdate event listener (7357fc2)
  • Improved Collection's string form (b68283e)
  • Stop sending typing states as frequently (e216fc7)
  • Improved request handling (ec1ed15)
  • Refactored internal voice (audio manipulation offloaded to separate module) (70b35c8)
  • Replace EvaluatedPermissions with Permissions (16fe48d)
  • Snowflake to Timestamp conversion is more precise (2897692)
  • Remove pako dependency (fa609ca)
  • Update Role#hasPermission to take an array and deprecate Role#hasPermissions (3e5096f)
  • EmojiIdentifierResolvable now supports emoji IDs and already-encoded unicode emojis (40c6109)
  • GuildMember#addRole & GuildMember#addRoles now throw a TypeError if no role resolvable is supplied (a652901)
  • TextBasedChannel#fetchMessage now an Error if the channel is either empty or the client has no READ_MESSAGE_HISTORY permission (95bcac9)
  • Rewrite WebSocket internals (195fcfa)
  • Improve ClientUser#setStatus for selfbots (d6b7d31)
  • MessageMentions#channels behaves nicely in DMs (e2c8ba5)
  • Update bufferutil dependency from ^2.0.0 to ^3.0.0 (c880f10)

Fixes

  • User#defaultAvatarURL in Node 6 (f0adf8f)
  • ClientUser#setAvatar(), ClientUser#createGuild(), Guild#createEmoji(), TextChannel#createWebhook() with Buffers (#1047, 258e4b9, 4447e36)
  • MessageReaction#remove() (4c8e4fd, 3b9b062)
  • Guild#large can't ever go back to false (fdc8050)
  • Message#isMemberMentioned() (42527ea)
  • Webhook message sending (c37cd3f)
  • TextBasedChannel#sendEmbed() with Arrays (8b0e5aa)
  • Guild#large always false for user accounts (df02eee)
  • Reaction events fixed (f8b9bf6)
  • Edge cases when fetching guild members (306ea97)
  • GuildMembersChunk packet handling (c1a5bee)
  • Voice receiving for multiple streams (9a6cb64)
  • Handle decoding errors for voice receiving (6fae179)
  • Message#mentions not being cleared on mentions updates (5059c59)
  • Role position calculations (1e94a9e)
  • EvaluatedPermissions#hasPermission (26becb5)
  • Emoji creation (ab5e57d)
  • Incorrect member handling in member updates (2518a0f)
  • WebhookClient crashing when hitting rate limits (d4a8491)
  • Premature VoiceConnection disconnections (275c995)
  • Bulk delete endpoint (33de408)
  • TextBasedChannel#bulkDelete ignoring filterOld when a number is being passed instead of collection or array (6b26d28)
  • Permission overwrites resolution (8729ee6)
  • addRole/removeRole when the user has/doesn't have the role (633e3ca)
  • Permissions#resolve to return a combined bitfield for arrays (79278bc)
  • guildWebhooks endpoint (beffcd3)
  • Invite URL resolution (61f5051)
  • Shared mentions on message update (bca101a)
  • Emoji events (970bfff)
  • messageReactionAdd handling (6ce2439)
  • Some null Message#mentions properties (e60d2bd)
  • Removing reactions (84aab10)
  • Prevent reconnection loops if client#destroy is invoked during the disconnect event (c5e2ea7)
  • ClientUser#setGame no longer displays Playing null on mobile devices (5605dc0)
  • Fix uWs reconnect logic (edf1a3e)

Deprecations

...
Read more

11.0.0

29 Dec 16:56
Compare
Choose a tag to compare

Additions

  • Support for uws (significantly faster websocket implementation) (c91ee7a, 0008a18, 945a2e3, c683790, 6afd80c)
  • Support for ETF websocket encoding with erlpack (1e5afc1)
  • Support for prebuilt FFMPEG packages from ffmpeg-binaries (52a83b9)
  • Web distributions (2440a4a, 411c9bd, too many to list)
  • ClientOptions.restTimeOffset to tweak the additional delay for ratelimiting (544e456)
  • Message reactions (8105988 through 21b00e1 and more)
    • Message.react()
    • MessageReaction.remove()
    • Message.clearReactions()
    • Message.reactions
    • MessageReaction class
    • ReactionEmoji class (8105988)
    • ADD_REACTIONS permission flag (dfeafbf)
  • Message embeds/rich text support (27270a3, b2bc844)
  • TextBasedChannel.send() as a combined message sending method that can handle all message stuff (ed8fcf6)
  • Improved emoji support (d129457)
    • Emoji.identifier
    • emojiAdd and emojiDelete events (cd657be)
  • OAuthApplication support (c9dbf1f, 8533076, 8139bef, bef0523)
    • Client.fetchApplication()
    • Guild.applicationID
    • OAuth2Application and ClientOAuth2Application classes
  • Message.webhookID/fetchWebhook() (676a895, 8b7ef0c)
  • Message.isMemberMentioned() (676a895)
  • User/GuildMember.lastMessageId (b177aef)
  • User.defaultAvatar/defaultAvatarURL/displayAvatarURL (586d652, 78026df)
  • User.dmChannel (84503c8)
  • ClientUser.fetchMentions() (e392107)
  • UserProfile.premium (8139bef)
  • GuildMember.displayName (586d652)
  • Guild.splashURL (edfb27f)
  • Guild.applicationID (8139bef, bef0523)
  • Role.editable (7d02e73, 544540f)
  • Nullable permission overwrites to reset (5dc30d6)
  • GuildChannel.clone() (d766e72)
  • Client.pings/ping (58c7c2e)
  • Client.setTimeout()/clearTimeout() made public (f249607)
  • Client.generateInvite() (fa7d63a)
  • Client#disconnect event receives the CloseEvent from the websocket (b518437)
  • StreamDispatcher#end event receives the reason for ending (fbe1929)
  • Collection.equals() (a0b245b)
  • TypeScript typings (b85a589)

Changes

  • Client.login() no longer supports logging in with email + password (a20bac7)
  • ClientUser.setEmail()/setPassword() now require the current password to be passed, in addition to setUsername() on user accounts (cecb0ae)
  • Removed TextBasedChannel.sendTTSMessage() (ed8fcf6)
  • Using Collection.find()/exists() with IDs will throw an error (ee3a03f)
  • ShardingManager no longer marked as experimental (305070d)
  • Huge internal simplification of promises (8306d50, 60e0d50)
  • GuildMember.addRole()/removeRole() now use the new API functionality (638e51a)
  • FileResolvable renamed to BufferResolvable (5fa9e35)
  • Guild.createEmoji() and TextChannel.createWebhook() now accept BufferResolvable or Base64Resolvable (c041b1b)
  • User.avatarURL supports animated gif avatars (2390e52)
  • Role.toString() on the @everyone role will simply be @everyone, rather than a full role mention (3451367)
  • Message.edit() updated to match new TextBasedChannel.send() functionality (ed8fcf6)
  • Updated to Superagent 3 (6383d42)

Fixes

  • VoiceConnection#speaking never emits (4e6b632)
  • ChannelResolvables don't work with strings (cdf66f8)
  • BufferResolvables failing improperly for URLs with an empty response body (a359f34)
  • Message.edits (4ae1f63)
  • Role.setPosition() returns Guild instead of Role (27e77d3)
  • Role.setPosition() doesn't reorder other roles properly (e63432c)
  • Disabled events not actually disabling (9323882)
  • VoiceConnection.playConvertedStream() (eedc097)
  • Guild sync assumes unknown members are new to the guild (b335824)
  • Presence update before ready (6043a1f)
  • Collection.set()/delete() don't chain properly (bd00bc4)
  • Collection.reduce() doesn't perfectly mirror Array.reduce() (28ca830)
  • ShardClientUtil emits an error upon multiple clients being created in one process (a0de75f)
  • Crash when a guild member gets added to a guild connected to a voice channel that isn't cached (a0a3989)
  • Other minor fixes