Releases: discordjs/discord.js
Releases · discordjs/discord.js
12.0.0
See the updating guide for a better representation of what changed and how you have to change/adapt your code.
Guild#fetchMembers
removed in favour ofGuildMemberStore#fetch
(^)- Rewrite Presence. This removes
Client#setGame
and replaces it withClient#setActivity
while also adding a Presence store and a Presence structure (c4df250) - Removed
Guild#deleteEmoji
in favour ofEmoji#delete
(c93c4ad) - Removed
Attachment
in favour ofMessageAttachment
(methods stay the same) (d6b276b) MessageSearchOptions#sortBy
now defaults totimestamp
instead ofrecent
(291af7e)- Removed exported
EvaluatedPermissions
(0a05761) - Rename ShardingManager#launch event to shardCreate (0d188c0)
- Add more options to
MessageMentions#has
(2f84d95) GuildMember#permissionsFor
takes options object (61da73f)
- Return undefined from
Collection.find()
/findKey()
(4122db0) Receiver#createStream
should take options (4a1b55d)- Unified audio playing methods, now called
play
(2b5fc77) StreamDispatcher#end
renamed toStreamDispatcher#finish
(6567319)- Remove
MessageEmbed
's max length checks (9810bdb) Message#member
is now a getter (d93d628)- Create a base
Emoji
class, forEmoji
, nowGuildEmoji
andReactionEmoji
(aa3407f) - Fixed a typo in Error constants (352bd13)
- Make getters return null instead of undefined (799eea9)
- Convert the
lastMessage
property fromTextBasedChannel
,User
andMember
to a getter (630009f) - Remove various
Collection
methods and argument types and addCollection#partition
(a732402) - Make
client
,guild
,_content
non enumerable inMessageMentions
(e8ab049) - Mark
VoiceConnection#client
andVoiceWebsocket#client
as getters (18646b7) - Remove Userbot methods and properties (5afd77a)
- Remove
Collection#deleteAll
(8e0ea9a) - Use null for getters (147488d)
- Remove Clyde (94214fa)
- Make
WebhookClient#token
property non-enumerable (96a0655) - Move broadcasts to
Client#voice
(c822563) - Rename
createVoiceBroadcast
tocreateBroadcast
(9a092b6) - Remove
Client#voiceConnections
(70d4b44) Guild#voiceConnection
=>Guild#voice#connection
(dd44647)- Remove Guild.voiceConnection and VoiceChannel.connection (bcb0cd8)
VoiceBroadcast.{dispatchers -> subscribers}
(72dd872)Util#splitMessage
always returns an array (e645dd6)- Move
Guild#defaultRole
toRoleStore#everyone
(2df4f22) - Remove
passes
(Discord drops duplicated audio packets now) (c715ed9) - Remove
util
alias export (53a1f8f) - Implement Managers (#3696) (bbdbc4c)
- Bring
MessageEmbed
builder field manipulation in line with underlying array functionality (#3761) (b727f6c) disableEveryone
renamed todisableMentions
(9cb306c)
Additions
- Allow fetching of the author of an emoji (e0cbf0b)
- Allow setting an initial presence via
ClientOptions
(87e5a45) - Allow
Message#edit
to accept aMessageEmbed
as options parameter (b7c55f0) after
option when fetching users who reacted with an emoji (f40a5e9)- Channel categories (c46c092) (64cbb98)
- Deep copy fields for
MessageEmbed
(63f6247) - Expose DataStore (d41675c)
TextBasedChannel#bulkDelete
now accepts an array of ids and handles cases of 0 or 1 message(s) (3c0d7b8)- Allow editing the channel of webhooks (d8850db)
- Support
Guild#verified
(69d8408) - Rate limit event (ee1d4c5)
- Zlib stream compression (0589b7d)
TextChannel#setNSFW
(0fc9459)- Expose
Base
,CategoryChannel
,ClientApplication
,ClientUserChannelOverride
,ClientUserGuildSettings
,RichPresenceAssets
,UserConnection
,VoiceRegion
(0a05761) - Allow
GuildChannel#setUserLimit
to reset when passing null (6254490) - Emit
ReactionCollector#remove
on all reaction removals (09315ae) Shard#ready
property and related events (196cf76)- Custom Structures (77fc046, dcf48e2)
- Animated Emojis (84e4dd6) (2318812)
- Allow passing a function to shard eval (8aafcd6) (42c0e50...
11.6.1
Overview
11.6.1
is being released to update version references in the documentation; No code changes are included.
Deprecations
- All user account-only methods have been deprecated (95a2d25)
ClientUser#setGame
in favor ofClientUser#setActivity
(cd06684)Collection#exists
in favor ofCollection#some
(09ddbcb)Collection#find
andCollection#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)Guild#deleteEmoji
in favor ofEmoji#delete
(c355236)- The old method signature of
GuildChannel#clone
in favor of using an options object (ab866d6) Permissions.flags
:READ_MESSAGES
in favor ofVIEW_CHANNEL
(1fe201a)Permissions#allowed
andPermissions#denied
in favor ofPermissions#allow
andPermissions#deny
respectively (58ba2c7)PermissionOverwrites#allowed
andPermissionOverwrites#denied
in favor ofPermissionOverwrites#allow
andPermissionOverwrites#deny
(db492e6)- The peer dependency
@discordjs/uws
is now deprecated and will be removed with the next major release (5556b05) - The peer dependency
node-opus
is now deprecated, use@discordjs/opus
instead (6ab4649)
11.6.0
Overview
11.6.0
is being released to backport new features from 12.0.0-dev
.
Deprecations
- All user account-only methods have been deprecated (95a2d25)
ClientUser#setGame
in favor ofClientUser#setActivity
(cd06684)Collection#exists
in favor ofCollection#some
(09ddbcb)Collection#find
andCollection#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)Guild#deleteEmoji
in favor ofEmoji#delete
(c355236)- The old method signature of
GuildChannel#clone
in favor of using an options object (ab866d6) Permissions.flags
:READ_MESSAGES
in favor ofVIEW_CHANNEL
(1fe201a)Permissions#allowed
andPermissions#denied
in favor ofPermissions#allow
andPermissions#deny
respectively (58ba2c7)PermissionOverwrites#allowed
andPermissionOverwrites#denied
in favor ofPermissionOverwrites#allow
andPermissionOverwrites#deny
(db492e6)- The peer dependency
@discordjs/uws
is now deprecated and will be removed with the next major release (5556b05) - The peer dependency
node-opus
is now deprecated, use@discordjs/opus
instead (6ab4649)
Additions
- Add support for
@discordjs/opus
(6ab4649) - Add
BitField
class (46e8bc4) - Add
Client#inviteCreate
andClient#inviteDelete
events (40afbc1) - Add
Client#messageReactionRemoveEmoji
event andMessageReaction#removeAll
(ab7f9e8) - Add
idle
options toCollector
s (ccd6043) - Add
Emoji#delete
(c355236) - Add
Game#emoji
,createdAt
, andcreatedTimestamp
(17b8b23) - Add
Guild#rulesChannelID
,Guild#rulesChannel
,Guild#publicUpdatesChannelID
, andGuild#publicUpdatesChannel
(b0aed05) - Add
Guild#setBanner
andbanner
toGuild#edit
(01826ae) - Document
ChannelData#reason
when creating a channel (7011c51) - Add the following properties, getters, and methods to
Guild
(e6a378b) -
banner
andbannerURL
-
description
-
embedChannelID
andembedChannel
-
maximumMembers
-
maximumPresences
-
widgetEnabled
-
widgetChannelID
andwidgetChannel
-
vanityURLCode
-
fetch
- Add
Integration
s,Guild#fetchIntegrations
, andGuild#createIntegration
(c955fd0) - Handle new audit log types (
Guild#fetchAuditLogs
) (dbdb49e) -
MEMBER_MOVE
,MEMBER_DISCONNECT
-
BOT_ADD
-
MESSAGE_BULK_DELETE
,MESSAGE_PIN
,MESSAGE_UNPIN
-
INTEGRATION_CREATE
,INTEGRATION_UPDATE
,INTEGRATION_DELETE
- Add support for guild boosting (b892436)
-
Emoji#available
-
Guild#premiumTier
-
Guild#premiumSubscriptionCount
-
GuildMember#premiumSinceTimestamp
(alsopremiumSince
getter)
-
- Four new related message types:
-
-
USER_PREMIUM_GUILD_SUBSCRIPTION
-
-
-
USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_1
-
-
-
USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_2
-
-
-
USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_3
-
- Add
SystemChannelFlags
,Guild#systemChannelFlags
,Guild#setSystemChannelFlags
, andsystemChannelFlags
toGuild#edit
's options (330c410) - Add
GuildChannel#permissionsLocked
getter (2610bf5) - Add support for clone options when cloning a channel using
GuildChannel#clone
(ab866d6) - Add
GuildMember#selfStream
(96037e1, 36c0496) - Cache
Message#member
andMessageMentions#members
as they come from Discord (0f49d67) - Add the following (7e9c995)
-
Message#flags
-
Message#reference
-
flags
toMessage#edit
-
Message#suppressEmbeds
-
MessageMentions#crosspostedChannels
-
CHANNEL_FOLLOW_ADD
toMessageType
-
User#system
- Add
GUILD_DISCOVERY_DISQUALIFIED
andGUILD_DISCOVERY_REQUALIFIED
toMessageTypes
(b0d0b81) - Add
MessageAttachment#spoiler
(4ca1864) - Add the following properties to
MessageReaction
(88b675d) -
animated
-
client
-
createdTimestamp
-
createdAt
-
url
- Add
RichEmbed#spliceFields
andRichEmbed.normalizeField
(6eaf63f) - Add
RichEmbed#toJSON
returning an api-compatible object (97457e1) - Add
Permissions#any
(367c800) - Add
STREAM
Permission
(dcee09c) - Document
Presence#client
(f6d1db6) - Add
Presence#activities
(17b8b23) - Add ability specify a channel and reason when editing a through
Webhook#edit
(fbe9bc4) - Add the following properties to
Webhook
(30adb37) -
avatarURL
-
type
-
createdTimestamp
-
createdAt
-
url
Fixes
- Only use
Client#setMaxListeners
if the max listener count is not 0 (903f6ca) - Return a user when resolving from guild in
ClientDataResolver#resolveUser
(464ef25) - Always run
postCheck
when an event was received to allow stopping of the collector using themax
option (099a1a4) - Allow
Guild#fetchMember
to be used with aSnowflake
(6f49aad) - Set the integer constant instead of
'text'
when creating a channel as default (505df2e) - Default to an object with id property if the
GuildAuditLogsEntry
target was deleted (43c0a79) - Return
GuildChannel
inGuildChannel#setPosition
instead ofGuild
(1121b2f) - Mark messages of deleted channels as deleted (d1d0d75)
- Filter out duplicated roles when editing the roles of a
GuildMember
(f91ad70) - Allow owner to override
GuildMember#manageable
(364914f) - Do not mutate input arrays in
Util.arraysEqual
(fixingGuild#equals
mutatingGuild#features
and the old member's roles inguildMemberUpdate
) (8ddd061) - Return the correct link for twitch previews as part of
RichPresenceAssets
(a505a55) - Internally disconnect and cleanup
VoiceConnection
when being forcibly disconnected (cbabc16) - Fix speaking events and voice receive (fbcd363)
- Remove opus decoder from map in
stoppedSpeaking
inVoiceReceiver
(91600a6) - No longer use deprecated
_trace
in Ready and Resumed WebSocket handlers (684bb1b) - Use
for..of
withObject.keys
instead offor..in
everywhere (6d7e1e4)
11.5.1
Overview
11.5.1
is being released to fix bugs from 11.5.0
, most notably not being able to modify the nickname of the current user.
Deprecations
- All user account-only methods have been deprecated (95a2d25)
ClientUser#setGame
in favor ofClientUser#setActivity
(cd06684)Collection#exists
in favor ofCollection#some
(09ddbcb)Collection#find
andCollection#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 ofVIEW_CHANNEL
(1fe201a)Permissions#allowed
andPermissions#denied
in favor ofPermissions#allow
andPermissions#deny
respectively (58ba2c7)PermissionOverwrites#allowed
andPermissionOverwrites#denied
in favor ofPermissionOverwrites#allow
andPermissionOverwrites#deny
(db492e6)
Fixes
11.5.0
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 ofClientUser#setActivity
(cd06684)Collection#exists
in favor ofCollection#some
(09ddbcb)Collection#find
andCollection#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 ofVIEW_CHANNEL
(1fe201a)Permissions#allowed
andPermissions#denied
in favor ofPermissions#allow
andPermissions#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 aColorResolvable
(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 toGuild#fetchBans
(5cd6d8d) - Add
Guild#fetchEmbed
andGuild#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
andTextBasedChannel#lastPinAt
(ea3e575) - Add
TextChannel#rateLimitPerUser
andTextChannel#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 missingMANAGE_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)GuildMember
s removed from theirVoiceChannel
when leaving the guild (b3f4590)GuildMember#edit
andGuildMember#setVoiceChannel
throw a more descriptive error when passed bad input (a0ff72b)Message#editedTimestamp
being null after edits (616e0dd)Permissions.resolve
not accepting aPermissions
instance (5d889be)Role
s with the sameposition
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
11.4.1
Overview
- Fixes bugs from
11.4.0
Deprecations
Guild#defaultChannel
, there will be no fallback/alternative (407500b)- Permissions:
READ_MESSAGES
, useVIEW_CHANNEL
instead (1fe201a) ClientUser#setGame
, useClientUser#setActivity
instead (cd06684)Collection#filterArray
, convert to an array and filter, or the other way round instead. (09ddbcb)Collection#findAll
, same asCollection#filterArray
but also pass a function instead (09ddbcb)Collection#exists
, useCollection#filter
and convert to a boolean instead. (09ddbcb)Collection#find
andCollection#findKey
's'key', 'property'
overload, pass a function instead. (09ddbcb)- All user bot methods (95a2d25)
Fixes
11.4.0
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
, useVIEW_CHANNEL
instead (1fe201a) ClientUser#setGame
, useClientUser#setActivity
instead (cd06684)Collection#filterArray
, convert to an array and filter, or the other way round instead. (09ddbcb)Collection#findAll
, same asCollection#filterArray
but also pass a function instead (09ddbcb)Collection#exists
, useCollection#filter
and convert to a boolean instead. (09ddbcb)Collection#find
andCollection#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 usingClient#fetchInvite
(21326f6) - Backport
Emoji#deletable
getter (ed8ab91) - Backport
Permissions#valueOf
method (2d83126) - Backport 2 basic role colors,
LUMINOUS_VIVID_PINK
andDARK_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 addGuild#replacePermissionOverwrites
andGuildChannel#lockPermissions
(524a15d) - Backport
Webhook#token
enumerability (96011cf) - Backport
Message#url
(41f6eaa) - Backport
PRIORITY_SPEAKER
permission (c33ab1e) - Backport
TextChannel#bulkDelete
acceptsSnowflake[]
parameter (c76f304) - Backport
GuildChannel#permissionsFor
that also takes aRoleResolvable
(1e5b5b8) - Backport
Permissions#toArray
(6da423f)
Fixes
- Allow
GuildChannel#edit
to clear its parent (6e5b674) and topic (92b4216) - Allow
Role#edit
to set the permissions to0
(no permissions) (7c0b617) 0
is a validPermissionsResolvable
(7c0b617)- Properly resolve permissions in
Client#generateInvite
(c387e96) - Remove bulk deleted messages from cache (7c37a0d)
- Resolve with the correct member in
RESTMethods#addMemberRole
andRESTMethods#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 ofObject.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 theClientUser
instead of itsPresence
(a85d801)- Clean up event listener on failure in
GuildMember#addRole
andGuildMember#removeRole
(a89de09) - Increase and decrease the amount of max listeners dynamically to avoid MaxListenersExceededWarning when using
Collector
s (60288d0) - Use
Buffer.alloc
instead of deprecatednew 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 inVoiceChannel#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
fromMessageEmbed
(6d70da5, 87b4b23)
11.3.2
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, useVIEW_CHANNEL
instead (1fe201a) ClientUser#setGame
, useClientUser#setActivity
instead (cd06684)
Fixes
- Properly reset the remaining ratelimit of the gateway connection after reset (c8f78b2)
11.3.1
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, useVIEW_CHANNEL
instead (1fe201a) ClientUser#setGame
, useClientUser#setActivity
instead (cd06684)
Fixes
- Disconnect from voice and remove channels of a guild upon leaving it (3df3741)
- Fix
VoiceConnection#playOpusStream
by passing alongopus
option to theStreamDispatcher
(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
tocategory
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
usingGuild#fetchInvites
(acdf43a)- Export
CategoryChannel
(f64e924) Guild#fetchAuditLogs
no longer internally callsGuild#fetchInvites
(acdf43a)TextChannel#BulkDelete
discarding non-cached messages (363ead9)RichEmbed
didn't clone with timestamp (8f9e911)