BotBase.add_command()遇意外关键字参数'name',求排查Slash命令代码问题
问题排查与解决
错误原因
你遇到的BotBase.add_command() 收到意外的关键字参数'name'错误,是因为当前使用的Discord机器人库(大概率是discord.py)中,slash_command装饰器内部调用的add_command方法不接受name这个关键字参数。
解决方法
方案1:直接修改函数名匹配命令名
去掉slash_command装饰器里的name参数,将函数名改为你想要的命令名(此处为methods)即可,命令名默认会使用函数名:
@bot.slash_command() async def methods(ctx: discord.ApplicationContext): embed = discord.Embed(title='支付方式', description="<strong>以下列出所有支付方式</strong>", color=0x7532f0) embed.add_field( name="<strong>Paypal</strong>", value=f"<code>battcompras@gmail.com</code><strong>⚠️ 仅支持F&F,否则无法收到订单 ⚠️</strong>", inline=False ) await ctx.respond(embed=embed) # 需添加该行发送嵌入消息,否则命令执行后无反馈
方案2:确认库版本并适配参数
若你确实需要通过参数指定命令名,先确认discord.py版本是否为2.0及以上(官方从2.0版本开始内置Slash命令支持)。新版本中slash_command装饰器支持name参数,若仍报错则检查参数拼写是否有误,或尝试使用command_name参数替代(部分兼容场景下可能需要该参数)。不过方案1的兼容性更强,更推荐使用。
内容的提问来源于stack exchange,提问作者Pancho Herrera
相关产品推荐
相关产品推荐

