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 possibility to start bot via async context manager. (#1801)
- Added new parameters (
author
,footer
,image
,thumbnail
) todiscord.Embed
. (#1996) - Added new 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_page
argument toPaginator.update()
. (#1983) - Added new
application_auto_moderation_rule_create_badge
toApplicationFlags
. (#1992) - Added
sync_start
argument toVoiceClient.start_recording()
. This adds silence to the start of audio recordings. (#1984) - Added
custom_message
to AutoModActionMetadata. (#2029) - Added support for voice messages. (#2016)
- Added the
data
attribute to all Raw Event payloads. (#2023) - Added and documented missing
AuditLogAction
enums. (#2030, #2171) - Added AutoMod-related models for
AuditLogDiff
enums. (#2030) - Added
Interaction.respond
andInteraction.edit
as shortcut responses. (#2026) - Added
view.parent
which is set when the view is sent byinteraction.response.send_message
. (#2036) - Added functions (
bridge.Bot.walk_bridge_commands
&BridgeCommandGroup.walk_commands
) to cycle through all bridge commands and their children/subcommands. (#1867) - Added support for usernames and modified multiple methods accordingly. (#2042)
- Added
icon
andunicode_emoji
toGuild.create_role
. (#2086) - Added
cooldown
andmax_concurrency
toSlashCommandGroup
. (#2091) - Added new embedded activities, Gartic Phone and Jamspace. (#2102)
- Added
bridge.Context
as a shortcut toUnion
of subclasses. (#2106) - Added Annotated forms support for type-hinting slash command options. (#2124)
- Added
suppress
andallowed_mentions
parameters toWebhook
andInteractionResponse
edit methods. (#2138) - Added
wait_finish
parameter toVoiceClient.play
for 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)
- Changed default for all
name_localizations
&description_localizations
attributes from beingNone
to beingMISSING
. (#1866) - Changed FFMPEG output 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.channel
to be received from the gateway, allowing it to beDMChannel
orGroupChannel
. (#2025) - Changed
DMChannel.recipients
to potentially beNone
. (#2025) - Changed the behavior to store
view.message
when receiving an Interaction for a component. (#2036) - Changed the fetching of attributes shared between text-based and Slash Commands in Bridge Commands to be dynamic. (#1867)
- Changed
discord.Embed
attributes (such as author, footer, etc.) now returnNone
when not set, and return their respective classes when set. (#2063) - Changed
default_avatar
behavior depending on the user's username migration status. (#2087) - Changed type-hinted
command_prefix
andhelp_command
arguments properly. (#2099) - Changed the support from
orjson
tomsgspec
in the codebase. (#2170)
- Removed
@client.once()
in favour of@client.listen(once=True)
. (#1957) - Removed
view.message
being set when the view was sent byinteraction.response.send_message
. (#2036) - Removed
Embed.Empty
in favour ofNone
, andEmbedProxy
in favour of individual classes. (#2063)
- Fixed
AttributeError
caused by #1957 when using listeners in cogs. (#1989) - Editing a webhook message if the thread is a forum post or if the thread is a private thread (#1981)
- Fixed
View.message
not being set when view is sent using webhooks, includingInteraction.followup.send
or when a message is edited. (#1997) - Fixed
None
being 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
TypeError
being raised when passingname
argument to bridge groups. (#2000) - Fixed
TypeError
inAutoModRule
. (#2029) - Fixed the functionality to override the default
on_application_command_error
behavior using listeners. (#2044) - Fixed unloading of cogs having Bridge Commands. (#2048)
- Fixed the Slash Command synchronization method
individual
. (#1925) - Fixed an issue that occurred when
webhooks_update
event payload channel ID wasNone
. (#2078) - Fixed major
TypeError
when anAuditLogEntry
has no user. (#2079) - Fixed
HTTPException
when trying to create a forum thread with files. (#2075) - Fixed
before_invoke
not being run forSlashCommandGroup
. (#2091) - Fixed
AttributeError
when accessing aSelect
object's values when it hasn't been interacted with. (#2104) - Fixed
before_invoke
being run twice for slash subcommands. (#2139) - Fixed
Guild._member_count
sometimes not being set. (#2145) - Fixed
Thread.applied_tags
not being updated. (#2146) - Fixed type-hinting of
author
property ofApplicationContext
to include type-hinting ofUser
orMember
. (#2148) - Fixed missing
delete_after
parameter in overload type-hinting forWebhook.send()
. (#2156) - Fixed
ScheduledEvent.creator_id
returningstr
instead ofint
. (#2162) - Fixed
_bytes_to_base64_data
not defined. (#2185) - Fixed type-hinting of
values
argument ofbasic_autocomplete
to include type-hinting ofIterable[OptionChoice]
. (#2164) - 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.recipient
beingNone
and consequentlyUser.dm_channel
also beingNone
. (#2219) - Fixed ffmpeg being terminated prematurely when piping audio stream. (#2240)
- Fixed tasks looping infinitely when
tzinfo
is neitherNone
nor UTC. (#2196)
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
reason
being 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_spam
trigger type. (#1809) - Added missing
image
parameter toGuild.create_scheduled_event()
method. (#1831) - New
ApplicationRoleConnectionMetadata
class for application role connection metadata, along with thefetch_role_connection_metadata_records
andupdate_role_connection_metadata_records
methods 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
EmbeddedActivity
values. (#1859) - Added new
suppress_notifications
toMessageFlags
. (#1912) - Added GIF sticker format type to the
StickerFormatType
enum. (#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
EmbeddedActivity
values to update accordingly with the new activities. (#1859) - Advanced version info is now stored as a dict in
version_info.advanced
instead of attributes on theversion_info
object. (#1920) - The
version_info.release_level
attribute has been reverted to its previous name,releaselevel
. (#1920)
- Fixed bugs in
Page.update_files
where file objects stored in memory were causing anAttributeError
, andio.BytesIO
files didn't send properly more than once. (#1869 & #1881) - Fixed bridge groups missing the
parent
attribute. (#1823) - Fixed issues with creating auto moderation rules. (#1822)
2.3.3 - 2023-02-10
- Fixed an unhandled
KeyError
exception when receiving GIF stickers, causing crashes. (#1915)
2.3.2 - 2022-12-03
- Fixed another
AttributeError
relating to the newbridge_commands
attribute onext.bridge.Bot
. (#1815) - Fixed an
AttributeError
in select relating to the select type. (#1814) - Fixed
Thread.applied_tags
always returning an empty list. (#1817)
2.3.1 - 2022-11-27
- Fixed
AttributeError
relating to the newbridge_commands
attribute 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_sent
andis_pinned
. (#1636) - Added
bridge_commands
attribute toext.bridge.Bot
for access to bridge command objects. (#1787) - Updated
Guild.features
to 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
suppress
kwarg 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_THREADS
due to paywall limitation removal. (#1789)
2.2.2 - 2022-10-05
- Fixed
parent
attribute 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_id
attribute. (#1672)
- Fixed a
TypeError
inban()
methods related to the newdelete_message_seconds
parameter. (#1666) - Fixed broken
cog
andparent
attributes on commands in cogs. (#1662) - Fixed
SlashCommand.mention
for subcommands. (#1672)
2.2.0 - 2022-10-02
- New Guild Feature
INVITES_DISABLED
. (#1613) suppress
kwarg toMessageable.send()
. (#1587)proxy
andproxy_auth
params to many Webhook-related methods. (#1655)delete_message_seconds
parameter 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_mentions
andraw_channel_mentions
functions indiscord.utils
. (#1658) - New methods
original_response
,edit_original_response
&delete_original_response
forInteraction
objects. (#1609)
- The
delete_message_days
parameter in ban methods is now deprecated. Please usedelete_message_seconds
instead. (#1557) - The
original_message
,edit_original_message
&delete_original_message
methods forInteraction
are now deprecated. Please use the respectiveoriginal_response
,edit_original_response
&delete_original_response
methods instead. (#1609)
- Various fixes to ext.bridge groups. (#1633 & #1631)
- Fix
VOICE_SERVER_UPDATE
error. (#1624) - Removed unnecessary instance check in autocomplete. (#1643)
- Interaction responses are now passed the respective
proxy
andproxy_auth
params 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_timeout
kwarg in theView
constructor. (#1492) - New
mention
property forSlashCommand
objects, allowing a shortcut for the new command markdown syntax. (#1523) - An
app_commands_badge
value onApplicationFlags
. (#1535 and #1553) - A new
fetch_application
method in theClient
object. (#1536) - New
on_check_failure
event method for theView
class. (#799) - A
set_mfa_required
method toGuild
. (#1552) - Support for command groups with bridge commands. (#1496)
- Support for
Attachment
type options for bridge commands. (#1496) is_app
property forBridgeContext
to better differentiate context types. (#1496)- Support for localization on bridge commands. (#1496)
- A
filter_params
helper function indiscord.utils
. (#1496) - Support for
InteractionMessage
via themessage
property ofView
. (#1492)
- Use
slash_variant
andext_variant
attributes instead ofget_application_command()
andget_ext_command()
methods onBridgeCommand
. (#1496) - Set
store
kwarg default toFalse
in load_extension(s) method. (#1520) commands.has_permissions()
check now returnsTrue
in DM channels. (#1577)
- Fix
VoiceChannel
/CategoryChannel
data 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
Option
with typestr
raising AttributeError whenmin_length
ormax_length
kwargs are passed. (#1527) - Fix
load_extensions
parameters not being passed through correctly. (#1537) - Fix
SlashCommandGroup
descriptions 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
_channels
attributes to work with NoneType positions. (#1530) - Make
SelectOption.emoji
a property. (#1550) - Improve sticker creation by checking for minimum and maximum length on
name
anddescription
. (#1546) - Fix threads created with a base message being set to the wrong
message_reference
. (#1551) - Avoid unnecessary calls to
sync_commands
during runtime. (#1563) - Fix bug in
Modal.on_timeout()
by usingcustom_id
to create timeout task. (#1562) - Respect limit argument in
Guild.bans()
. (#1573) - Fix
before
argument inon_scheduled_event_update
event always set toNone
by converting ID toint
. (#1580) - Fix
__eq__
methodApplicationCommand
accidentally comparing to self. (#1585) - Apply
cog_check
method toApplicationCommand
invocations. (#1575) - Fix
Interaction.edit_original_message()
usingConnectionState
instead 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
news
property onTextChannel
. (#1370) - New
invisible
kwarg todefer()
method. (#1379) - Support for audit log event type 121
APPLICATION_COMMAND_PERMISSION_UPDATE
. (#1424) - New
ForumChannelConverter
. (#1440) - A shortcut
jump_url
property to users. (#1444) - Ability for webhooks to create forum posts. (#1405)
- New
message
property toView
(#1446) - Support for
error
,before_invoke
, andafter_invoke
handlers onBridgeCommand
. (#1411) - New
thread
property toMessage
. (#1447) - A
starting_message
property toThread
. (#1447) - An
app_permissions
property toInteraction
andApplicationContext
. (#1460) - Support for loading folders in
load_extension
, and a new helper functionload_extensions
. (#1423) - Support for AutoMod (#1316)
- Support for
min_length
andmax_length
kwargs 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.region
attribute (Deprecated on API, VoiceChannel.rtc_region should be used instead). (#1429)
- Change
guild_only
todm_permission
in application commandto_dict
method. (#1368) - Fix
repr(ScheduledEventLocation)
raising TypeError. (#1369) - Fix
repr(TextChannel)
raising AttributeError. (#1370) - Fix application command validation. (#1372)
- Fix scheduled event
cover
property raising AttributeError. (#1381) - Fix
SlashCommandGroup
treating optional arguments as required. (#1386) - Fix
remove_application_command
not always removing commands. (#1391) - Fix busy-loop in
DecodeManager
when the decode queue is empty, causing 100% CPU consumption. (#1395) - Fix incorrect activities and permissions on
Interaction
andOption
objects. (#1365) - Converted PartialMember
deaf
andmute
from str annotation (incorrect) to bool annotation. (#1424) - Use
PUT
instead ofPOST
inHTTPClient.join_thread
. (#1426) - Fix enum options not setting
input_type
to a SlashCommandOptionType. (#1428) - Fixed TypeError when using thread options. (#1427)
- Allow voice channels in PartialMessage. (#1441)
- Fixed
AuditLogAction.target_type
for application command permission updates. (#1445) - Fix bridge commands to ignore the ephemeral kwarg. (#1453)
- Update
thread.members
onthread.fetch_members
. (#1464) - Fix the error when Discord doesn't send the
app_permissions
data inInteraction
. (#1467) - Fix AttributeError when voice client
play()
function isn't completed yet. (#1360)
2.0.0-rc.1 - 2022-05-17
- A
delete_after
kwarg toPaginator.send
. (#1245) - New
reason
kwarg toThread.delete_messages
. (#1253) - A new
jump_url
property to channel and thread objects. (#1254 & #1259) - New
Paginator.edit()
method. (#1258) - An
EmbedField
object. (#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_url
property. (#1282) - ext.pages now supports ext.bridge. (#1288)
- Implement
None
check for check_guilds. (#1291) - A debug warning to catch deprecated perms v1 usage until v2 perms are implemented. (#1301)
- A new
files
parameter toPage
object. (#1300) - A
disable_all_items
andenable_all_items
methods toView
object. (#1199 & #1319) - New
is_nsfw
attribute to voice channels. (#1317) - Support for Permissions v2. (#1328)
- Allow using Enum to specify option choices. (#1292)
- The
file
andfiles
parameters 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) Option
class and usage were rewritten. (#1251)description
argument ofPageGroup
is now optional. (#1330)- Allow
Modal.children
to be set on initialization. (#1311) - Renamed
delete_exiting
todelete_existing
(typo). (#1336)
- Fix
PartialMessage.edit()
settingview
asNone
whenview
kwarg is not passed. (#1256) - Fix channel parsing in slash command invocations. (#1257)
- Make the channel
position
attribute optional. (#1257) - Fix
PaginatorMenu
to use interaction routes for updates. (#1267) - Fix
PartialMessage.edit()
behavior whencontent
isNone
. (#1268) - Fix
Paginator.add_menu()
andPaginator.add_default_buttons()
passingcustom_id
toPaginatorMenu
. (#1270) - Fix
process_application_commands
command 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.me
returns ClientUser when guilds intent is absent. (#1286)- Updated
Message.edit
type-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
PageGroup
handling. (#1350) - Make
TextChannel._get_channel
async. (#1358)
2.0.0-beta.7 - 2022-04-09
- Fix py3.10 UnionType checks issue. (#1240)