Skip to content

Latest commit

 

History

History
750 lines (653 loc) · 39.1 KB

CHANGELOG.md

File metadata and controls

750 lines (653 loc) · 39.1 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 possibility to start bot via async context manager. (#1801)
  • Added new parameters (author, footer, image, thumbnail) to discord.Embed. (#1996)
  • Added new 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 new application_auto_moderation_rule_create_badge to ApplicationFlags. (#1992)
  • Added sync_start argument to VoiceClient.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 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 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 and unicode_emoji to Guild.create_role. (#2086)
  • Added cooldown and max_concurrency to SlashCommandGroup. (#2091)
  • Added new embedded activities, Gartic Phone and Jamspace. (#2102)
  • Added bridge.Context as a shortcut to Union of subclasses. (#2106)
  • Added Annotated forms support for type-hinting slash command options. (#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)

Changed

  • Changed default for all name_localizations & 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 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 return None 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 and help_command arguments properly. (#2099)
  • Changed the support from orjson to msgspec in the codebase. (#2170)

Removed

  • Removed @client.once() in favour of @client.listen(once=True). (#1957)
  • Removed view.message being set when the view was sent by interaction.response.send_message. (#2036)
  • 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)
  • 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, 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 having Bridge Commands. (#2048)
  • Fixed the Slash Command synchronization method individual. (#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 type-hinting of values argument of basic_autocomplete to include type-hinting of 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 being None and consequently User.dm_channel also 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)

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)