1
0
Fork 0
mirror of synced 2024-06-03 11:14:33 +12:00
Bonfire/cogs/utils/utilities.py
2016-12-01 22:02:42 -06:00

22 lines
724 B
Python

def get_all_commands(bot):
# First lets create a set of all the parent names
parent_command_names = set(cmd.qualified_name for cmd in bot.commands)
all_commands = []
# Now lets loop through and get all the child commands for each command
# Only the command itself will be yielded if there are no children
for cmd_name in parent_command_names:
cmd = bot.commands.get(cmd_name)
for child_cmd in _get_all_commands(cmd):
all_commands.append(child_cmd)
return all_commands
def _get_all_commands(command):
yield command.qualified_name
try:
for cmd in command.commands:
yield from _get_all_commands(cmd)
except AttributeError:
pass