* Remove GroupDMChannels
they sparked no joy
* Start partials for message deletion
* MessageUpdate partials
* Add partials as an opt-in client option
* Add fetch() to Message
* Message.author should never be undefined
* Fix channels being the wrong type
* Allow fetching channels
* Refactor and add reaction add partials
* Reaction remove partials
* Check for emoji first
* fix message fetching
janky
* User partials in audit logs
* refactor overwrite code
* guild member partials
* partials as a whitelist
* document GuildMember#fetch
* fix: check whether a structure is a partial, not whether cache is true
* typings: Updated for latest commit (#3075)
* partials: fix messageUpdate behaviour (now "old" message can be partial)
* partials: add warnings and docs
* partials: add partials to index.yml
* partials: tighten "partial" definitions
* partials: fix embed-only messages counting as partials
* internal sharding
* ready event
* the square deal
* the new deal
* the second new deal
* add actual documentation
* the new freedom
* the great society
* federal intervention
* some of requested changes
* i ran out of things to call these
* destroy this
* fix: Client#uptime went missing
* fix(Client): destroy the client on login failure
This may happen duo invalid sharding config / invalid token / user requested destroy
* fix(Client): reject login promise when the client is destroyed before ready
* fix(WebSocketManager): remove redundancy in destroy method (#2491)
* typo(ErrorMessages): duo -> duo to
* typo(ErrorMessages): duo -> due
* fix: docs and options
* docs(WebSocketManager): WebSockethard -> WebSocketShard (#2502)
* fix(ClientUser): lazily load to account for extended user structure (#2501)
* docs(WebSocketShard): document class to make it visible in documentation (#2504)
* fix: WebSocketShard#reconnect
* fix: presenceUpdate & userUpdate
* presenceUpdate wasn't really being handled at all
* userUpdate handled incorrectly because as of v7 in the Discord API, it comes inside presenceUpdate
* re-add raw event
* member is now part of message create payload
* feat: Add functionality to support multiple servers with different shards (#2395)
* Added functionallity to spawn multiple sharding managers due to adding start and end shards
* Small fixes and limiting shard amount to max recommended
* Forgot a check in spawn()
* Fixed indentation
* Removed optiosn object documentation for totalShards
* More fixes and a check that the startShard + amount doesnt go over the recommended shard amount
* fix getting max recommended
* Removed async from constructor (my fault)
* Changed start and end shard to a shardList or "auto" + fixed some brainfarts with isNaN
* Changed the loop and totalShard count calculation
* shards are actually 0 based
* Fixed a problem with the gateway and handled some range errors and type errors
* Changed Number.isNan to isNaN and changed a few Integer checks to use Number.isInteger
* Added check if shardList contains smth greater than totalShards; made spawn use totalShards again; shardList will be ignored and rebuild if totalShards is 'auto'; fixed docs
* ShardingManager#spawn now uses a for..of loop; fixed the if statement inside the new for..of loop to still work as intended; made the totalShards be set to a new amount if smth manual is put into ShardingManager#spawn just like before; Fixed some spelling
* internal sharding
* ready event
* the square deal
* the new deal
* the second new deal
* add actual documentation
* the new freedom
* the great society
* federal intervention
* some of requested changes
* i ran out of things to call these
* destroy this
* fix: Client#uptime went missing
* fix(Client): destroy the client on login failure
This may happen duo invalid sharding config / invalid token / user requested destroy
* fix(Client): reject login promise when the client is destroyed before ready
* fix(WebSocketManager): remove redundancy in destroy method (#2491)
* typo(ErrorMessages): duo -> duo to
* typo(ErrorMessages): duo -> due
* fix: docs and options
* docs(WebSocketManager): WebSockethard -> WebSocketShard (#2502)
* fix(ClientUser): lazily load to account for extended user structure (#2501)
* docs(WebSocketShard): document class to make it visible in documentation (#2504)
* fix: WebSocketShard#reconnect
* fix: presenceUpdate & userUpdate
* presenceUpdate wasn't really being handled at all
* userUpdate handled incorrectly because as of v7 in the Discord API, it comes inside presenceUpdate
* Internal Sharding adaptation
Adapted to internal sharding
Fixed a bug where non ready invalidated sessions wouldnt respawn
* Fixed shardCount not retrieving
* Fixing style
removed unnecessary parenthesis
* Fixing and rebasing
lets hope i didnt dun hecklered it
* Fixing my own retardation
* Thanks git rebase
* fix: assigning member in message create payload
* fix: resumes
* fix: IS wont give up reconnecting now
* docs: add missing docs mostly
* fix: found lost methods
* fix: WebSocketManager#broadcast check if shard exists
* fix: ShardClientUtil#id returning undefined
* feat: handle new session rate limits (#2796)
* feat: handle new session rate limits
* i have no idea what i was doing last night
* fix if statement weirdness
* fix: re-add presence parsing from ClientOptions (#2893)
* resolve conflicts
* typings: missing typings
* re-add missing linter rule
* fix: replacing ClientUser wrongly
* address unecessary performance waste
* docs: missing disconnect event
* fix(typings): Fix 2 issues with typings (#2909)
* (Typings) Update typings to reflect current ClientOptions
* fix(Typings) fixes a bug with Websockets and DOM Types
* fix travis
* feat: allow setting presence per shard
* add WebSocketManager#shardX events
* adjust typings, docs and performance issues
* readjust shard events, now provide shardId parameter instead
* fix: ready event should check shardCount, not actualShardCount
* fix: re-add replayed parameter of Client#resume
* fix(Sharding): fixes several things in Internal Sharding (#2914)
* fix(Sharding) fixes several things in Internal Sharding
* add default value for shards property
* better implement checking for shards array
* fix travis & some casing
* split shard count into 2 words
* update to latest Internal Sharding, fix requested changes
* make sure totalShardCount is a number
* fix comment
* fix small typo
* dynamically set totalShardCount if either shards or shardCount is provided
* consistency: rename shardID to shardId
* remove Client#shardIds
* fix: typo in GuildIntegrationsUpdate handler
* fix: incorrect packet data being passed in some events (#2919)
* fix: edgecase of ShardingManager and totalShardCount (#2918)
* fix: Client#userUpdate being passed wrong parameter
and fix a potential edgecase of returning null in ClientUser#edit from this event
* fix consistency and typings issues
* consistency: shardId instances renamed to shardID
* typings: fix typings regarding WebSocket
* style(.eslintrc): remove additional whitespace
* fix(Client): remove ondisconnect handler on timeout
* docs(BaseClient): fix typo of Immediate
* nitpick: typings, private fields and methods
* typo: improve grammar a bit
* fix: error assigning client in WebSocketManager
* typo: actually spell milliseconds properly
* docs: fix documentation in various places
All stores: resolveID returns a nullable Snowflake
GuildAuditLogs: ActionType also can be ALL
MessageEmbed: make files property show up in the docs
ClientApplication: resetSecret and resetToken return a promise
ClientManager: status is readonly
Guild: features is an array of strings and ban no longer accepts a number or string
Guild: ban method no longer accepts a string or number
GuildMember: ^
RichPresenceAssets: small and large Image are Snowflakes, also fixed parameter documentation for small and large image url method
WebhookMessageOptions: file property is no longer a thing
* docs: improve GuildAuditLogs documentation
Prefix types with AuditLog to avoid confusion
Document GuildAuditLogs' static Targets and Actions properties and add necessary typedefs
Use typdefs over primitives where possible.
* fix documentation for Guild#defaultRole
* Fix documentation for GuildAuditLogEntry.target
* Update documentation for CategoryChannel#children
* Add EntryTarget for audit logs
I've done this to "fulfill" devsneks request while also showing all the possible results for the target of an AuditLogEntry
* Oops Eslint
* Private timeout sets gets set by BaseClient not WebhookClient
* Fix the "Missing Docs" for Presence#activity
* Small doc inconsistency
Array<Number> instead of Array<number> for Activity
* Client#emojis is an EmojiStore not a Collection
* Document ClientPresenceStore
Just so its clickable through the wiki, nothing else is documented
* Small fix for BaseClient#setInterval
You don't wait before executing, you execute every X ms
* GuildChannelResolvable takes a GuildChannel/Snowflake
* Typo in UserResolvable
* Another typo for UserResolvable
* Add the number to the Status and VoiceStatus docs
Its probably not needed, but just so the user knows what each number means, its now documented.
* Start Store cleanup
* wip store cleanup
* fix iterables initiating datastores
* handle the possibility of a datastore with no holds and no its own 'create' method
* more cleanup (instances that need more than just client/data)
* missed RoleStore extras
* not sure how eslint didn't catch that tab...
* avoid re-getting the channel we already have...
* cleanup resolvers and refactor them into DataStores
* ^
* and remove
* fix some bugs
* fix lint
* fix documentation maybe?
* formatting
* fix presences
* really fix presences this time
* bad fix was bad... let;s see how bad this one is..
* forgot to save a file
* make presence resolving take userresolveables too
* fix tabs in jsdocs
* fix bad fix from last night that caused issues, with better fix...
* oops
* refactor/fix(DataStores): move instantiating of store related classes into the relevant create methods and fixed FetchMemberOptions
* Renamed ChannelStore's constructor parameter for claritiy
* define client property before creating items from passed iterable to avoid the client property being undefined
* Fix fetching members with a limit
* add static Channel#create back and moved channel instantiating there
* make ChannelStore's constructor accept an iterable
* make iterable an optional parameter, allow to just pass client and options
* fixed a little typo in docs of <User>.displayAvatarURL() (#1872)
* Rewrite presence a little bit (#1853)
* such presence many good
* Update PresenceStore.js
* Update index.js
* Update ClientPresenceStore.js
* Update Presence.js
* Update ClientPresenceStore.js
* Update ClientUser.js
* Update Presence.js
* add timestamps and party
* Update Presence.js
* Update PresenceStore.js
* Update ClientPresenceStore.js
* Update ClientPresenceStore.js
* fix: made options.type optional in ClientUser#setActivity (#1875)
* fix: made options.type optional in ClientUser#setActivity
* some changes, smol fix
due to too many types being possible, it should just be defaulted to 0. this means streamers will have to set the type manually, though.
also mistake with activity.name check
* docs(Collection): Adjust exists documentation (#1876)
Since the return value of Collection#exists is basically just a boolean of Collection#find's result, the same documentation and arguments can and should be applied.
* refactor(Emoji): remove Guild#deleteEmoji in favour of Emoji#delete (#1877)
* refactor/fix(DataStores): move instantiating of store related classes into the relevant create methods and fixed FetchMemberOptions
* Renamed ChannelStore's constructor parameter for claritiy
* define client property before creating items from passed iterable to avoid the client property being undefined
* Fix fetching members with a limit
* add static Channel#create back and moved channel instantiating there
* make ChannelStore's constructor accept an iterable
* make iterable an optional parameter, allow to just pass client and options
* rebase, this time with saving the file
* address issue with falsy activity throwing errors when setting client's presence
* UserStore refactor
* Create ChannelStore, remove redundant methods in ClientDataManager
* Create GuildStore
* Emoji stuff
* Use a Base class where possible to reduce code duplication
* Remove unnecessary comments from ChannelStore
* Add Base._clone();
* Remove unused ClientDataManager methods
* Refactor some more stuff
* ESLint
* Move Client#fetchUser to client.users.fetch
* Remove .has checks and just see if .get is truthy
* Fix guild member chunk error
* ESLint
* Fix typo
* Fix channel storing for user bots
* Remove ClientDataManager
* GuildChannelStore
* Reduce use of Util.cloneObject
* and this one too
* update typings
* Fix MessageUpdate handling (#1507)
* Fix role updates (probably fixes#1525)
* fix for eslint
* Address some of appell's comments
* Use debug constant
* start message store crap if it's ugly tell me later k
* fix that
* message store but works™️
* clean up guild stuff
* clean up channel store stuff
* clean up channel event handling
* does this message stuff work? find out soon in the next episode of dIsCoRd.Js
* eslint
* emojis
* emojis and reactions
* hi my name is eslint and im A LIL SHIT
* so i forgot this huh
* user stuff
* Fix @class
* Fix message stuff
* Fix user store docs
* Document all the bases
* fix the super things
* tidy up remove
* fix textbasedchannel
* fix that too
* fix emoji store
* make voice state stuff less ugly
* make voice states even less ugly
* make members less bad
* fix bug
* fix that too
* fix reactions
* how was this broken for so long
* role store
* remove super._patch from UserConnection
* Rename UserProfile#setup to _patch
* remove unnecessary super calls
* update docgen dep (pls fix travis thx)
* doc messagestore
* fix docs
* message store docs
* things
* DOCS PLS
* more things
* Document TextBasedChannel#messages as a MessageStore
* Rebase
* All the stores!