gpt4 book ai didi

python - 在 discord.py 中将引号作为参数传递时出错

转载 作者:行者123 更新时间:2023-12-02 02:42:00 25 4
gpt4 key购买 nike

当有人在命令中使用引号时,我的 Discord bot 当前出现错误,我收到以下错误:discord.ext.commands.errors.ExpectedClosingQuoteError: Expected closing ". 看起来像根据 this bug report 以及 discord.py 中的 this code,这是 discord.py 中的一个 Unresolved 错误。这就是问题所在,这有点烦人我想知道目前是否有解决此问题的方法。到目前为止,这是我的代码:

@bot.command()
async def f(ctx, *args):
hearts = (':heart:', ':orange_heart:', ':yellow_heart:', ':green_heart:', ':blue_heart:', ':purple_heart:')

if not args:
response = '**{0}** has paid their respects {1}'.format(ctx.author.name,
hearts[random.randint(0, len(hearts) - 1)])
else:
response = '**{0}** has paid their respects {1} {2}'.format(ctx.author.name, ' '.join(args),
hearts[random.randint(0, len(hearts) - 1)])

当用户通过在 Discord 中键入 !f "The thing 来调用此函数时,我得到了我上面提到的命令。无论如何我有可能绕过这个吗?我不认为它这是可能的,因为参数被传递到函数的那一刻,错误被抛出。我想我可以编辑 discord.py 来解决这个问题,但它可能会破坏我的机器人的其他区域。我通常当 iOS 用户在键盘上使用引号并键入类似 !f Josh's face 的内容时出现此错误。有什么方法可以通过此函数成功传递所有引号吗?

谢谢!

最佳答案

它将命令后的所有内容作为 args 并将默认设置为 None,因此如果没有 args discord.ext.commands.errors.MissingRequiredArgument,您将不会收到错误消息: args 是缺少的必需参数。

我还更改了格式以使用 f string我相信这更容易。并使用 random.choise()对你来说更好

example from docs

@bot.command()
async def f(ctx, *, args=None):
hearts = (':heart:', ':orange_heart:', ':yellow_heart:',
':green_heart:', ':blue_heart:', ':purple_heart:')

if not args:
response = f'**{ctx.author.name}** has paid their respects {random.choice(hearts)}'
else:
response = f'**{ctx.author.name}** has paid their respects {args} {random.choice(hearts)}'

await ctx.send(response)

enter image description here

enter image description here

enter image description here

关于python - 在 discord.py 中将引号作为参数传递时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63423076/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com