All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning when possible (see our Version Guarantees for more info).
These changes are available on the master branch, but have not yet been released.
- Added
.extensionattribute to emojis to get their file extension. (#3055) - Added
Member.coloursandMember.colorsproperties. (#3063)
- Updated
Role.is_assignable()to also check whether the bot has theMANAGE_ROLESpermission. (#3048) - Changed
Member.colourandMember.colorto be aliases forMember.colours.primary. (#3063)
- Fixed
RawMessageUpdateEvent.cached_messagebeing alwaysNoneeven when the message was cached. (#3038) - Fixed downloading animated emojis which were originally uploaded as WebP files by
changing the
.urlextension of animated emojis from .gif to .webp. (#3055) - Fixed
Interaction.channelnot being resolved with user-installed commands ran in guilds which the bot is not a member of. (#3047)
2.7.0 - 2025-12-24
- Added
Attachment.read_chunkedand added optionalchunksizeargument toAttachment.savefor retrieving attachments in chunks. (#2956) - Added
Guild.fetch_roles_member_countsmethod andGuildRoleCountsclass. (#3020) - Implemented
with_responsefor interaction callbacks, addingInteraction.callback.is_loading()andInteraction.callback.is_ephemeral(). (#2711) - Added
RawMessageUpdateEvent.new_message- message update events now contain full message objects (#2780) - Added
Guild.get_or_fetch()andClient.get_or_fetch()shortcut methods. (#2776) - Added support for setting guild-specific
avatar,banner, andbiofor the bot user throughMember.edit. (#2908) - Added support for select default values.
(#2899)
- Adds a new generic parameter to selects to type
ui.Select.valuesreturn type. - Adds
SelectDefaultValueobject to create select default values. - Adds
SelectDefaultValueTypeenum. - Adds pre-typed and pre-constructed with select_type
ui.Selectaliases for the different select types:ui.StringSelect,ui.UserSelect,ui.RoleSelect,ui.MentionableSelect, andui.ChannelSelect.
- Adds a new generic parameter to selects to type
- Added
storeparameter toViewandModalclasses. (#2904) - Added
Webhook.parentandWebhook.from_interaction(#2904) - Added the ability to use functions with any number of optional arguments and functions
returning an awaitable as
Option.autocomplete. (#2914) - Added
ui.FileUploadfor modals and theFileUploadcomponent. (#2938) - Added
Permissions.bypass_slowmode. (#2939) - Added support for Guild Incidents via
Guild.incidents_dataandGuild.modify_incident_actions(). (#2955) - Added
mentionproperty toBaseEmoji. (#2972) - Added
positionalargument tocommands.Flag. (#2443) - Added
Guild.fetch_rolemethod. (#2528) - Added the following
AppInfoattributes:approximate_guild_count,approximate_user_install_count,custom_install_url,install_params,interactions_endpoint_url,redirect_uris,role_connections_verification_url, andtags. (#2520) - Added
Member.guild_bannerandMember.display_bannerproperties. (#2556) - Added support for Application Emojis. (#2501)
- Added
cache_app_emojisparameter toClient. (#2501) - Added
elapsedmethod toVoiceClient. (#2587) - Added optional
filterparameter toutils.basic_autocomplete(). (#2590) - Added role tags:
subscription_listing_id,guild_connections, andavailable_for_purchase. (#2606) - Added missing
with_countsparameter tofetch_guildsmethod. (#2615) - Added the following missing permissions:
Permissions.use_soundboard,Permissions.use_external_sounds, andPermissions.view_creator_monetization_analytics. (#2620) - Added
MediaChannelchannel type. (#2641) - Added
Message._raw_dataattribute. (#2670) - Added helper methods to determine the authorizing party of an
Interaction. (#2659) - Added
VoiceMessagesubclass ofFileto allow voice messages to be sent. (#2579) - Added the following soundboard-related features:
- Manage guild soundboard sounds with
Guild.fetch_sounds(),Guild.create_sound(),SoundboardSound.edit(), andSoundboardSound.delete(). - Access Discord default sounds with
Client.fetch_default_sounds(). - Play sounds in voice channels with
VoiceChannel.send_soundboard_sound(). - New
on_voice_channel_effect_sendevent for sound and emoji effects. - Soundboard limits based on guild premium tier (8-48 slots) in
Guild.soundboard_limit. (#2623)
- Manage guild soundboard sounds with
- Added new
Subscriptionobject and related methods/events. (#2564) - Added
Message.forward_to,Message.snapshots, and other related attributes. (#2598) - Add missing
Guildfeature flags andGuild.editparameters. (#2672) - Added the ability to change the API's base URL with
Route.API_BASE_URL. (#2714) - Added the ability to pass a
datetime.timeobject toformat_dt. (#2747) - Added the ability to pass an
overlapparameter to theloopdecorator andLoopclass, allowing concurrent iterations if enabled. (#2765) - Added various missing channel parameters and allow
default_reaction_emojito beNone. (#2772) - Added support for type hinting slash command options with
typing.Annotated. (#2782) - Added conversion to
MemberinMentionableConverter. (#2775) - Added
discord.Interaction.created_at. (#2801) - Added
User.nameplateproperty. (#2817) - Added role gradients support with
Role.coloursand theRoleColoursclass. (#2818) - Added
ThreadArchiveDurationenum to improve clarity of thread archive durations. (#2826) - Added
Interaction.attachment_size_limit. (#2854) - Added support for selects and text displays in modals. (#2858)
- Added
AuditLogDiff.communication_disabled_until. (#2883) - Added
discord.User.primary_guildand thePrimaryGuildclass. (#2876) - Added
get_componenttoMessage,Section,ContainerandActionRow. (#2849)
- Overhauled support for Components V2 and new Modal components
(#2904)
- Revert
discord.ui.Viewanddiscord.ui.Modalto 2.6.1 behavior; not compatible with new features. - Implemented
discord.ui.DesignerViewanddiscord.ui.DesignerModalto support new components. DesignerViewandContainerdo not supportButtonandSelectdirectly; usediscord.ui.ActionRowinstead.DesignerModaldoes not supportInputTextandSelectdirectly; usediscord.ui.Labelinstead.- Removed
InputText.description,Select.labelandSelect.description; these are now attributes ofLabel. discord.ui.Itemis now a base class forViewItemandModalItem; all items inherit from these.- All view and modal classes now inherit from a base
ItemInterfaceclass, split intoBaseViewandBaseModal
- Revert
- Renamed
coverproperty ofScheduledEventandcoverargument ofScheduledEvent.edittoimage. (#2496) ⚠️ Removed support for Python 3.8. (#2521)Emojihas been renamed toGuildEmoji. (#2501)- Replaced audioop (deprecated module) implementation of
PCMVolumeTransformer.readmethod with a pure Python equivalent. (#2176) - Updated
Guild.filesize_limitto 10 MB instead of 25 MB following Discord's API changes. (#2671) Entitlement.ends_atcan now beNone. (#2564)- Changed the default value of
ApplicationCommand.nsfwtoFalse. (#2797) - Upgraded voice websocket version to v8. (#2812)
Messageable.pins()now returns aMessagePinIteratorand has new arguments. (#2872)
- Fixed the
viewattribute on many view items being incorrect. (#2981) - Fixed
TypeErrorin paginator implementation when only passingPageGroupobjects andshow_menuis falsy. (#2993) - Fixed breaking change in
ui.SelectGeneric typing by adding default values to TypeVars. (#3002) - Fixed
View'sdisable_on_timeoutnot working in private (DM) channels. (#3016) - Manage silence for new SSRC with existing user_id. (#2808)
- Unbound
rawreference inparse_message_updatecausing errors on message updates. (#2905) view=Nonein various methods causing an AttributeError. (#2915)View.messagebeingNonewhen it had not been interacted with yet. (#2916)- Fixed a crash when processing message edit events while message cache was disabled. (#2924)
- Fixed OPUS Decode Error when recording audio. (#2925)
- Fixed a
TypeErrorwhen typingui.Selectwithout providing optional type arguments. (#2943) - Fixed modal input values being misordered when using the
rowparameter and inserting items out of row order. (#2938) - Fixed a KeyError when a text input is left blank in a modal. (#2938)
- Fixed
TypeErrorwhen using Python 3.12+typesyntax for typing slash command parameters. (#2952) - Fixed autocomplete crashing when using an async staticmethod. (#2966)
- Fixed attributes like :attr:
Member.display_bannerbeingNonewhen the member has no guild specific banner, but does have a global one. (#2968) - Fixed
__repr__formatting forAppEmoji. (#2972) - Fixed
Enumoptions not setting the correct type when only one choice is available. (#2577) - Fixed
codecoption forFFmpegOpusAudioclass to make it in line with documentation. (#2581) - Fixed a possible bug where audio would play too fast at the beginning of audio files. (#2584)
- Fixed paginator not responding when using
Paginator.edit()with default parameters. (#2594) - Fixed the
is_owner()usertype hint:User->User | Member. (#2593) - Fixed
Guild.create_test_entitlement()andUser.create_test_entitlement()using the guild/user ID instead of the application ID. (#2595) - Fixed
BucketType.categorycooldown commands not functioning correctly in private channels. (#2603) - Fixed
ctxparameter of aSlashCommandnot beingUniontype. (#2611) - Fixed
TypeErrorwhen passingskusparameter inClient.entitlements(). (#2627) - Fixed
AttributeErrorwhen sending polls withPartialWebook. (#2624) - Fixed editing
ForumChannelflags not working. (#2641) - Fixed
AttributeErrorwhen accessingMember.guild_permissionsfor user installed apps. (#2650) - Fixed type annotations of cached properties. (#2635)
- Fixed malformed properties in
Interaction.channel. (#2658) - Fixed an error when responding non-ephemerally with a
Paginatorto an ephemerally deferred interaction. (#2661) - Fixed attachment metadata being set incorrectly in interaction responses causing the metadata to be ignored by Discord. (#2679)
- Fixed unexpected backoff behavior in the handling of task failures (#2700).
- Fixed
BridgeCommandduplicate in default help command. (#2656) - Fixed
AttributeErrorwhen trying to consume a consumable entitlement. (#2564) - Fixed
Subscription.renewal_sku_idsnot acceptingNonefrom the received payload. (#2709) - Fixed
ForumChannel.editallowingdefault_reaction_emojito beNone. (#2739) - Fixed missing
Nonetype hints inSelect.__init__. (#2746) - Fixed
TypeErrorwhen usingFlagwith Python 3.11+. (#2759) - Fixed
TypeErrorwhen specifyingthread_nameinWebhook.send. (#2761) - Updated
valid_localesto supportinandes-419. (#2767) - Added support for emoji aliases like
:smile:in PartialEmoji.from_str. Also applied the same logic in PartialEmojiConverter. (#2815) - Fixed
Webhook.editnot working withattachments=[]. (#2779) - Fixed GIF-based
Stickerreturning the wrongurl. (#2781) - Fixed
VoiceClientcrashing randomly while receiving audio (#2800) - Fixed
VoiceClient.connectfailing to do initial connection. (#2812) - Fixed
AttributeErrorwhen printing a File component's__repr__. (#2843) - Fixed
TypeErrorwhen using@optionwith certain annotations and along withchannel_types. (#2835) - Fixed
TypeErrorwhen usingOptional[...]or... | Nonein command option type. (#2852) - Fixed type-hinting for
PermissionOverwrite.update. (#2878) - Fixed
AttributeErrorwhen accessingAuditLogEntry.changesmore than once. ([#2882])(#2882)) - Fixed type hint for argument
start_timeandend_timeofGuild.create_scheduled_event(#2879)
- Deprecated manually setting the
viewattribute on view items. (#2981) - Deprecated
utils.get_or_fetch(attr, id)andClient.get_or_fetch_user(id)in favour ofutils.get_or_fetch(object_type, object_id)andClient.get_or_fetch(User, id). (#2776) - Deprecated
AppInfo.summaryin favor ofAppInfo.description. (#2520) - Deprecated
Emojiin favor ofGuildEmoji. (#2501) - Deprecated
Interaction.cached_channelin favor ofInteraction.channel. (#2658) - Deprecated
is_nsfwfor categories since it was never supported by the API. (#2772) - Deprecated
Messageable.pins()returning a list ofMessage; it should be used as an iterator ofMessagePininstead. (#2872)
⚠️ Removed support for Python 3.9. (#2986)- Removed deprecated support for
OptioninBridgeCommand, useBridgeOptioninstead. (#2731)
2.7.0rc2 - 2025-10-22
- Implemented
with_responsefor interaction callbacks, addingInteraction.callback.is_loading()andInteraction.callback.is_ephemeral(). (#2711) - Added
RawMessageUpdateEvent.new_message- message update events now contain full message objects (#2780) - Added
Guild.get_or_fetch()andClient.get_or_fetch()shortcut methods. (#2776) - Added support for setting guild-specific
avatar,banner, andbiofor the bot user throughMember.edit. (#2908) - Added support for select default values.
(#2899)
- Adds a new generic parameter to selects to type
ui.Select.valuesreturn type. - Adds
SelectDefaultValueobject to create select default values. - Adds
SelectDefaultValueTypeenum. - Adds pre-typed and pre-constructed with select_type
ui.Selectaliases for the different select types:ui.StringSelect,ui.UserSelect,ui.RoleSelect,ui.MentionableSelect, andui.ChannelSelect.
- Adds a new generic parameter to selects to type
- Added
storeparameter toViewandModalclasses. (#2904) - Added
Webhook.parentandWebhook.from_interaction(#2904) - Added the ability to use functions with any number of optional arguments and functions
returning an awaitable as
Option.autocomplete. (#2914) - Added
ui.FileUploadfor modals and theFileUploadcomponent. (#2938) - Added
Permissions.bypass_slowmode. (#2939) - Added support for Guild Incidents via
Guild.incidents_dataandGuild.modify_incident_actions(). (#2955) - Added
mentionproperty toBaseEmoji. (#2972)
- Overhauled support for Components V2 and new Modal components
(#2904)
- Revert
discord.ui.Viewanddiscord.ui.Modalto 2.6.1 behavior; not compatible with new features. - Implemented
discord.ui.DesignerViewanddiscord.ui.DesignerModalto support new components. DesignerViewandContainerdo not supportButtonandSelectdirectly; usediscord.ui.ActionRowinstead.DesignerModaldoes not supportInputTextandSelectdirectly; usediscord.ui.Labelinstead.- Removed
InputText.description,Select.labelandSelect.description; these are now attributes ofLabel. discord.ui.Itemis now a base class forViewItemandModalItem; all items inherit from these.- All view and modal classes now inherit from a base
ItemInterfaceclass, split intoBaseViewandBaseModal
- Revert
- Manage silence for new SSRC with existing user_id. (#2808)
- Unbound
rawreference inparse_message_updatecausing errors on message updates. (#2905) view=Nonein various methods causing an AttributeError. (#2915)View.messagebeingNonewhen it had not been interacted with yet. (#2916)- Fixed a crash when processing message edit events while message cache was disabled. (#2924)
- Fixed OPUS Decode Error when recording audio. (#2925)
- Fixed a
TypeErrorwhen typingui.Selectwithout providing optional type arguments. (#2943) - Fixed modal input values being misordered when using the
rowparameter and inserting items out of row order. (#2938) - Fixed a KeyError when a text input is left blank in a modal. (#2938)
- Fixed
TypeErrorwhen using Python 3.12+typesyntax for typing slash command parameters. (#2952) - Fixed autocomplete crashing when using an async staticmethod. (#2966)
- Fixed attributes like :attr:
Member.display_bannerbeingNonewhen the member has no guild specific banner, but does have a global one. (#2968) - Fixed
__repr__formatting forAppEmoji. (#2972)
- Deprecated
utils.get_or_fetch(attr, id)andClient.get_or_fetch_user(id)in favour ofutils.get_or_fetch(object_type, object_id)andClient.get_or_fetch(User, id). (#2776)
2.7.0rc1 - 2025-08-30
- Added
positionalargument tocommands.Flag. (#2443) - Added
Guild.fetch_rolemethod. (#2528) - Added the following
AppInfoattributes:approximate_guild_count,approximate_user_install_count,custom_install_url,install_params,interactions_endpoint_url,redirect_uris,role_connections_verification_url, andtags. (#2520) - Added
Member.guild_bannerandMember.display_bannerproperties. (#2556) - Added support for Application Emojis. (#2501)
- Added
cache_app_emojisparameter toClient. (#2501) - Added
elapsedmethod toVoiceClient. (#2587) - Added optional
filterparameter toutils.basic_autocomplete(). (#2590) - Added role tags:
subscription_listing_id,guild_connections, andavailable_for_purchase. (#2606) - Added missing
with_countsparameter tofetch_guildsmethod. (#2615) - Added the following missing permissions:
Permissions.use_soundboard,Permissions.use_external_sounds, andPermissions.view_creator_monetization_analytics. (#2620) - Added
MediaChannelchannel type. (#2641) - Added
Message._raw_dataattribute. (#2670) - Added helper methods to determine the authorizing party of an
Interaction. (#2659) - Added
VoiceMessagesubclass ofFileto allow voice messages to be sent. (#2579) - Added the following soundboard-related features:
- Manage guild soundboard sounds with
Guild.fetch_sounds(),Guild.create_sound(),SoundboardSound.edit(), andSoundboardSound.delete(). - Access Discord default sounds with
Client.fetch_default_sounds(). - Play sounds in voice channels with
VoiceChannel.send_soundboard_sound(). - New
on_voice_channel_effect_sendevent for sound and emoji effects. - Soundboard limits based on guild premium tier (8-48 slots) in
Guild.soundboard_limit. (#2623)
- Manage guild soundboard sounds with
- Added new
Subscriptionobject and related methods/events. (#2564) - Added
Message.forward_to,Message.snapshots, and other related attributes. (#2598) - Add missing
Guildfeature flags andGuild.editparameters. (#2672) - Added the ability to change the API's base URL with
Route.API_BASE_URL. (#2714) - Added the ability to pass a
datetime.timeobject toformat_dt. (#2747) - Added the ability to pass an
overlapparameter to theloopdecorator andLoopclass, allowing concurrent iterations if enabled. (#2765) - Added various missing channel parameters and allow
default_reaction_emojito beNone. (#2772) - Added support for type hinting slash command options with
typing.Annotated. (#2782) - Added conversion to
MemberinMentionableConverter. (#2775) - Added
discord.Interaction.created_at. (#2801) - Added
User.nameplateproperty. (#2817) - Added role gradients support with
Role.coloursand theRoleColoursclass. (#2818) - Added
ThreadArchiveDurationenum to improve clarity of thread archive durations. (#2826) - Added
Interaction.attachment_size_limit. (#2854) - Added support for selects and text displays in modals. (#2858)
- Added
AuditLogDiff.communication_disabled_until. (#2883) - Added
discord.User.primary_guildand thePrimaryGuildclass. (#2876) - Added
get_componenttoMessage,Section,ContainerandActionRow. (#2849)
- Fixed
Enumoptions not setting the correct type when only one choice is available. (#2577) - Fixed
codecoption forFFmpegOpusAudioclass to make it in line with documentation. (#2581) - Fixed a possible bug where audio would play too fast at the beginning of audio files. (#2584)
- Fixed paginator not responding when using
Paginator.edit()with default parameters. (#2594) - Fixed the
is_owner()usertype hint:User->User | Member. (#2593) - Fixed
Guild.create_test_entitlement()andUser.create_test_entitlement()using the guild/user ID instead of the application ID. (#2595) - Fixed
BucketType.categorycooldown commands not functioning correctly in private channels. (#2603) - Fixed
ctxparameter of aSlashCommandnot beingUniontype. (#2611) - Fixed
TypeErrorwhen passingskusparameter inClient.entitlements(). (#2627) - Fixed
AttributeErrorwhen sending polls withPartialWebook. (#2624) - Fixed editing
ForumChannelflags not working. (#2641) - Fixed
AttributeErrorwhen accessingMember.guild_permissionsfor user installed apps. (#2650) - Fixed type annotations of cached properties. (#2635)
- Fixed malformed properties in
Interaction.channel. (#2658) - Fixed an error when responding non-ephemerally with a
Paginatorto an ephemerally deferred interaction. (#2661) - Fixed attachment metadata being set incorrectly in interaction responses causing the metadata to be ignored by Discord. (#2679)
- Fixed unexpected backoff behavior in the handling of task failures (#2700).
- Fixed
BridgeCommandduplicate in default help command. (#2656) - Fixed
AttributeErrorwhen trying to consume a consumable entitlement. (#2564) - Fixed
Subscription.renewal_sku_idsnot acceptingNonefrom the received payload. (#2709) - Fixed
ForumChannel.editallowingdefault_reaction_emojito beNone. (#2739) - Fixed missing
Nonetype hints inSelect.__init__. (#2746) - Fixed
TypeErrorwhen usingFlagwith Python 3.11+. (#2759) - Fixed
TypeErrorwhen specifyingthread_nameinWebhook.send. (#2761) - Updated
valid_localesto supportinandes-419. (#2767) - Added support for emoji aliases like
:smile:in PartialEmoji.from_str. Also applied the same logic in PartialEmojiConverter. (#2815) - Fixed
Webhook.editnot working withattachments=[]. (#2779) - Fixed GIF-based
Stickerreturning the wrongurl. (#2781) - Fixed
VoiceClientcrashing randomly while receiving audio (#2800) - Fixed
VoiceClient.connectfailing to do initial connection. (#2812) - Fixed
AttributeErrorwhen printing a File component's__repr__. (#2843) - Fixed
TypeErrorwhen using@optionwith certain annotations and along withchannel_types. (#2835) - Fixed
TypeErrorwhen usingOptional[...]or... | Nonein command option type. (#2852) - Fixed type-hinting for
PermissionOverwrite.update. (#2878) - Fixed
AttributeErrorwhen accessingAuditLogEntry.changesmore than once. ([#2882])(#2882)) - Fixed type hint for argument
start_timeandend_timeofGuild.create_scheduled_event(#2879)
- Renamed
coverproperty ofScheduledEventandcoverargument ofScheduledEvent.edittoimage. (#2496) ⚠️ Removed support for Python 3.8. (#2521)Emojihas been renamed toGuildEmoji. (#2501)- Replaced audioop (deprecated module) implementation of
PCMVolumeTransformer.readmethod with a pure Python equivalent. (#2176) - Updated
Guild.filesize_limitto 10 MB instead of 25 MB following Discord's API changes. (#2671) Entitlement.ends_atcan now beNone. (#2564)- Changed the default value of
ApplicationCommand.nsfwtoFalse. (#2797) - Upgraded voice websocket version to v8. (#2812)
Messageable.pins()now returns aMessagePinIteratorand has new arguments. (#2872)
- Deprecated
AppInfo.summaryin favor ofAppInfo.description. (#2520) - Deprecated
Emojiin favor ofGuildEmoji. (#2501) - Deprecated
Interaction.cached_channelin favor ofInteraction.channel. (#2658) - Deprecated
is_nsfwfor categories since it was never supported by the API. (#2772) - Deprecated
Messageable.pins()returning a list ofMessage; it should be used as an iterator ofMessagePininstead. (#2872)
- Removed deprecated support for
OptioninBridgeCommand, useBridgeOptioninstead. (#2731)
2.6.1 - 2024-09-15
- Fixed premature garbage collection of tasks. (#2510)
- Fixed
EntitlementIteratortype hints and behavior withlimit > 100. (#2555) - Fixed missing
stacklevelparameter inwarn_deprecatedfunction call inside@utils.deprecated. (#2500) - Fixed the type hint in
ConnectionState._pollsto reflect actual behavior, changing it fromGuildtoPoll. (#2500) - Fixed missing
__slots__attributes inRawReactionClearEmojiEventandRawMessagePollVoteEvent. (#2500) - Fixed the type of
ForumChannel.default_sort_order, changing it frominttoSortOrder. (#2500) - Fixed
PartialMessagecausing errors when created fromPartialMessageable. (#2568) - Fixed the
guildattribute ofMembers received from aUserCommandbeingNone. (#2573) - Fixed
Webhook.send, which did not include attachment data. (#2513) - Fixed inverted type hints in
CheckAnyFailure. (#2502)
2.6.0 - 2024-07-09
- Added
bannerparameter toClientUser.edit. (#2396) - Added
userargument toPaginator.edit. (#2390) - Added
bridge_optiondecorator. Required forbridge.Botin 2.7. (#2417) - Added
Guild.search_members. (#2418) - Added bulk banning up to 200 users through
Guild.bulk_ban. (#2421) - Added
memberdata to theraw_reaction_removeevent. (#2412) - Added
Polland all related features. (#2408) - Added
stacklevelparam toutils.warn_deprecatedandutils.deprecated. (#2450) - Added support for user-installable applications. (#2409)
- Added support for one-time purchases for Discord monetization. (#2438)
- Added
Attachment.title. (#2486) - Added
MemberFlags. (#2489) - Added
bypass_verificationparameter toMember.edit. (#2489) - Added
RoleFlags. (#2487) - Added
MessageCallinformation. (#2488)
- Fixed the type-hinting of
Member.move_toandMember.editto reflect actual behavior. (#2386) - Fixed a deprecation warning from being displayed when running
python -m discord -vby replacing the deprecated module. (#2392) - Fixed
Paginator.editto no longer set user to the bot. (#2390) - Fixed
NameErrorin some instances ofInteraction. (#2402) - Fixed interactions being ignored due to
PartialMessage.idbeing of typestr. (#2406) - Fixed the type-hinting of
ScheduledEvent.subscribersto reflect actual behavior. (#2400) - Fixed
ScheduledEvent.subscribersbehavior withlimit=None. (#2407) - Fixed invalid data being passed to
Interaction._guildin certain cases. (#2411) - Fixed option type hints being ignored when using
parameter_name. (#2417) - Fixed parameter
embed=NonecausingAttributeErroronPartialMessage.edit. (#2446) - Fixed paginator to revert state if a page update callback fails. (#2448)
- Fixed missing
application_idinEntitlement.delete. (#2458) - Fixed issues with enums as
Optiontypes with long descriptions or too many values. (#2463) - Fixed many inaccurate type hints throughout the library. (#2457)
- Fixed
AttributeErrordue todiscord.Optionbeing initialised withinput_typeset toNone. (#2464) - Fixed
remove_application_commandcausing issues while reloading extensions. (#2480) - Fixed outdated logic for filtering and sorting audit log entries. (#2371)
- Further fixed logic when fetching audit logs. (#2492)
- Changed the type of
Guild.bitrate_limittoint. (#2387) - HTTP requests that fail with a 503 status are now retried. (#2395)
optiondecorator now acceptsinput_type. (#2417)Optionmay be used instead ofBridgeOptionuntil 2.7. (#2417)Guild.query_membersnow acceptslimit=Noneto retrieve all members. (#2419)ApplicationCommand.guild_onlyis now deprecated in favor ofApplicationCommand.contexts. (#2409)Message.interactionis now deprecated in favor ofMessage.interaction_metadata. (#2409)- Replaced
Client.fetch_entitlementswithClient.entitlements, which returns anEntitlementIterator. (#2490) - Changed the error message that appears when attempting to add a subcommand group to a subcommand group. (#2275)
- Removed the
delete_message_daysparameter from ban methods. Please usedelete_message_secondsinstead. (#2421) - Removed the
oldest_firstparameter fromGuild.audit_logsin favor of thebeforeandafterparameters. (#2371) - Removed the
vanity_codeparameter fromGuild.edit. (#2491)
2.5.0 - 2024-03-02
- Added method to start bot via async context manager. (#1801)
- Added parameters
author,footer,imageandthumbnailtodiscord.Embedinitializer. (#1996) - Added events
on_bridge_command,on_bridge_command_completion, andon_bridge_command_error. (#1916) - Added the
@client.once()decorator, which serves as a one-time event listener. (#1940) - Added support for text-related features in
StageChannel. (#1936) - Added support for one-time event listeners in
Client.listen. (#1957) - Added
current_pageargument toPaginator.update(). (#1983) - Added application flag
application_auto_moderation_rule_create_badge. (#1992) - Added support for recording silence via new
sync_startargument inVoiceClient.start_recording(). (#1984) - Added
custom_messageto AutoModActionMetadata. (#2029) - Added support for voice messages. (#2016)
- Added
dataattribute to all Raw Event payloads. (#2023) - Added and documented missing
AuditLogActionenums. (#2030, #2171) - Added AutoMod-related models for
AuditLogDiffenums. (#2030) - Added
Interaction.respondandInteraction.editas shortcut responses. (#2026) - Added
view.parentwhich is set when the view is sent byinteraction.response.send_message. (#2036) - Added methods
bridge.Bot.walk_bridge_commandsandBridgeCommandGroup.walk_commands. (#1867) - Added support for usernames and modified multiple methods accordingly. (#2042)
- Added
iconandunicode_emojiarguments toGuild.create_role. (#2086) - Added
cooldownandmax_concurrencyattributes toSlashCommandGroup. (#2091) - Added embedded activities Gartic Phone and Jamspace. (#2102)
- Added
bridge.Contexttype as aUnionof subclasses. (#2106) - Added support for type-hinting slash command options with
typing.Annotated. (#2124) - Added
suppressandallowed_mentionsparameters toWebhookandInteractionResponseedit methods. (#2138) - Added
wait_finishparameter toVoiceClient.playfor awaiting the end of a play. (#2194) - Added support for custom bot status. (#2206)
- Added function
Guild.delete_auto_moderation_rule. (#2153) - Added
VoiceChannel.slowmode_delay. (#2112) - Added
ForumChannel.default_reaction_emojiattribute. (#2178) - Added
default_reaction_emojiparameter toGuild.create_forum_channelandForumChannel.editmethods. (#2178) - Added
applied_tagsparameter toWebhook.sendmethod. (#2322) - Added
User.avatar_decoration. (#2131) - Added support for guild onboarding related features. (#2127)
- Added support for monetization related objects and events. (#2273)
- Added
AttachmentFlagsand attachment attributesexpires_at,issued_atandhm. (#2342) - Added
invitableandslowmode_delaytoThreadcreation methods. (#2350) - Added support for voice channel statuses. (#2368)
- Added
enforce_nonceparameter for message sending. (#2370) - Added audit log support for voice channel status. (#2373)
- Changed default for all
name_localizationsanddescription_localizationsattributes from beingNoneto beingMISSING. (#1866) - Changed
ffmpegoutput suppression when recording voice channels. (#1993) - Changed file-upload size limit from 8 MB to 25 MB accordingly. (#2014)
- Changed the behavior of retrieving bans to accurately reflect the API. (#1922)
- Changed
Interaction.channelto be received from the gateway, allowing it to beDMChannelorGroupChannel. (#2025) - Changed
DMChannel.recipientsto potentially beNone. (#2025) - Changed the behavior to store
view.messagewhen receiving a component interaction, while also changingview.messagenot to be set when sending view throughInteractionResponse.send_message. (#2036) - Changed the fetching of attributes shared between text-based and Slash Commands in Bridge Commands to be dynamic. (#1867)
discord.Embedattributes (such as author, footer, etc.) now return instances of their respective classes when set andNoneotherwise. (#2063)- Changed
default_avatarbehavior to depend on the user's username migration status. (#2087) - Changed type hints of
command_prefixandhelp_commandarguments to be accurate. (#2099) - Replaced
orjsonfeatures withmsgspecin the codebase. (#2170) BridgeOptionmust now be used for arguments in bridge commands. (#2252)
- Removed
Client.oncein favour ofonceargument inClient.listen. (#1957) - Removed
Embed.Emptyin favour ofNone, andEmbedProxyin favour of individual classes. (#2063)
- Fixed
AttributeErrorcaused by #1957 when using listeners in cogs. (#1989) - Fixed an issue in editing webhook messages in forum posts and private threads. (#1981).
- Fixed
View.messagenot being set when view is sent using webhooks, includingInteraction.followup.sendor when a message is edited. (#1997) - Fixed
Nonebeing handled incorrectly for avatar inClientUser.edit. (#1994) - Fixed scheduled events breaking when changing the location from external to a channel. (#1998)
- Fixed boolean converter breaking for Bridge Commands. (#1999)
- Fixed bridge command options not working. (#1999)
- Fixed
TypeErrorbeing raised when passingnameargument to bridge groups. (#2000) - Fixed
TypeErrorinAutoModRule. (#2029) - Fixed the functionality to override the default
on_application_command_errorbehavior using listeners. (#2044) - Fixed unloading of cogs with bridge commands. (#2048)
- Fixed the
individualslash command synchronization method. (#1925) - Fixed an issue that occurred when
webhooks_updateevent payload channel ID wasNone. (#2078) - Fixed major
TypeErrorwhen anAuditLogEntryhas no user. (#2079) - Fixed
HTTPExceptionwhen trying to create a forum thread with files. (#2075) - Fixed
before_invokenot being run forSlashCommandGroup. (#2091) - Fixed
AttributeErrorwhen accessing aSelectobject's values when it has not been interacted with. (#2104) - Fixed
before_invokebeing run twice for slash subcommands. (#2139) - Fixed
Guild._member_countsometimes not being set. (#2145) - Fixed
Thread.applied_tagsnot being updated. (#2146) - Fixed type-hinting of
authorproperty ofApplicationContextto include type-hinting ofUserorMember. (#2148) - Fixed missing
delete_afterparameter in overload type-hinting forWebhook.send(). (#2156) - Fixed
ScheduledEvent.creator_idreturningstrinstead ofint. (#2162) - Fixed
_bytes_to_base64_datanot defined. (#2185) - Fixed inaccurate
Uniontype hint ofvaluesargument ofbasic_autocompleteto includeIterable[OptionChoice]. - Fixed initial message inside of the create thread payload sending legacy beta payload. (#2191)
- Fixed a misplaced payload object inside of the thread creation payload. (#2192)
- Fixed
DMChannel.recipientandUser.dm_channelbeingNone. (#2219) - Fixed
ffmpegbeing terminated prematurely when piping audio stream. (#2240) - Fixed tasks looping infinitely when
tzinfois neitherNonenor UTC. (#2196) - Fixed
AttributeErrorwhen running permission checks without thebotscope. (#2113) - Fixed
Optionnot working on bridge commands becauseext.commands.Commanddoes not recognize them. (#2256) - Fixed offset-aware tasks causing
TypeErrorwhen being prepared. (#2271) - Fixed
AttributeErrorwhen serializing commands withAnnotatedtype hints. (#2243) - Fixed
Intents.all()returning the wrong value. (#2257) - Fixed
AuditLogIteratornot respecting theafterparameter. (#2295) - Fixed
AttributeErrorwhen failing to establish initial websocket connection. (#2301) - Fixed
AttributeErrorcaused bycommand.cogbeingMISSING. (#2303) - Fixed
self.use_default_buttonsbeing assumed truthy byPaginator.update. (#2319) - Fixed
AttributeErrorwhen comparing application commands with non-command objects. (#2299) - Fixed
AttributeErrorwhen copying groups on startup. (#2331) - Fixed application command options causing errors if declared through the option decorator or kwarg. (#2332)
- Fixed options declared using the parameter default value syntax always being optional. (#2333)
- Fixed
BridgeContexttype hints raising an exception for unsupported option type. (#2337) - Fixed
TypeErrordue to(Sync)WebhookMessage._thread_idbeing set toNone. (#2343) - Fixed
AttributeErrordue toentitlementsnot being included inInteraction.__slots__. (#2345) - Fixed
Thread.mebeing out of date and added the thread owner toThread.memberson creation. (#1296) - Fixed keyword argument wildcard of
bridge.has_permissionshaving the wrong type hint. (#2364) - Fixed enum to support stringified annotations. (#2367)
2.4.1 - 2023-03-20
- Updated the values of the
Color.embed_background()classmethod to correspond with new theme colors in the app. (#1931)
- Fixed the type-hinting of
SlashCommandGroup.walk_commands()to reflect actual behavior. (#1838) - Fixed the voice IP discovery due to the recent announced change. (#1955)
- Fixed
reasonbeing passed to the wrong method inguild.create_auto_moderation_rule. (#1960)
2.4.0 - 2023-02-10
- Added new AutoMod trigger metadata properties
regex_patterns,allow_list, andmention_total_limit; and added themention_spamtrigger type. (#1809) - Added missing
imageparameter toGuild.create_scheduled_event()method. (#1831) - New
ApplicationRoleConnectionMetadataclass for application role connection metadata, along with thefetch_role_connection_metadata_recordsandupdate_role_connection_metadata_recordsmethods inClient. (#1791) - Added new message types,
role_subscription_purchase,interaction_premium_upsell,stage_start,stage_end,stage_speaker,stage_raise_hand,stage_topic, andguild_application_premium_subscription. (#1852) - Added new
EmbeddedActivityvalues. (#1859) - Added new
suppress_notificationstoMessageFlags. (#1912) - Added GIF sticker format type to the
StickerFormatTypeenum. (#1915) - Added new raw events:
raw_member_remove,raw_thread_update, andraw_thread_member_remove. (#1880) - Improved support for setting channel types & added new channel types for
discord.Option. (#1883)
- Changed
EmbeddedActivityvalues to update accordingly with the new activities. (#1859) - Advanced version info is now stored as a dict in
version_info.advancedinstead of attributes on theversion_infoobject. (#1920) - The
version_info.release_levelattribute has been reverted to its previous name,releaselevel. (#1920)
- Fixed bugs in
Page.update_fileswhere file objects stored in memory were causing anAttributeError, andio.BytesIOfiles did not send properly more than once. (#1869 & #1881) - Fixed bridge groups missing the
parentattribute. (#1823) - Fixed issues with creating auto moderation rules. (#1822)
2.3.3 - 2023-02-10
- Fixed an unhandled
KeyErrorexception when receiving GIF stickers, causing crashes. (#1915)
2.3.2 - 2022-12-03
- Fixed another
AttributeErrorrelating to the newbridge_commandsattribute onext.bridge.Bot. (#1815) - Fixed an
AttributeErrorin select relating to the select type. (#1814) - Fixed
Thread.applied_tagsalways returning an empty list. (#1817)
2.3.1 - 2022-11-27
- Fixed
AttributeErrorrelating to the newbridge_commandsattribute onext.bridge.Bot. (#1802)
2.3.0 - 2022-11-23
- New brief Attribute to BridgeSlashCommand. (#1676)
- Python 3.11 support. (#1680)
- New select types
user,role,mentionable, andchannel- Along with their respective types and shortcut decorators. (#1702) - Added support for age-restricted (NSFW) commands. (#1775)
- New flags:
PublicUserFlags.active_developer&ApplicationFlags.active. (#1776) - Support for new forum features including tags, default slowmode, and default sort order. (#1636)
- Support for new thread attributes
total_message_sentandis_pinned. (#1636) - Added
bridge_commandsattribute toext.bridge.Botfor access to bridge command objects. (#1787) - Updated
Guild.featuresto include new and previously missing features. (#1788)
- Fix bridge.has_permissions. (#1695)
- Fix audit log overwrite type always resulting in
None. (#1716) - Fixed error when using
suppresskwarg insend(). (#1719 & #1723)
get_application_command()type kwarg now defaults toApplicationCommand, so all command types can be retrieved by default. (#1678)get_application_command()now supports retrieving subcommands and subcommand groups. (#1678)
- Removed the guild feature
PRIVATE_THREADSdue to paywall limitation removal. (#1789)
2.2.2 - 2022-10-05
- Fixed
parentattribute of second-level subcommands being set to the base level command instead of the direct parent. (#1673)
2.2.1 - 2022-10-05
- New
SlashCommand.qualified_idattribute. (#1672)
- Fixed a
TypeErrorinban()methods related to the newdelete_message_secondsparameter. (#1666) - Fixed broken
cogandparentattributes on commands in cogs. (#1662) - Fixed
SlashCommand.mentionfor subcommands. (#1672)
2.2.0 - 2022-10-02
- New Guild Feature
INVITES_DISABLED. (#1613) suppresskwarg toMessageable.send(). (#1587)proxyandproxy_authparams to many Webhook-related methods. (#1655)delete_message_secondsparameter in ban methods. (#1557)- New
View.get_item()method. (#1659) - Permissions support for bridge commands. (#1642)
- New
BridgeCommand.invoke()method. (#1642) - New
raw_mentions,raw_role_mentionsandraw_channel_mentionsfunctions indiscord.utils. (#1658) - New methods
original_response,edit_original_response&delete_original_responseforInteractionobjects. (#1609)
- The
delete_message_daysparameter in ban methods is now deprecated. Please usedelete_message_secondsinstead. (#1557) - The
original_message,edit_original_message&delete_original_messagemethods forInteractionare now deprecated. Please use the respectiveoriginal_response,edit_original_response&delete_original_responsemethods instead. (#1609)
- Various fixes to ext.bridge groups. (#1633 & #1631)
- Fix
VOICE_SERVER_UPDATEerror. (#1624) - Removed unnecessary instance check in autocomplete. (#1643)
- Interaction responses are now passed the respective
proxyandproxy_authparams as defined inClient. (#1655)
2.1.3 - 2022-09-06
- Fix TypeError in
process_application_commands. (#1622)
2.1.2 - 2022-09-06
2.1.1 - 2022-08-25
- Bridge command detection in cogs. (#1592)
2.1.0 - 2022-08-25
- Support for add, sub, union, intersect, and inverse operations on classes inheriting
from
BaseFlags. (#1486) - A
disable_on_timeoutkwarg in theViewconstructor. (#1492) - New
mentionproperty forSlashCommandobjects, allowing a shortcut for the new command markdown syntax. (#1523) - An
app_commands_badgevalue onApplicationFlags. (#1535 and #1553) - A new
fetch_applicationmethod in theClientobject. (#1536) - New
on_check_failureevent method for theViewclass. (#799) - A
set_mfa_requiredmethod toGuild. (#1552) - Support for command groups with bridge commands. (#1496)
- Support for
Attachmenttype options for bridge commands. (#1496) is_appproperty forBridgeContextto better differentiate context types. (#1496)- Support for localization on bridge commands. (#1496)
- A
filter_paramshelper function indiscord.utils. (#1496) - Support for
InteractionMessagevia themessageproperty ofView. (#1492)
- Use
slash_variantandext_variantattributes instead ofget_application_command()andget_ext_command()methods onBridgeCommand. (#1496) - Set
storekwarg default toFalsein load_extension(s) method. (#1520) commands.has_permissions()check now returnsTruein DM channels. (#1577)
- Fix
VoiceChannel/CategoryChanneldata being invalidated onOption._invoke. (#1490) - Fix type issues in
options.py(#1473) - Fix KeyError on AutoModActionExecution when the bot lacks the Message Content Intent. (#1521)
- Large code/documentation cleanup & minor bug fixes. (#1476)
- Fix
Optionwith typestrraising AttributeError whenmin_lengthormax_lengthkwargs are passed. (#1527) - Fix
load_extensionsparameters not being passed through correctly. (#1537) - Fix
SlashCommandGroupdescriptions to use the correct default string. (#1539 and #1586) - Fix Enum type options breaking due to
from_datatype()method & Fix minor typing import. (#1541) - Adjust category and guild
_channelsattributes to work with NoneType positions. (#1530) - Make
SelectOption.emojia property. (#1550) - Improve sticker creation by checking for minimum and maximum length on
nameanddescription. (#1546) - Fix threads created with a base message being set to the wrong
message_reference. (#1551) - Avoid unnecessary calls to
sync_commandsduring runtime. (#1563) - Fix bug in
Modal.on_timeout()by usingcustom_idto create timeout task. (#1562) - Respect limit argument in
Guild.bans(). (#1573) - Fix
beforeargument inon_scheduled_event_updateevent always set toNoneby converting ID toint. (#1580) - Fix
__eq__methodApplicationCommandaccidentally comparing to self. (#1585) - Apply
cog_checkmethod toApplicationCommandinvocations. (#1575) - Fix
Interaction.edit_original_message()usingConnectionStateinstead ofInteractionMessageState. (#1565) - Fix required parameters validation error. (#1589)
- Improved fix for application-based bots without the bot scope (#1584)
2.0.1 - 2022-08-16
- Fix for application-based bots without the bot scope (#1568)
2.0.0 - 2022-07-08
- New
newsproperty onTextChannel. (#1370) - New
invisiblekwarg todefer()method. (#1379) - Support for audit log event type 121
APPLICATION_COMMAND_PERMISSION_UPDATE. (#1424) - New
ForumChannelConverter. (#1440) - A shortcut
jump_urlproperty to users. (#1444) - Ability for webhooks to create forum posts. (#1405)
- New
messageproperty toView(#1446) - Support for
error,before_invoke, andafter_invokehandlers onBridgeCommand. (#1411) - New
threadproperty toMessage. (#1447) - A
starting_messageproperty toThread. (#1447) - An
app_permissionsproperty toInteractionandApplicationContext. (#1460) - Support for loading folders in
load_extension, and a new helper functionload_extensions. (#1423) - Support for AutoMod (#1316)
- Support for
min_lengthandmax_lengthkwargs inOption. (#1463) - Native timeout support for
Modal. (#1434)
- Updated to new sticker limit for premium guilds. (#1420)
- Replace deprecated endpoint in
HTTPClient.change_my_nickname. (#1426) - Updated deprecated IDENTIFY packet connection properties. (#1430)
Guild.regionattribute (Deprecated on API, VoiceChannel.rtc_region should be used instead). (#1429)
- Change
guild_onlytodm_permissionin application commandto_dictmethod. (#1368) - Fix
repr(ScheduledEventLocation)raising TypeError. (#1369) - Fix
repr(TextChannel)raising AttributeError. (#1370) - Fix application command validation. (#1372)
- Fix scheduled event
coverproperty raising AttributeError. (#1381) - Fix
SlashCommandGrouptreating optional arguments as required. (#1386) - Fix
remove_application_commandnot always removing commands. (#1391) - Fix busy-loop in
DecodeManagerwhen the decode queue is empty, causing 100% CPU consumption. (#1395) - Fix incorrect activities and permissions on
InteractionandOptionobjects. (#1365) - Converted PartialMember
deafandmutefrom str annotation (incorrect) to bool annotation. (#1424) - Use
PUTinstead ofPOSTinHTTPClient.join_thread. (#1426) - Fix enum options not setting
input_typeto a SlashCommandOptionType. (#1428) - Fixed TypeError when using thread options. (#1427)
- Allow voice channels in PartialMessage. (#1441)
- Fixed
AuditLogAction.target_typefor application command permission updates. (#1445) - Fix bridge commands to ignore the ephemeral kwarg. (#1453)
- Update
thread.membersonthread.fetch_members. (#1464) - Fix the error when Discord does not send the
app_permissionsdata inInteraction. (#1467) - Fix AttributeError when voice client
play()function is not completed yet. (#1360)
2.0.0-rc.1 - 2022-05-17
- A
delete_afterkwarg toPaginator.send. (#1245) - New
reasonkwarg toThread.delete_messages. (#1253) - A new
jump_urlproperty to channel and thread objects. (#1254 & #1259) - New
Paginator.edit()method. (#1258) - An
EmbedFieldobject. (#1181) - Option names and descriptions are now validated locally. (#1271)
- Component field limits are now enforced at the library level (#1065 & #1289)
- Support providing option channel types as a list. (#1000)
- New
Guild.jump_urlproperty. (#1282) - ext.pages now supports ext.bridge. (#1288)
- Implement
Nonecheck for check_guilds. (#1291) - A debug warning to catch deprecated perms v1 usage until v2 perms are implemented. (#1301)
- A new
filesparameter toPageobject. (#1300) - A
disable_all_itemsandenable_all_itemsmethods toViewobject. (#1199 & #1319) - New
is_nsfwattribute to voice channels. (#1317) - Support for Permissions v2. (#1328)
- Allow using Enum to specify option choices. (#1292)
- The
fileandfilesparameters toInteractionResponse.edit_message(). (#1340) - A
BridgeExtContext.delete()method. (#1348) - Forum channels support. (#1249)
- Implemented
Interaction.to_dict. (#1274) - Support event covers for audit logs. (#1355)
- Removed implicit defer call in
View. (#1260) Optionclass and usage were rewritten. (#1251)descriptionargument ofPageGroupis now optional. (#1330)- Allow
Modal.childrento be set on initialization. (#1311) - Renamed
delete_exitingtodelete_existing(typo). (#1336)
- Fix
PartialMessage.edit()settingviewasNonewhenviewkwarg is not passed. (#1256) - Fix channel parsing in slash command invocations. (#1257)
- Make the channel
positionattribute optional. (#1257) - Fix
PaginatorMenuto use interaction routes for updates. (#1267) - Fix
PartialMessage.edit()behavior whencontentisNone. (#1268) - Fix
Paginator.add_menu()andPaginator.add_default_buttons()passingcustom_idtoPaginatorMenu. (#1270) - Fix
process_application_commandscommand not found fallback. (#1262) - Fix interaction response race condition. (#1039)
- Remove voice client when the bot disconnects. (#1273)
- Fix conversion exception in
ext.bridge. (#1250) Context.mereturns ClientUser when guilds intent is absent. (#1286)- Updated
Message.edittype-hinting overload and removed resulting redundant overloads. (#1299) - Improved validation regex for command names & options. (#1309)
- Correct
Guild.fetch_members()type-hints. (#1323) - Multiple fixes and enhancements for
PageGrouphandling. (#1350) - Make
TextChannel._get_channelasync. (#1358)
2.0.0-beta.7 - 2022-04-09
- Fix py3.10 UnionType checks issue. (#1240)