Browse Source

[commands] Fix bug in behaviour in the cog inspection methods.

pull/1929/head
Rapptz 6 years ago
parent
commit
ab8e7b7732
  1. 15
      discord/ext/commands/cog.py
  2. 2
      docs/ext/commands/cogs.rst

15
discord/ext/commands/cog.py

@ -156,18 +156,23 @@ class Cog(metaclass=CogMeta):
return self
def get_commands(self):
r"""Returns a :class:`tuple` of :class:`.Command`\s and its subclasses that are
r"""Returns a :class:`list` of :class:`.Command`\s that are
defined inside this cog.
.. note::
This does not include subcommands.
"""
return self.__cog_commands__
return [c for c in self.__cog_commands__ if c.parent is None]
def walk_commands(self):
"""An iterator that recursively walks through this cog's commands and subcommands."""
from .core import GroupMixin
for command in self.__cog_commands__:
yield command
if isinstance(command, GroupMixin):
yield from command.walk_commands()
if command.parent is None:
yield command
if isinstance(command, GroupMixin):
yield from command.walk_commands()
def get_listeners(self):
"""Returns a :class:`list` of (name, function) listener pairs that are defined in this cog."""

2
docs/ext/commands/cogs.rst

@ -142,7 +142,7 @@ Inspection
Since cogs ultimately are classes, we have some tools to help us inspect certain properties of the cog.
To get a :class:`tuple` of commands, we can use :meth:`.Cog.get_commands`. ::
To get a :class:`list` of commands, we can use :meth:`.Cog.get_commands`. ::
>>> cog = bot.get_cog('Greetings')
>>> commands = cog.get_commands()

Loading…
Cancel
Save