diff --git a/discord/ext/commands/core.py b/discord/ext/commands/core.py index c70ade1ef..5779717c3 100644 --- a/discord/ext/commands/core.py +++ b/discord/ext/commands/core.py @@ -504,13 +504,17 @@ class Command(_BaseCommand): return ' '.join(reversed(entries)) @property - def root_parent(self): - """Retrieves the root parent of this command. + def parents(self): + """Retrieves the parents of this command. + + .. versionadded:: 1.1.0 + + If the command has no parents then it returns an empty :class:`list`. + + For example in commands ``?a b c test``, + the parents are ``[c, b, a]``. - If the command has no parents then it returns ``None``. - For example in commands ``?a b c test``, the root parent is - ``a``. """ entries = [] command = self @@ -518,10 +522,20 @@ class Command(_BaseCommand): command = command.parent entries.append(command) - if len(entries) == 0: - return None + return entries - return entries[-1] + @property + def root_parent(self): + """Retrieves the root parent of this command. + + If the command has no parents then it returns ``None``. + + For example in commands ``?a b c test``, the root parent is + ``a``. + """ + if not self.parent: + return None + return self.parents[-1] @property def qualified_name(self):