首页 > 解决方案 > 在 discord.py 中,如何将多个单词设置为一个参数,但仍需要用户输入一个参数?

问题描述

所以,我不确定标题是否可读,但基本上我想设置一个静音命令。您可以出于某种原因在其中放置多个单词,但也应该要求您将参数放在那里作为一种故障保护。

这是我目前拥有的:

@bot.command()
@commands.has_permissions(administrator=True) #checking permissions
async def mute(ctx, member:discord.Member, *args):
...
reason = ' '.join(args)
...
await member.send(f"You have been muted because of {reason}")

但是,如果有人没有说明原因,我不希望命令执行而是触发 MissingRequiredArgument 错误。在我设置它之前,您只能用 1 个单词作为参数或将其放在引号或其他东西中。这确实以用户需要输入参数的方式成功,但我确实希望它能够以当前方式工作。那可能吗?在此先感谢您的帮助!

标签: pythondiscorddiscord.pydiscord.py-rewrite

解决方案


根据文档,您将改为使用*, args. 以下是文档中的代码。

@bot.command()
async def test(ctx, *, arg):
    await ctx.send(arg)

仅关键字参数


推荐阅读