aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--discord/ext/commands/core.py30
1 files changed, 22 insertions, 8 deletions
diff --git a/discord/ext/commands/core.py b/discord/ext/commands/core.py
index c70ade1e..5779717c 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):