Skip to content

Latest commit

 

History

History
876 lines (770 loc) · 46.4 KB

CHANGELOG.md

File metadata and controls

876 lines (770 loc) · 46.4 KB

Changelog

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

  • Added banner parameter to ClientUser.edit. (#2396)
  • Added user argument to Paginator.edit. (#2390)
  • Added bridge_option decorator. Required for bridge.Bot in 2.7. (#2417)
  • Added Guild.search_members. (#2418)
  • Added bulk banning up to 200 users through Guild.bulk_ban. (#2421)
  • Added member data to the raw_reaction_remove event. (#2412)
  • Added stacklevel param to utils.warn_deprecated and utils.deprecated. (#2450)

Fixed

  • Fixed the type-hinting of Member.move_to and Member.edit to reflect actual behavior. (#2386)
  • Fixed a deprecation warning from being displayed when running python -m discord -v by replacing the deprecated module. (#2392)
  • Fixed Paginator.edit to no longer set user to the bot. (#2390)
  • Fixed NameError in some instances of Interaction. (#2402)
  • Fixed the type-hinting of ScheduledEvent.subscribers to reflect actual behavior. (#2400)
  • Fixed ScheduledEvent.subscribers behavior with limit=None. (#2407)
  • Fixed invalid data being passed to Interaction._guild in certain cases. (#2411)
  • Fixed option typehints being ignored when using parameter_name. (#2417)
  • Fixed parameter embed=None causing AttributeError on PartialMessage.edit. (#2446)
  • Fixed paginator to revert state if a page update callback fails. (#2448)

Changed

  • Changed the type of Guild.bitrate_limit to int. (#2387)
  • HTTP requests that fail with a 503 status are now re-tried. (#2395)
  • option decorator now accepts input_type. (#2417)
  • Option may be used instead of BridgeOption until 2.7. (#2417)
  • Guild.query_members now accepts limit=None to retrieve all members. (#2419)

Removed

  • Removed the delete_message_days parameter from ban methods. Please use delete_message_seconds instead. (#2421)

2.5.0 - 2024-03-02

Added

  • Added method to start bot via async context manager. (#1801)
  • Added parameters author, footer, image and thumbnail to discord.Embed initializer. (#1996)
  • Added events on_bridge_command, on_bridge_command_completion, and on_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 to Paginator.update(). (#1983)
  • Added application flag application_auto_moderation_rule_create_badge. (#1992)
  • Added support for recording silence via new sync_start argument in VoiceClient.start_recording(). (#1984)
  • Added custom_message to AutoModActionMetadata. (#2029)
  • Added support for voice messages. (#2016)
  • Added 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 and Interaction.edit as shortcut responses. (#2026)
  • Added view.parent which is set when the view is sent by interaction.response.send_message. (#2036)
  • Added methods bridge.Bot.walk_bridge_commands and BridgeCommandGroup.walk_commands. (#1867)
  • Added support for usernames and modified multiple methods accordingly. (#2042)
  • Added icon and unicode_emoji arguments to Guild.create_role. (#2086)
  • Added cooldown and max_concurrency attributes to SlashCommandGroup. (#2091)
  • Added embedded activities Gartic Phone and Jamspace. (#2102)
  • Added bridge.Context type as a Union of subclasses. (#2106)
  • Added support for type-hinting slash command options with typing.Annotated. (#2124)
  • Added suppress and allowed_mentions parameters to Webhook and InteractionResponse edit methods. (#2138)
  • Added wait_finish parameter to VoiceClient.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)
  • Added ForumChannel.default_reaction_emoji attribute. (#2178)
  • Added default_reaction_emoji parameter to Guild.create_forum_channel and ForumChannel.edit methods. (#2178)
  • Added applied_tags parameter to Webhook.send method. (#2322)
  • Added User.avatar_decoration. (#2131)
  • Added support for guild onboarding related features. (#2127)
  • Added support for monetization related objects and events. (#2273)
  • Added AttachmentFlags and attachment attributes expires_at, issued_at and hm. (#2342)
  • Added invitable and slowmode_delay to Thread creation methods. (#2350)
  • Added support for voice channel statuses. (#2368)
  • Added enforce_nonce parameter for message sending. (#2370)
  • Added audit log support for voice channel status. (#2373)

Changed

  • Changed default for all name_localizations and description_localizations attributes from being None to being MISSING. (#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 be DMChannel or GroupChannel. (#2025)
  • Changed DMChannel.recipients to potentially be None. (#2025)
  • Changed the behavior to store view.message when receiving a component interaction, while also changing view.message not to be set when sending view through InteractionResponse.send_message. (#2036)
  • Changed the fetching of attributes shared between text-based and Slash Commands in Bridge Commands to be dynamic. (#1867)
  • discord.Embed attributes (such as author, footer, etc.) now return instances of their respective classes when set and None otherwise. (#2063)
  • Changed default_avatar behavior to depend on the user's username migration status. (#2087)
  • Changed type hints of command_prefix and help_command arguments to be accurate. (#2099)
  • Replaced orjson features with msgspec in the codebase. (#2170)
  • BridgeOption must now be used for arguments in bridge commands. (#2252)

Removed

  • Removed Client.once in favour of once argument in Client.listen. (#1957)
  • Removed Embed.Empty in favour of None, and EmbedProxy in favour of individual classes. (#2063)

Fixed

  • Fixed AttributeError caused by #1957 when using listeners in cogs. (#1989)
  • Fixed an issue in editing webhook messages in forum posts and private threads. (#1981).
  • Fixed View.message not being set when view is sent using webhooks, including Interaction.followup.send or when a message is edited. (#1997)
  • Fixed None being handled incorrectly for avatar in ClientUser.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 passing name argument to bridge groups. (#2000)
  • Fixed TypeError in AutoModRule. (#2029)
  • Fixed the functionality to override the default on_application_command_error behavior using listeners. (#2044)
  • Fixed unloading of cogs with bridge commands. (#2048)
  • Fixed the individual slash command synchronization method. (#1925)
  • Fixed an issue that occurred when webhooks_update event payload channel ID was None. (#2078)
  • Fixed major TypeError when an AuditLogEntry has no user. (#2079)
  • Fixed HTTPException when trying to create a forum thread with files. (#2075)
  • Fixed before_invoke not being run for SlashCommandGroup. (#2091)
  • Fixed AttributeError when accessing a Select 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 of ApplicationContext to include type-hinting of User or Member. (#2148)
  • Fixed missing delete_after parameter in overload type-hinting for Webhook.send(). (#2156)
  • Fixed ScheduledEvent.creator_id returning str instead of int. (#2162)
  • Fixed _bytes_to_base64_data not defined. (#2185)
  • Fixed inaccurate Union type hint of values argument of basic_autocomplete to include Iterable[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 and User.dm_channel being None. (#2219)
  • Fixed ffmpeg being terminated prematurely when piping audio stream. (#2240)
  • Fixed tasks looping infinitely when tzinfo is neither None nor UTC. (#2196)
  • Fixed AttributeError when running permission checks without the bot scope. (#2113)
  • Fixed Option not working on bridge commands because ext.commands.Command doesn't recognize them. (#2256)
  • Fixed offset-aware tasks causing TypeError when being prepared. (#2271)
  • Fixed AttributeError when serializing commands with Annotated type hints. (#2243)
  • Fixed Intents.all() returning the wrong value. (#2257)
  • Fixed AuditLogIterator not respecting the after parameter. (#2295)
  • Fixed AttributeError when failing to establish initial websocket connection. (#2301)
  • Fixed AttributeError caused by command.cog being MISSING. (#2303)
  • Fixed self.use_default_buttons being assumed truthy by Paginator.update. (#2319)
  • Fixed AttributeError when comparing application commands with non-command objects. (#2299)
  • Fixed AttributeError when 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 BridgeContext type hints raising an exception for unsupported option type. (#2337)
  • Fixed TypeError due to (Sync)WebhookMessage._thread_id being set to None. (#2343)
  • Fixed AttributeError due to entitlements not being included in Interaction.__slots__. (#2345)
  • Fixed Thread.me being out of date and added the thread owner to Thread.members on creation. (#1296)
  • Fixed keyword argument wildcard of bridge.has_permissions having the wrong type hint. (#2364)
  • Fixed enum to support stringified annotations. (#2367)

2.4.1 - 2023-03-20

Changed

  • Updated the values of the Color.embed_background() classmethod to correspond with new theme colors in the app. (#1931)

Fixed

  • 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 in guild.create_auto_moderation_rule. (#1960)

2.4.0 - 2023-02-10

Added

  • Added new AutoMod trigger metadata properties regex_patterns, allow_list, and mention_total_limit; and added the mention_spam trigger type. (#1809)
  • Added missing image parameter to Guild.create_scheduled_event() method. (#1831)
  • New ApplicationRoleConnectionMetadata class for application role connection metadata, along with the fetch_role_connection_metadata_records and update_role_connection_metadata_records methods in Client. (#1791)
  • Added new message types, role_subscription_purchase, interaction_premium_upsell, stage_start, stage_end, stage_speaker, stage_raise_hand, stage_topic, and guild_application_premium_subscription. (#1852)
  • Added new EmbeddedActivity values. (#1859)
  • Added new suppress_notifications to MessageFlags. (#1912)
  • Added GIF sticker format type to the StickerFormatType enum. (#1915)
  • Added new raw events: raw_member_remove, raw_thread_update, and raw_thread_member_remove. (#1880)
  • Improved support for setting channel types & added new channel types for discord.Option. (#1883)

Changed

  • 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 the version_info object. (#1920)
  • The version_info.release_level attribute has been reverted to its previous name, releaselevel. (#1920)

Fixed

  • Fixed bugs in Page.update_files where file objects stored in memory were causing an AttributeError, and io.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

  • Fixed another AttributeError relating to the new bridge_commands attribute on ext.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

  • Fixed AttributeError relating to the new bridge_commands attribute on ext.bridge.Bot. (#1802)

2.3.0 - 2022-11-23

Added

  • New brief Attribute to BridgeSlashCommand. (#1676)
  • Python 3.11 support. (#1680)
  • New select types user, role, mentionable, and channel - 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 and is_pinned. (#1636)
  • Added bridge_commands attribute to ext.bridge.Bot for access to bridge command objects. (#1787)
  • Updated Guild.features to include new and previously missing features. (#1788)

Fixed

  • Fix bridge.has_permissions. (#1695)
  • Fix audit log overwrite type always resulting in None. (#1716)
  • Fixed error when using suppress kwarg in send(). (#1719 & #1723)

Changed

  • get_application_command() type kwarg now defaults to ApplicationCommand, so all command types can be retrieved by default. (#1678)
  • get_application_command() now supports retrieving subcommands and subcommand groups. (#1678)

Removed

  • Removed the guild feature PRIVATE_THREADS due to paywall limitation removal. (#1789)

2.2.2 - 2022-10-05

Fixed

  • 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

Added

  • New SlashCommand.qualified_id attribute. (#1672)

Fixed

  • Fixed a TypeError in ban() methods related to the new delete_message_seconds parameter. (#1666)
  • Fixed broken cog and parent attributes on commands in cogs. (#1662)
  • Fixed SlashCommand.mention for subcommands. (#1672)

2.2.0 - 2022-10-02

Added

  • New Guild Feature INVITES_DISABLED. (#1613)
  • suppress kwarg to Messageable.send(). (#1587)
  • proxy and proxy_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 and raw_channel_mentions functions in discord.utils. (#1658)
  • New methods original_response, edit_original_response & delete_original_response for Interaction objects. (#1609)

Deprecated

  • The delete_message_days parameter in ban methods is now deprecated. Please use delete_message_seconds instead. (#1557)
  • The original_message, edit_original_message & delete_original_message methods for Interaction are now deprecated. Please use the respective original_response, edit_original_response & delete_original_response methods instead. (#1609)

Fixed

  • 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 and proxy_auth params as defined in Client. (#1655)

2.1.3 - 2022-09-06

Fixed

  • Fix TypeError in process_application_commands. (#1622)

2.1.2 - 2022-09-06

Fixed

  • Fix subcommands having MISSING cog attribute. (#1594 & #1605)

2.1.1 - 2022-08-25

Fixed

  • Bridge command detection in cogs. (#1592)

2.1.0 - 2022-08-25

Added

  • Support for add, sub, union, intersect, and inverse operations on classes inheriting from BaseFlags. (#1486)
  • A disable_on_timeout kwarg in the View constructor. (#1492)
  • New mention property for SlashCommand objects, allowing a shortcut for the new command markdown syntax. (#1523)
  • An app_commands_badge value on ApplicationFlags. (#1535 and #1553)
  • A new fetch_application method in the Client object. (#1536)
  • New on_check_failure event method for the View class. (#799)
  • A set_mfa_required method to Guild. (#1552)
  • Support for command groups with bridge commands. (#1496)
  • Support for Attachment type options for bridge commands. (#1496)
  • is_app property for BridgeContext to better differentiate context types. (#1496)
  • Support for localization on bridge commands. (#1496)
  • A filter_params helper function in discord.utils. (#1496)
  • Support for InteractionMessage via the message property of View. (#1492)

Changed

  • Use slash_variant and ext_variant attributes instead of get_application_command() and get_ext_command() methods on BridgeCommand. (#1496)
  • Set store kwarg default to False in load_extension(s) method. (#1520)
  • commands.has_permissions() check now returns True in DM channels. (#1577)

Fixed

  • Fix VoiceChannel/CategoryChannel data being invalidated on Option._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 type str raising AttributeError when min_length or max_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 and description. (#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 using custom_id to create timeout task. (#1562)
  • Respect limit argument in Guild.bans(). (#1573)
  • Fix before argument in on_scheduled_event_update event always set to None by converting ID to int. (#1580)
  • Fix __eq__ method ApplicationCommand accidentally comparing to self. (#1585)
  • Apply cog_check method to ApplicationCommand invocations. (#1575)
  • Fix Interaction.edit_original_message() using ConnectionState instead of InteractionMessageState. (#1565)
  • Fix required parameters validation error. (#1589)

Security

  • Improved fix for application-based bots without the bot scope (#1584)

2.0.1 - 2022-08-16

Security

  • Fix for application-based bots without the bot scope (#1568)

2.0.0 - 2022-07-08

Added

  • New news property on TextChannel. (#1370)
  • New invisible kwarg to defer() 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 to View (#1446)
  • Support for error, before_invoke, and after_invoke handlers on BridgeCommand. (#1411)
  • New thread property to Message. (#1447)
  • A starting_message property to Thread. (#1447)
  • An app_permissions property to Interaction and ApplicationContext. (#1460)
  • Support for loading folders in load_extension, and a new helper function load_extensions. (#1423)
  • Support for AutoMod (#1316)
  • Support for min_length and max_length kwargs in Option. (#1463)
  • Native timeout support for Modal. (#1434)

Changed

  • 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)

Removed

  • Guild.region attribute (Deprecated on API, VoiceChannel.rtc_region should be used instead). (#1429)

Fixed

  • Change guild_only to dm_permission in application command to_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 and Option objects. (#1365)
  • Converted PartialMember deaf and mute from str annotation (incorrect) to bool annotation. (#1424)
  • Use PUT instead of POST in HTTPClient.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 on thread.fetch_members. (#1464)
  • Fix the error when Discord doesn't send the app_permissions data in Interaction. (#1467)
  • Fix AttributeError when voice client play() function isn't completed yet. (#1360)

2.0.0-rc.1 - 2022-05-17

Added

  • A delete_after kwarg to Paginator.send. (#1245)
  • New reason kwarg to Thread.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 to Page object. (#1300)
  • A disable_all_items and enable_all_items methods to View 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 and files parameters to InteractionResponse.edit_message(). (#1340)
  • A BridgeExtContext.delete() method. (#1348)
  • Forum channels support. (#1249)
  • Implemented Interaction.to_dict. (#1274)
  • Support event covers for audit logs. (#1355)

Changed

  • Removed implicit defer call in View. (#1260)
  • Option class and usage were rewritten. (#1251)
  • description argument of PageGroup is now optional. (#1330)
  • Allow Modal.children to be set on initialization. (#1311)
  • Renamed delete_exiting to delete_existing (typo). (#1336)

Fixed

  • Fix PartialMessage.edit() setting view as None when view 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 when content is None. (#1268)
  • Fix Paginator.add_menu() and Paginator.add_default_buttons() passing custom_id to PaginatorMenu. (#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

Fixed

  • Fix py3.10 UnionType checks issue. (#1240)