def add_as_subcommand(cog, command, parent_name, subcommand_name, *, aliases = []):
if isinstance(parent_name, commands.Command):
parent = parent_name
# parent_cog = cog.bot.get_cog(parent.cog_name)
parent_cog = parent.instance
parent_command_name = parent.name
else:
parent_cog_name, parent_command_name = parent_name.split('.')
parent_cog = cog.bot.get_cog(parent_cog_name)
parent = getattr(parent_cog, parent_command_name, None)
if not parent: return
subcommand = copy.copy(command)
subcommand.name = subcommand_name
subcommand.aliases = aliases
# async def wrapper(*args, **kwargs):
# async def wrapper(*args, command = command, **kwargs):
# await command.callback(cog, *args, **kwargs)
# subcommand.callback = wrapper
# subcommand.params = inspect.signature(subcommand.callback).parameters.copy()
setattr(parent_cog, "{}_{}".format(parent_command_name, subcommand_name), subcommand)
parent.add_command(subcommand)
评论列表
文章目录