* 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!
* Allow to set the new game types via ClientUser#setPresence and setGame
* Accept string version of types, fix options parameter, remove Presence#streaming
* One line if statement, don't reuse data.game when game is already reassigned and fix error message
* Removed redundant if statement
- Fixed a common copy paste fail `the the <thing>` in various places
- Apparently I can't type Resolvable correctly,
Fixed that wherever applicable
- Documented GroupDMChannel#nicks so that it will be displayed on the docs
- GroupDMChannel#icon is nullable
- Removed empty InviteOptions typdef, as its properties are now documented in GuildChannel#createInvite
- MessageMentions#channels is no longer nullable
- RoleData#permissions takes a PermissionResolvable or an array of them
- Webhook#avatar is nullable
- Added HTTPOptions typedef and added it to ClientOptions typedef
- ClientUserChannelOverride#muted is for a channel and not a guild directly
* Made creating channels with overwrites nicer
and added ClientDataResolver#resolveRole
* Renamed ChannelPermissionOverwrites to ChannelCreationOverwrites
* Added RoleResolvables everywhere possible
* Fixed Emoji#setName resetting restricted roles and Emoji#equals
Which will lead to emojis not to update when roles are being added removed.
* Add Attachment structure
* Fix linter issues + @private
* Fixed array sends, also added embed sends
* fixed proving path to attachment
* fixed incorrect name assumption from path
* linting fix
* ;)
* im really good at this
* changes as requested by gus
and computer from #1459
* am a dum
* update webhook#send
* readonly addition to getters
* i... uh... oops
* farming deez commits
* fix webhook split
* removed some ugly
* removed .every checks
* ClientUser#createGroupDM now works like the docs states on user accounts
* Added GroupDMChannel#setIcon and fixed null handling for the channel name
* Added an s
* Don't resolve when icon is falsy and removed useless name trimming
* Removed now unnecessary name constant
* vscode being great
* Added GroupDMChannel#iconURL
* user guild settings
* Use direct collection
* I'm a goof
* double goof
* Structure properties
* Forgot to register listener
* wrong class names
* No more get in docs
* avoid waterfalls, bot checks
* trycatch
wow i thought i already did this :notlikecat:
* 👀
* Update ClientUser.js
* Update ClientUserGuildSettings.js
* Update UserGuildSettingsUpdate.js
* Update ClientUserChannelOverride.js
* Update ClientUserGuildSettings.js
* Audio bitrate support
Note: not implemented for VoiceBroadcasts
* Fix default args, auto bitrate
* Late night typos are the best
* Changes bitrate to kbps for VoiceChannel stuff
* Add methods to manipulate bitrate while encoding
* rewrite ratelimiting and api route builder
* more stuff
* let people pass their own handlers
* Update burst.js
* Update RequestHandler.js
* Update burst.js
* Update sequential.js
* Update RequestHandler.js
* Added missing error messages
As well as `Guild#setRolePosition` and `Guild#setChannelPosition`'s first arg validation
And fixed a typo in `Guild#setChannelPosition`
`roles` -> `channels`
* Reverted collection and Util constructors
* Removed leftover messages
Should have been in the second commit.
* It's a single invalid permission and removed unused flag error
* Fix INVALID_TOKEN -> TOKEN_INVALID as of #1703
* fixed GroupDMChannel#addUser, added setName and removeUser
and changed every `the Group DM`to `this Group DM`, for consistency
* added edit method
* delete method comes already with the Channel class
* brackets
* removed empty line
* Fixed User#fetchProfile, UserProfile#premium and added #flags
* made UserProfile#flags a getter and stored the raw bitfield under UserProfile#_flags
* lowercased Flags
Remove the implication that a Message object's ID is unique only to the channel it was sent on
Message ID's are snowflakes, and as stated in Discord's API documentation, globally unique throughout Discord
* using correct properties to apply permissionOverwrites
and fixed `GuildChannel#clone`
* also arrays should be mapped and correct properties taking priority
* changed .deny and .allow to .denied and .allowed respectively
* whoops
* Add `count` optional argument to Collection methods
[NON-BREAKING CHANGE]
An optional `count` argument is added to the following methods:
- random() and randomKey()
- first() and firstKey()
- last() and lastKey()
If `count` is used, the method returns an array instead of only the value. Performance impact non-existent for existing code. Performance for returning an array has been measured and this is the fastest I could find (array[i] = value is faster than array.push()).
* Update Collection.js
Fixed spacing/line length errors according to suggestions by codacy/pr
* Fixed docs
Added proper `@returns {*|Array}` as the methods might return either. Also added params where missing (whoops)
* Further doc fixes
Per Crawl's comments, fixed (i + 1) spacing as well as fixed {Integer} to {number}
* random() and randomKey() fix
Per Hydra's comment, random() and randomKey() now ensures unique values.
I've also resolved potential issues with requesting a count higher than the collection size. A collection with 10 items will only ever return at most 10 items using the `count` property.
* Can I facepalm harder
Had wrong header comments ^_^
* Fixed for "values/value" and Omited
Also, added "Positive" integer check.
* looks like I "omitted" a change, there.
* Update Collection.js
* Update Collection.js
* Update Collection.js
* Add denied/allowed permissions to PermissionOverwrites
* Remove one accidental trailing space.
* Change to _denied/_allowed & denied/allowed
This could possible break if people use deny/allow, I assume, but that's okay.
* Update PermissionOverwrites.js
* Update PermissionOverwrites.js
* Fix Util.js : fetchRecommendedShards()
I'm not sure who thought this was a good idea, but by removing gateway, it broke fetchRecommendedShards() in Util.js as it uses ${Constants.Endpoints.gateway.bot}.
* Update Constants.js
* Update Constants.js
* Update Util.js
* Update Constants.js
* wowe
* fix sending
* Update MessageEmbed.js
* lel
* patched some fields for message embed and transforms edits as well
* webhook embeds transform
* apply transform to webhook embeds, and changed references
* Update MessageEmbed.js
* Update ClientDataResolver.js
* updated embeds params and use new util resolvers
* did not mean to add this back
* use master version of ClientDataResolver
* transform no longer needed