MESSAGE_REACTION_REMOVE_EMOJI events were triggering REST calls by invoking `RemoveAllReactionsForEmoteAsync` instead of `RemoveReactionsForEmote`, the latter being to handle cached message state cleanup.
When adding a type reader that replaces a default type reader,
CommandService checks that it replaces a type in its default type
readers or entity type readers (IMessage, IChannel, IRole, IUser). For
entity types, it checks that the target type is the same as the entity
type or it implements its type reader. Adding a type reader for a
default type reader doesn't make much sense and the original intent was
likely to check that the target type is or implements the entity type.
`Uri.IsWellFormedUriString()` doesn't return the expected result for specific urls, removed until the DotNet team actually resolves it ( https://github.com/dotnet/runtime/issues/21626 )
* feature: Webhook message edit & delete functionality
* PR fixes: Rename Edit* to Modify*; Add more detailed docstrings; Small validation fixes
* Fix spacing around docstrings
* Make ModifyWebhookMessageParams.Content Optional<string>
* Change the Webhook message edit functionality to use a object delegate method instead providing the all parameters
Co-authored-by: Desmont <desmont@users.noreply.github.com>
* fixed a deadlock in DiscordShardedClient during a failed Identify due to InvalidSession
* fixed log
* Don't wait ready before releasing semaphore
Co-authored-by: Paulo <pnmanjos@hotmail.com>
* fixes#1495
* keep obsolete properties and return types for compatibility
* missing properties for SocketInvite
* Restore xml docs and change obsolete message
Co-authored-by: Paulo <pnmanjos@hotmail.com>
* Add inline replies
* Missed a few things
* Change xml docs, IUserMessage, and other changes
* Missed one when changing
* Fix referencedMessage author
* Implement gateway ratelimit
* Remove unused code
* Share WebSocketRequestQueue between clients
* Add global limit and a way to change gateway limits
* Refactoring variable to fit lib standards
* Update xml docs
* Update xml docs
* Move warning to remarks
* Remove specific RequestQueue for WebSocket and other changes
The only account limit is for identify that is dealt in a different way (exclusive semaphore), so websocket queues can be shared with REST and don't need to be shared between clients anymore.
Also added the ratelimit for presence updates.
* Add summary to IdentifySemaphoreName
* Fix spacing
* Add max_concurrency and other fixes
- Add session_start_limit to GetBotGatewayResponse
- Add GetBotGatewayAsync to IDiscordClient
- Add master/slave semaphores to enable concurrency
- Not store semaphore name as static
- Clone GatewayLimits when cloning the Config
* Add missing RequestQueue parameter and wrong nullable
* Add RequeueQueue paramater to Webhook
* Better xml documentation
* Remove GatewayLimits class and other changes
- Remove GatewayLimits
- Transfer a few properties to DiscordSocketConfig
- Remove unnecessary usings
* Remove unnecessary using and wording
* Remove more unnecessary usings
* Change named Semaphores to SemaphoreSlim
* Remove unused using
* Update branch
* Fix merge conflicts and update to new ratelimit
* Fixing merge, ignore limit for heartbeat, and dispose
* Missed one place and better xml docs.
* Wait identify before opening the connection
* Only request identify ticket when needed
* Move identify control to sharded client
* Better description for IdentifyMaxConcurrency
* Add lock to InvalidSession