- Added
Icon
property when modifying roles. - Added
GuildAvatar
andGetGuildAvatarUrl
toIGuildUser
.
- Fixed
InvalidOperationException
in modify guild channel.
- Revert received at time, confirmed by discord staff to be accurate
- Added check for duplicate responses to interactions.
- Added check for 3 second timeout to interactions.
- Fixed assignment of
UserMentions
- Fixed
CleanContent
not being correct - Fixed SocketSlashCommandData access modifier
- Fixed url validation for embed urls
- Added .NET 5 build.
- Added
Ephemeral
property toAttachment
. - Added
ChannelTypes
toApplicationCommandOption
and builders. - Added event for
SocketAutocompleteInteraction
calledAutocompleteExecuted
. - Added
CleanContent
toIMessage
and implemented entities. - Added support for
discord://
protocol on buttons. - Added
Competing
status type. - Added
Icon
andGetIconUrl
to roles. - Added
Interaction
toIMessage
and implemented entities. - Added
ContextMenuCommand
message type. - Added stage instance audit logs as well as thread audit log type.
- Added restriction for description not being null in
SlashCommandBuilder
.
- Fixed channel name ratelimits being ignored + any other property specific ratelimits.
- Fix different rest channels not deserializing properly.
- Fix NRE in modify guild channel.
- Fixed system messages not including mentioned users.
- Fixed sub commands being interpreted as a parameter for autocomplete.
- Fixed
Type
not being set inSocketApplicationCommand
.
- Simplified
FollowupWithFileAsync
to just take a file path. - Renamed
Default
and Required toIsDefault
andIsRequired
inIApplicationCommandOption
. - Renamed
DefaultPermission
toIsDefaultPermission
inIApplicationCommand
. - Refactored some summaries
- Renamed
Available
toIsAvailable
in stickers. - Removed file extension check.
- Remove null collections in favor for empty collections.
- Added
SocketAutocompleteInteraction
- Added
IsAutocomplete
to slash command builders
- Added warning for duplicate select menu values.
- Added
DisconnectAsync
andMoveAsync
toIGuild
and its children (RestGuild
/SocketGuild
). - Added
CreateStageChannelAsync
toIGuild
and its children (RestGuild
/SocketGuild
). - Added
ISticker[]
as a parameter toSendMessageAsync
andReplyAsync
.
- Fixed ratelimit sorcery and witchcraft.
- Renamed
SelectMenu
toSelectMenuComponent
. - Removed obsolete
AcknowledgeAsync
method from interactions in favor forDeferAsync
.
- Added
Hierarchy
toRestGuildUser
andIGuildUser
- Added github sponsors!
- Added implicit conversion from string to emoji and emote, allowing you to just pass in unicode into any emoji/emote func
- Added
ToBuilder
functions toButtonComponent
andSelectMenu
- Added
FollowupWithFileAsync
to interactions.
- Fixed
auto_archive_duration
within thread models - Fixed
ModifyGuildCommandPermissionsAsync
not allowing 0 args - Fixed
MofifyXYZCommand
using abstracts in activators (big no no) - Fixed specifying null for components within a modify context not removing the components within the message.
- Added a method in
ComponentBuilder
to create a builder from a message
- Fixed default stickers not being set correctly
- Fixed NRE with application command routes
- Fixed KeyNotFoundException on Message Create
- Fixed RestUserMessage not being used for some message types
- Fixed NRE on default stickers
- Fixed Stickers being empty on messages
- Fixed
SocketUnknownSticker.ResolveAsync
throwing NRE
- Added stage support.
- Added multi embed support for normal messages and refactored methods for interaction with embeds.
- Added check for proper urls in embeds and buttons.
- Added thread support.
- Added
NsfwLevel
property to guilds. - Added missing message types: GuildDiscoveryDisqualified, GuildDiscoveryRequalified, GuildDiscoveryGracePeriodInitialWarning, GuildDiscoveryGracePeriodFinalWarning, ThreadCreated, ThreadStarterMessage, and GuildInviteReminder.
- Added
NUMBER
application command option type. - Added missing audit log types: IntegrationCreated,IntegrationUpdated, IntegrationDeleted, StageInstanceCreated, StageInstanceUpdated, StageInstanceDeleted, StickerCreated, StickerUpdated, and StickerUpdated.
- Fixed respond async fallback not taking in components.
- Fixed Emoji UnicodeAndNames throwing exception because of duplicit keys.
- Fixed
PermissionTarget
andApplicationCommandPermissionTarget
confusion and Invalid Form Body for modifying channel overwrites.
- Made custom id an optional parameter in buttons.
- Refactored the component builders to be more flexible.
- Changed
AcknowledgeAsync
toDeferAsync
to avoid confusion. - Updated
MaxOptionsCount
andMaxChoiceCount
to 25.
- The followup method that takes a single embed didnt return the RestFollupMessage
- Added
ApplicationCommandPermissionTarget
enum for slash command permissions, slash commands dont usePermissionTarget
anymore.
- Fixed
AddPermissionOverride
not working - Fixed invalid form body for responding with no embed
- Added the ability to send multiple embeds on interaction responses and also fixed a few bits of docs.
- Added
TimestampTag
- Added
DeleteAllGlobalCommandsAsync
to Rest client. - Added
DeleteSlashCommandsAsync
to SocketGuild and RestGuild, this will remove all the slash commands in the guild so be careful.
- Fixed
GetOriginalResponseAsync
using wrong http method and route.
- Added comment and parsing for
Mentionable
application option type. - Added another
AddOption
method to SlashCommandOptionBuilder.
- Fixed
GetCommandPermission()
throwing if no permissions are found, it will now return null. - Fixed SlashCommandBuilder incorrectly limiting SubCommands.
- Fixed incorrect casing of .net types in SocketSlashCommandData.
- Fixed ambiguous method in
SlashCommandBuilder
. - Fixed
WithAuthor
extension not using default avatars: discord-net/Discord.Net#1890 - Fixed Slash command routes not throwing a
ApplicationCommandException
- Fixed duplicate
GetOriginalResponse
method inSocketSlashCommand
- Added
GetSlashCommandsAsync
andGetSlashCommandAsync
methods toSocketGuild
andRestGuild
- Added
GetGuild
method toRestGuildCommand
- Added
GetCommandPermission
andModifyCommandPermissions
toRestGuildCommand
- Added
BulkOverwriteGlobalCommands
andBulkOverwriteGuildCommands
to the rest client, this allows you to make a whole bunch of slash commands in one request - Added
DefaultPermission
to IApplicationCommands.
- Fixed bad parsing on SocketSlashCommand for channel resolved types.
- Added
SelectMenu
as a component type. - Added methods to build select menus in the
ComponentBuilder
. - Added a
Values
property toSocketMessageComponentData
, this is how you see the selected option on a select menus interaction event. - Added resolved models to
SocketSlashCommandDataOption
, theValue
field will now use the strong type of the option type, ex a guild user option will now have the value of aSocketGuildUser
- Changed the embed description length to 4096 (https://discord.com/developers/docs/resources/channel#embed-limits)
- Streamlined the interaction data parsing, no more weird null exceptions in the
INTERACTION_CREATED
event - Changed
SocketInteraction.Data
to theIDiscordInteractionData
type. - Merged DNET into interactions, we are now on api v9. This also includes all the bug fixes that dnet did.
- Added the new channel permission flags (https://discord.com/developers/docs/topics/permissions#permissions-bitwise-permission-flags)
- Fixed the component builders checks for adding new components.
- Added message component support
- Added Interaction support
- Added slash command support