@client.command(),它接受什么参数?

时间:2021-05-31 15:58:16

标签: discord.py

我正在创建一个帮助命令,而不是单独添加每个命令描述、名称、别名等,我创建了一个 for 循环来遍历所有 client.commands。但我只想显示在 command.type 中有 type="misc" 的命令。用法、描述、别名和名称工作正常,但类型不行 例如: ping 命令 -

@client.command(name="ping", description="Check the bot latency.", usage='`stonk ping`', type= "misc")
@commands.cooldown(1, 5, commands.BucketType.user)
async def ping(ctx):
  random = discord.Color.random()
  ping = Embed(title="Pong!", description = f"My ping is **{round(client.latency * 1000)}ms**", color=random)
  ping.set_footer(text=ctx.guild.name, icon_url=ctx.guild.icon_url)
  await ctx.reply(embed=ping)

贯穿每个命令的帮助命令。

em = Embed(title="Stonker Command List", description="This embed was sponsored by: **Stonk Man**", color=random)
em.set_footer(text="Stonkman Smort Inveshtor, Be Like Stonkman")
for c in client.commands:
    if c.type == "misc":
        em.add_field(name=f"{c.name}", value=f"**Aliases**: {', '.join(c.aliases)}\n**Description**: {c.description}\n**Usage**: {c.usage}", inline=False)

但是当我运行它时,它说命令没有属性“类型”。所以我想知道你可以在@client.command(这里)中放入哪些变量 对不起,如果这令人困惑,我不知道如何解释

1 个答案:

答案 0 :(得分:0)

Bot.command 装饰器只是将关键字参数传递给 commands.Command 构造函数。文档没有明确指定哪些属性可以作为关键字参数传递,但在 source code 中我可以找到以下属性:

  • name
  • enabled
  • help
  • brief
  • usage
  • rest_is_raw
  • aliases
  • extras
  • hidden
  • checks
  • cooldown
  • max_concurrency
  • require_var_positional
  • ignore_extra
  • cooldown_after_parsing
  • parent

有关这些属性的详细信息,请参阅 commands.Command 文档。请注意,type 不是有效的关键字参数,因此将被忽略。