【问题标题】:How to pass arg from command to subcommand Discord py如何将 arg 从命令传递到子命令 Discord py
【发布时间】:2020-10-09 19:16:21
【问题描述】:

假设我有以下命令和子命令:

@commands.group()
async def channel(self, ctx, channel_name_or_id):
    # convert channel_name_or_id to channel object

@channel.command()
async def get_mention(ctx, channel_object):
    await ctx.send(channel_object.mention)

@channel.command()
async def get_id(ctx, channel_object):
    await ctx.send(channel_object.id)

我希望父命令将名称或 ID 转换为对象,然后将该对象传递给子命令。有没有办法做到这一点? ctx.invoked_subcommand.pass(channel_object) 之类的东西?

【问题讨论】:

    标签: python discord.py-rewrite subcommand


    【解决方案1】:

    您可以使用self.client.get_channel(id) 获取频道对象。您可以使用在 __init__() 中实例化的类级别变量(如果它是 cog)并将其设置为通道对象。

    【讨论】:

    • 这不是一个坏主意...我唯一担心的是如果同一命令同时调用两次会不会冲突?
    猜你喜欢
    • 1970-01-01
    • 2021-05-31
    • 2014-09-22
    • 2022-01-12
    • 1970-01-01
    • 2021-05-22
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    相关资源
    最近更新 更多