Browse Source

Fixes and improvements for v1.3 documentation

* Add missing versionadded strings for v1.3
* Add missing versionchanged string for Message.edit
* Consistently use versionadded for attributes
* Consistently use versionchanged for parameters
* Use versionchanged for Bot.is_owner
* Fix references in v1.3 changelog
* Improve grammar in v1.3 changelog
pull/2532/head
Harmon 5 years ago
committed by Danny
parent
commit
6f9793fe5e
  1. 6
      discord/activity.py
  2. 35
      discord/appinfo.py
  3. 15
      discord/channel.py
  4. 5
      discord/emoji.py
  5. 7
      discord/ext/commands/bot.py
  6. 2
      discord/flags.py
  7. 2
      discord/guild.py
  8. 6
      discord/message.py
  9. 11
      discord/raw_models.py
  10. 4
      discord/team.py
  11. 3
      discord/user.py
  12. 3
      discord/webhook.py
  13. 43
      docs/api.rst
  14. 8
      docs/whats_new.rst

6
discord/activity.py

@ -414,12 +414,18 @@ class Streaming(BaseActivity):
----------- -----------
platform: :class:`str` platform: :class:`str`
Where the user is streaming from (ie. YouTube, Twitch). Where the user is streaming from (ie. YouTube, Twitch).
.. versionadded:: 1.3
name: Optional[:class:`str`] name: Optional[:class:`str`]
The stream's name. The stream's name.
details: Optional[:class:`str`] details: Optional[:class:`str`]
Same as :attr:`name` Same as :attr:`name`
game: Optional[:class:`str`] game: Optional[:class:`str`]
The game being streamed. The game being streamed.
.. versionadded:: 1.3
url: :class:`str` url: :class:`str`
The stream's URL. The stream's URL.
assets: :class:`dict` assets: :class:`dict`

35
discord/appinfo.py

@ -44,6 +44,9 @@ class AppInfo:
The application owner. The application owner.
team: Optional[:class:`Team`] team: Optional[:class:`Team`]
The application's team. The application's team.
.. versionadded:: 1.3
icon: Optional[:class:`str`] icon: Optional[:class:`str`]
The icon hash, if it exists. The icon hash, if it exists.
description: Optional[:class:`str`] description: Optional[:class:`str`]
@ -59,20 +62,37 @@ class AppInfo:
summary: :class:`str` summary: :class:`str`
If this application is a game sold on Discord, If this application is a game sold on Discord,
this field will be the summary field for the store page of its primary SKU this field will be the summary field for the store page of its primary SKU
.. versionadded:: 1.3
verify_key: :class:`str` verify_key: :class:`str`
The base64 encoded key for the GameSDK's GetTicket The base64 encoded key for the GameSDK's GetTicket
.. versionadded:: 1.3
guild_id: Optional[:class:`int`] guild_id: Optional[:class:`int`]
If this application is a game sold on Discord, If this application is a game sold on Discord,
this field will be the guild to which it has been linked this field will be the guild to which it has been linked
.. versionadded:: 1.3
primary_sku_id: Optional[:class:`int`] primary_sku_id: Optional[:class:`int`]
If this application is a game sold on Discord, If this application is a game sold on Discord,
this field will be the id of the "Game SKU" that is created, if exists this field will be the id of the "Game SKU" that is created, if exists
.. versionadded:: 1.3
slug: Optional[:class:`str`] slug: Optional[:class:`str`]
If this application is a game sold on Discord, If this application is a game sold on Discord,
this field will be the URL slug that links to the store page this field will be the URL slug that links to the store page
.. versionadded:: 1.3
cover_image: Optional[:class:`str`] cover_image: Optional[:class:`str`]
If this application is a game sold on Discord, If this application is a game sold on Discord,
this field will be the hash of the image on store embeds this field will be the hash of the image on store embeds
.. versionadded:: 1.3
""" """
__slots__ = ('_state', 'description', 'id', 'name', 'rpc_origins', __slots__ = ('_state', 'description', 'id', 'name', 'rpc_origins',
'bot_public', 'bot_require_code_grant', 'owner', 'icon', 'bot_public', 'bot_require_code_grant', 'owner', 'icon',
@ -109,16 +129,25 @@ class AppInfo:
@property @property
def icon_url(self): def icon_url(self):
""":class:`.Asset`: Retrieves the application's icon asset.""" """:class:`.Asset`: Retrieves the application's icon asset.
.. versionadded:: 1.3
"""
return Asset._from_icon(self._state, self, 'app') return Asset._from_icon(self._state, self, 'app')
@property @property
def cover_image_url(self): def cover_image_url(self):
""":class:`.Asset`: Retrieves the cover image on a store embed.""" """:class:`.Asset`: Retrieves the cover image on a store embed.
.. versionadded:: 1.3
"""
return Asset._from_cover_image(self._state, self) return Asset._from_cover_image(self._state, self)
@property @property
def guild(self): def guild(self):
"""Optional[:class:`Guild`]: If this application is a game sold on Discord, """Optional[:class:`Guild`]: If this application is a game sold on Discord,
this field will be the guild to which it has been linked""" this field will be the guild to which it has been linked
.. versionadded:: 1.3
"""
return self._state._get_guild(int(self.guild_id)) return self._state._get_guild(int(self.guild_id))

15
discord/channel.py

@ -194,6 +194,9 @@ class TextChannel(discord.abc.Messageable, discord.abc.GuildChannel, Hashable):
You must have the :attr:`~Permissions.manage_channels` permission to You must have the :attr:`~Permissions.manage_channels` permission to
use this. use this.
.. versionchanged:: 1.3
The ``overwrites`` keyword-only parameter was added.
Parameters Parameters
---------- ----------
name: :class:`str` name: :class:`str`
@ -219,8 +222,6 @@ class TextChannel(discord.abc.Messageable, discord.abc.GuildChannel, Hashable):
A :class:`dict` of target (either a role or a member) to A :class:`dict` of target (either a role or a member) to
:class:`PermissionOverwrite` to apply to the channel. :class:`PermissionOverwrite` to apply to the channel.
.. versionadded:: 1.3
Raises Raises
------ ------
InvalidArgument InvalidArgument
@ -644,6 +645,9 @@ class VoiceChannel(discord.abc.Connectable, discord.abc.GuildChannel, Hashable):
You must have the :attr:`~Permissions.manage_channels` permission to You must have the :attr:`~Permissions.manage_channels` permission to
use this. use this.
.. versionchanged:: 1.3
The ``overwrites`` keyword-only parameter was added.
Parameters Parameters
---------- ----------
name: :class:`str` name: :class:`str`
@ -666,8 +670,6 @@ class VoiceChannel(discord.abc.Connectable, discord.abc.GuildChannel, Hashable):
A :class:`dict` of target (either a role or a member) to A :class:`dict` of target (either a role or a member) to
:class:`PermissionOverwrite` to apply to the channel. :class:`PermissionOverwrite` to apply to the channel.
.. versionadded:: 1.3
Raises Raises
------ ------
InvalidArgument InvalidArgument
@ -762,6 +764,9 @@ class CategoryChannel(discord.abc.GuildChannel, Hashable):
You must have the :attr:`~Permissions.manage_channels` permission to You must have the :attr:`~Permissions.manage_channels` permission to
use this. use this.
.. versionchanged:: 1.3
The ``overwrites`` keyword-only parameter was added.
Parameters Parameters
---------- ----------
name: :class:`str` name: :class:`str`
@ -776,8 +781,6 @@ class CategoryChannel(discord.abc.GuildChannel, Hashable):
A :class:`dict` of target (either a role or a member) to A :class:`dict` of target (either a role or a member) to
:class:`PermissionOverwrite` to apply to the channel. :class:`PermissionOverwrite` to apply to the channel.
.. versionadded:: 1.3
Raises Raises
------ ------
InvalidArgument InvalidArgument

5
discord/emoji.py

@ -154,7 +154,10 @@ class Emoji(_EmojiTag):
return self._state._get_guild(self.guild_id) return self._state._get_guild(self.guild_id)
def is_usable(self): def is_usable(self):
""":class:`bool`: Whether the bot can use this emoji.""" """:class:`bool`: Whether the bot can use this emoji.
.. versionadded:: 1.3
"""
if not self.available: if not self.available:
return False return False
if not self._roles: if not self._roles:

7
discord/ext/commands/bot.py

@ -293,8 +293,9 @@ class BotBase(GroupMixin):
If an :attr:`owner_id` is not set, it is fetched automatically If an :attr:`owner_id` is not set, it is fetched automatically
through the use of :meth:`~.Bot.application_info`. through the use of :meth:`~.Bot.application_info`.
The function also checks if the application is team-owned if .. versionchanged:: 1.3
:attr:`owner_ids` is not set. The function also checks if the application is team-owned if
:attr:`owner_ids` is not set.
Parameters Parameters
----------- -----------
@ -993,6 +994,8 @@ class Bot(BotBase, discord.Client):
fetched automatically using :meth:`~.Bot.application_info`. fetched automatically using :meth:`~.Bot.application_info`.
For performance reasons it is recommended to use a :class:`set` For performance reasons it is recommended to use a :class:`set`
for the collection. You cannot set both `owner_id` and `owner_ids`. for the collection. You cannot set both `owner_id` and `owner_ids`.
.. versionadded:: 1.3
""" """
pass pass

2
discord/flags.py

@ -187,6 +187,8 @@ class MessageFlags(BaseFlags):
Returns an iterator of ``(name, value)`` pairs. This allows it Returns an iterator of ``(name, value)`` pairs. This allows it
to be, for example, constructed as a dict or a list of pairs. to be, for example, constructed as a dict or a list of pairs.
.. versionadded:: 1.3
Attributes Attributes
----------- -----------
value: :class:`int` value: :class:`int`

2
discord/guild.py

@ -146,6 +146,8 @@ class Guild(Hashable):
results to a specific language. results to a specific language.
discovery_splash: :class:`str` discovery_splash: :class:`str`
The guild's discovery splash. The guild's discovery splash.
.. versionadded:: 1.3
""" """
__slots__ = ('afk_timeout', 'afk_channel', '_members', '_channels', 'icon', __slots__ = ('afk_timeout', 'afk_channel', '_members', '_channels', 'icon',

6
discord/message.py

@ -269,6 +269,9 @@ class Message:
Specifies if the message is currently pinned. Specifies if the message is currently pinned.
flags: :class:`MessageFlags` flags: :class:`MessageFlags`
Extra features of the message. Extra features of the message.
.. versionadded:: 1.3
reactions : List[:class:`Reaction`] reactions : List[:class:`Reaction`]
Reactions to a message. Reactions can be either custom emoji or standard unicode emoji. Reactions to a message. Reactions can be either custom emoji or standard unicode emoji.
activity: Optional[:class:`dict`] activity: Optional[:class:`dict`]
@ -764,6 +767,9 @@ class Message:
The content must be able to be transformed into a string via ``str(content)``. The content must be able to be transformed into a string via ``str(content)``.
.. versionchanged:: 1.3
The ``suppress`` keyword-only parameter was added.
Parameters Parameters
----------- -----------
content: Optional[:class:`str`] content: Optional[:class:`str`]

11
discord/raw_models.py

@ -85,15 +85,15 @@ class RawBulkMessageDeleteEvent(_RawReprMixin):
class RawMessageUpdateEvent(_RawReprMixin): class RawMessageUpdateEvent(_RawReprMixin):
"""Represents the payload for a :func:`on_raw_message_edit` event. """Represents the payload for a :func:`on_raw_message_edit` event.
.. versionchanged:: 1.3
The ``channel_id`` attribute was added.
Attributes Attributes
----------- -----------
message_id: :class:`int` message_id: :class:`int`
The message ID that got updated. The message ID that got updated.
channel_id: :class:`int` channel_id: :class:`int`
The channel ID where the update took place. The channel ID where the update took place.
.. versionadded:: 1.3
data: :class:`dict` data: :class:`dict`
The raw data given by the `gateway <https://discordapp.com/developers/docs/topics/gateway#message-update>`_ The raw data given by the `gateway <https://discordapp.com/developers/docs/topics/gateway#message-update>`_
cached_message: Optional[:class:`Message`] cached_message: Optional[:class:`Message`]
@ -112,9 +112,6 @@ class RawReactionActionEvent(_RawReprMixin):
"""Represents the payload for a :func:`on_raw_reaction_add` or """Represents the payload for a :func:`on_raw_reaction_add` or
:func:`on_raw_reaction_remove` event. :func:`on_raw_reaction_remove` event.
.. versionchanged:: 1.3
The ``event_type`` attribute was added.
Attributes Attributes
----------- -----------
message_id: :class:`int` message_id: :class:`int`
@ -136,6 +133,8 @@ class RawReactionActionEvent(_RawReprMixin):
The event type that triggered this action. Can be The event type that triggered this action. Can be
``REACTION_ADD`` for reaction addition or ``REACTION_ADD`` for reaction addition or
``REACTION_REMOVE`` for reaction removal. ``REACTION_REMOVE`` for reaction removal.
.. versionadded:: 1.3
""" """
__slots__ = ('message_id', 'user_id', 'channel_id', 'guild_id', 'emoji', __slots__ = ('message_id', 'user_id', 'channel_id', 'guild_id', 'emoji',

4
discord/team.py

@ -49,6 +49,8 @@ class Team:
The team's owner ID. The team's owner ID.
members: List[:class:`TeamMember`] members: List[:class:`TeamMember`]
A list of the members in the team A list of the members in the team
.. versionadded:: 1.3
""" """
__slots__ = ('_state', 'id', 'name', 'icon', 'owner_id', 'members') __slots__ = ('_state', 'id', 'name', 'icon', 'owner_id', 'members')
@ -95,6 +97,8 @@ class TeamMember(BaseUser):
Returns the team member's name with discriminator. Returns the team member's name with discriminator.
.. versionadded:: 1.3
Attributes Attributes
------------- -------------
name: :class:`str` name: :class:`str`

3
discord/user.py

@ -301,6 +301,9 @@ class ClientUser(BaseUser):
Specifies if the user is a bot account. Specifies if the user is a bot account.
system: :class:`bool` system: :class:`bool`
Specifies if the user is a system user (i.e. represents Discord officially). Specifies if the user is a system user (i.e. represents Discord officially).
.. versionadded:: 1.3
verified: :class:`bool` verified: :class:`bool`
Specifies if the user is a verified account. Specifies if the user is a verified account.
email: Optional[:class:`str`] email: Optional[:class:`str`]

3
discord/webhook.py

@ -404,6 +404,9 @@ class Webhook:
The webhook's ID The webhook's ID
type: :class:`WebhookType` type: :class:`WebhookType`
The type of the webhook. The type of the webhook.
.. versionadded:: 1.3
token: Optional[:class:`str`] token: Optional[:class:`str`]
The authentication token of the webhook. If this is ``None`` The authentication token of the webhook. If this is ``None``
then the webhook cannot be used to make requests. then the webhook cannot be used to make requests.

43
docs/api.rst

@ -768,9 +768,15 @@ Profile
.. attribute:: team_user .. attribute:: team_user
A boolean indicating if the user is in part of a team. A boolean indicating if the user is in part of a team.
.. versionadded:: 1.3
.. attribute:: system .. attribute:: system
A boolean indicating if the user is officially part of the Discord urgent message system. A boolean indicating if the user is officially part of the Discord urgent message system.
.. versionadded:: 1.3
.. attribute:: mutual_guilds .. attribute:: mutual_guilds
A list of :class:`Guild` that the :class:`ClientUser` shares with this A list of :class:`Guild` that the :class:`ClientUser` shares with this
@ -914,12 +920,6 @@ of :class:`enum.Enum`.
Specifies the region a voice server belongs to. Specifies the region a voice server belongs to.
.. versionchanged:: 1.2
The ``india`` region was added.
.. versionchanged:: 1.3
The ``europe`` and ``dubai`` regions were added.
.. attribute:: amsterdam .. attribute:: amsterdam
The Amsterdam region. The Amsterdam region.
@ -929,6 +929,9 @@ of :class:`enum.Enum`.
.. attribute:: dubai .. attribute:: dubai
The Dubai region. The Dubai region.
.. versionadded:: 1.3
.. attribute:: eu_central .. attribute:: eu_central
The EU Central region. The EU Central region.
@ -938,6 +941,9 @@ of :class:`enum.Enum`.
.. attribute:: europe .. attribute:: europe
The Europe region. The Europe region.
.. versionadded:: 1.3
.. attribute:: frankfurt .. attribute:: frankfurt
The Frankfurt region. The Frankfurt region.
@ -947,6 +953,9 @@ of :class:`enum.Enum`.
.. attribute:: india .. attribute:: india
The India region. The India region.
.. versionadded:: 1.2
.. attribute:: japan .. attribute:: japan
The Japan region. The Japan region.
@ -1332,6 +1341,8 @@ of :class:`enum.Enum`.
- ``channel``: A :class:`TextChannel` or :class:`Object` with the channel ID where the members were moved. - ``channel``: A :class:`TextChannel` or :class:`Object` with the channel ID where the members were moved.
- ``count``: An integer specifying how many members were moved. - ``count``: An integer specifying how many members were moved.
.. versionadded:: 1.3
.. attribute:: member_disconnect .. attribute:: member_disconnect
A member's voice state has changed. This triggers when a A member's voice state has changed. This triggers when a
@ -1342,6 +1353,8 @@ of :class:`enum.Enum`.
- ``count``: An integer specifying how many members were disconnected. - ``count``: An integer specifying how many members were disconnected.
.. versionadded:: 1.3
.. attribute:: bot_add .. attribute:: bot_add
A bot was added to the guild. A bot was added to the guild.
@ -1349,6 +1362,8 @@ of :class:`enum.Enum`.
When this is the action, the type of :attr:`~AuditLogEntry.target` is When this is the action, the type of :attr:`~AuditLogEntry.target` is
the :class:`Member` or :class:`User` which was added to the guild. the :class:`Member` or :class:`User` which was added to the guild.
.. versionadded:: 1.3
.. attribute:: role_create .. attribute:: role_create
A new role was created. A new role was created.
@ -1540,6 +1555,8 @@ of :class:`enum.Enum`.
- ``count``: An integer specifying how many messages were deleted. - ``count``: An integer specifying how many messages were deleted.
.. versionadded:: 1.3
.. attribute:: message_pin .. attribute:: message_pin
A message was pinned in a channel. A message was pinned in a channel.
@ -1553,6 +1570,8 @@ of :class:`enum.Enum`.
- ``channel``: A :class:`TextChannel` or :class:`Object` with the channel ID where the message was pinned. - ``channel``: A :class:`TextChannel` or :class:`Object` with the channel ID where the message was pinned.
- ``message_id``: the ID of the message which was pinned. - ``message_id``: the ID of the message which was pinned.
.. versionadded:: 1.3
.. attribute:: message_unpin .. attribute:: message_unpin
A message was unpinned in a channel. A message was unpinned in a channel.
@ -1566,6 +1585,8 @@ of :class:`enum.Enum`.
- ``channel``: A :class:`TextChannel` or :class:`Object` with the channel ID where the message was unpinned. - ``channel``: A :class:`TextChannel` or :class:`Object` with the channel ID where the message was unpinned.
- ``message_id``: the ID of the message which was unpinned. - ``message_id``: the ID of the message which was unpinned.
.. versionadded:: 1.3
.. attribute:: integration_create .. attribute:: integration_create
A guild integration was created. A guild integration was created.
@ -1573,6 +1594,8 @@ of :class:`enum.Enum`.
When this is the action, the type of :attr:`~AuditLogEntry.target` is When this is the action, the type of :attr:`~AuditLogEntry.target` is
the :class:`Object` with the integration ID of the integration which was created. the :class:`Object` with the integration ID of the integration which was created.
.. versionadded:: 1.3
.. attribute:: integration_update .. attribute:: integration_update
A guild integration was updated. A guild integration was updated.
@ -1580,6 +1603,8 @@ of :class:`enum.Enum`.
When this is the action, the type of :attr:`~AuditLogEntry.target` is When this is the action, the type of :attr:`~AuditLogEntry.target` is
the :class:`Object` with the integration ID of the integration which was updated. the :class:`Object` with the integration ID of the integration which was updated.
.. versionadded:: 1.3
.. attribute:: integration_delete .. attribute:: integration_delete
A guild integration was deleted. A guild integration was deleted.
@ -1587,6 +1612,8 @@ of :class:`enum.Enum`.
When this is the action, the type of :attr:`~AuditLogEntry.target` is When this is the action, the type of :attr:`~AuditLogEntry.target` is
the :class:`Object` with the integration ID of the integration which was deleted. the :class:`Object` with the integration ID of the integration which was deleted.
.. versionadded:: 1.3
.. class:: AuditLogActionCategory .. class:: AuditLogActionCategory
Represents the category that the :class:`AuditLogAction` belongs to. Represents the category that the :class:`AuditLogAction` belongs to.
@ -1721,6 +1748,8 @@ of :class:`enum.Enum`.
Represents the membership state of a team member retrieved through :func:`Bot.application_info`. Represents the membership state of a team member retrieved through :func:`Bot.application_info`.
.. versionadded:: 1.3
.. attribute:: invited .. attribute:: invited
Represents an invited member. Represents an invited member.
@ -1733,6 +1762,8 @@ of :class:`enum.Enum`.
Represents the type of webhook that can be received. Represents the type of webhook that can be received.
.. versionadded:: 1.3
.. attribute:: incoming .. attribute:: incoming
Represents a webhook that can post messages to channels with a token. Represents a webhook that can post messages to channels with a token.

8
docs/whats_new.rst

@ -25,7 +25,7 @@ New Features
- Add :meth:`Guild.fetch_roles` to fetch roles from the HTTP API. (:issue:`2208`) - Add :meth:`Guild.fetch_roles` to fetch roles from the HTTP API. (:issue:`2208`)
- Add support for teams via :class:`Team` when fetching with :meth:`Client.application_info`. (:issue:`2239`) - Add support for teams via :class:`Team` when fetching with :meth:`Client.application_info`. (:issue:`2239`)
- Add support for suppressing embeds via :meth:`Message.edit` - Add support for suppressing embeds via :meth:`Message.edit`
- Add support for guild subscriptions, see the :class:`Client` documentation for more details. - Add support for guild subscriptions. See the :class:`Client` documentation for more details.
- Add :attr:`VoiceChannel.voice_states` to get voice states without relying on member cache. - Add :attr:`VoiceChannel.voice_states` to get voice states without relying on member cache.
- Add :meth:`Guild.query_members` to request members from the gateway. - Add :meth:`Guild.query_members` to request members from the gateway.
- Add :class:`FFmpegOpusAudio` and other voice improvements. (:issue:`2258`) - Add :class:`FFmpegOpusAudio` and other voice improvements. (:issue:`2258`)
@ -56,7 +56,7 @@ New Features
- Add :attr:`User.system` and :attr:`Profile.system` to know whether a user is an official Discord Trust and Safety account. - Add :attr:`User.system` and :attr:`Profile.system` to know whether a user is an official Discord Trust and Safety account.
- Add :attr:`Profile.team_user` to check whether a user is a member of a team. - Add :attr:`Profile.team_user` to check whether a user is a member of a team.
- Add :meth:`Attachment.to_file` to easily convert attachments to :class:`File` for sending. - Add :meth:`Attachment.to_file` to easily convert attachments to :class:`File` for sending.
- Add certain aliases to :class:`Permission` to match the UI better. (:issue:`2496`) - Add certain aliases to :class:`Permissions` to match the UI better. (:issue:`2496`)
- :attr:`Permissions.manage_permissions` - :attr:`Permissions.manage_permissions`
- :attr:`Permissions.view_channel` - :attr:`Permissions.view_channel`
- :attr:`Permissions.use_external_emojis` - :attr:`Permissions.use_external_emojis`
@ -66,11 +66,11 @@ New Features
- Add support for :func:`on_invite_create` and :func:`on_invite_delete` events. - Add support for :func:`on_invite_create` and :func:`on_invite_delete` events.
- Add support for clearing a specific reaction emoji from a message. - Add support for clearing a specific reaction emoji from a message.
- :meth:`Message.clear_reaction` and :class:`Reaction.clear` methods. - :meth:`Message.clear_reaction` and :meth:`Reaction.clear` methods.
- :func:`on_raw_reaction_clear_emoji` and :func:`on_reaction_clear_emoji` events. - :func:`on_raw_reaction_clear_emoji` and :func:`on_reaction_clear_emoji` events.
- Add :func:`utils.sleep_until` helper to sleep until a specific datetime. (:issue:`2517`, :issue:`2519`) - Add :func:`utils.sleep_until` helper to sleep until a specific datetime. (:issue:`2517`, :issue:`2519`)
- |commands| Add support for teams and :attr:`Bot.owner_ids` to have multiple bot owners. (:issue:`2239`) - |commands| Add support for teams and :attr:`Bot.owner_ids <.ext.commands.Bot.owner_ids>` to have multiple bot owners. (:issue:`2239`)
- |commands| Add new :attr:`BucketType.role <.ext.commands.BucketType.role>` bucket type. (:issue:`2201`) - |commands| Add new :attr:`BucketType.role <.ext.commands.BucketType.role>` bucket type. (:issue:`2201`)
- |commands| Expose :attr:`Command.cog <.ext.commands.Command.cog>` property publicly. (:issue:`2360`) - |commands| Expose :attr:`Command.cog <.ext.commands.Command.cog>` property publicly. (:issue:`2360`)
- |commands| Add non-decorator interface for adding checks to commands via :meth:`Command.add_check <.ext.commands.Command.add_check>` and :meth:`Command.remove_check <.ext.commands.Command.remove_check>`. (:issue:`2411`) - |commands| Add non-decorator interface for adding checks to commands via :meth:`Command.add_check <.ext.commands.Command.add_check>` and :meth:`Command.remove_check <.ext.commands.Command.remove_check>`. (:issue:`2411`)

Loading…
Cancel
Save