为了账号安全,请及时绑定邮箱和手机立即绑定

从另一个命令调用命令 discord.py

从另一个命令调用命令 discord.py

Qyouu 2023-05-23 16:17:23
我正在使用discord.py并想从另一个命令调用一个命令。在堆栈溢出中有很多类似的问题,但我的不同之处在于我不希望将要调用的命令可供用户调用。例如:假设我有一个动物类别,并且在该类别中有两个命令,例如(笑话,图片)。那么如果命令前缀是!.用户将键入!animals joke或!animals pictures。这应该返回所需的结果。我以为我可以通过以下方式做到这一点:animals.py:@commands.commandasync def animals(self, ctx, com_name):    await ctx.invoke(self.bot.get_command(com_name))jokes.py@commands.commandasync def joke(self, ctx):   await ctx.send('a random joke')现在,如果用户键入!animals joke它会工作,但他们将能够键入!joke,这也将工作。如果类别也存在,我怎么能只让命令被调用。
查看完整描述

1 回答

?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

您可以创建一个动物Group,然后成为joke一个子命令:

@commands.group()

async def animals(self, ctx):

    pass


@animals.command()

async def joke(self, ctx):

   await ctx.send('a random joke')

另一种选择是添加一个始终为假的检查joke


fail = commands.check(lambda ctx: False)


@fail

@commands.command()

async def joke(self, ctx):

   await ctx.send('a random joke')


查看完整回答
反对 回复 2023-05-23
  • 1 回答
  • 0 关注
  • 98 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信