subcommand.py 574 B

12345678910111213141516171819
  1. from ..types import Message, Context, Command
  2. from .base import Injector
  3. __all__ = [
  4. "Subcommand",
  5. ]
  6. class SubcommandInjector(Injector[Command]):
  7. async def inject(self, message: Message, context: Context) -> Command:
  8. subc = message.command.cache.get(SubcommandInjector.__name__, None)
  9. if subc is None:
  10. subc = message.command.get_subcommand()
  11. message.command.cache[SubcommandInjector.__name__] = subc
  12. return subc
  13. Subcommand = SubcommandInjector()
  14. # TODO Subcommand.Arg, .Args, .ArgList, .ArgListSplitOn, .ArgParse