Command raised an exception: AttributeError: 'str' object has no attribute 'message'
我收到错误消息:
add_reaction
执行代码时出现以下错误。
它是在我输入这些代码之前执行的。
最后,{{1}}功能将无法正常运行。
如何解决该错误?
答案 0 :(得分:3)
您的代码中存在多个错误:
ctx
必须是任何命令的第一个参数。在您的情况下,您期望的discord.Context
对象将是reaction
,这就是您遇到此错误的原因。您的函数定义应为:
@bot.command()
async def vote(ctx, reaction):
reaction
变量是无用的,如果您共享整个功能,则可以将其删除。await ctx.send(f"[Vote] - {vote[0]}")
(...)
msg = await ctx.send(f"```{vote[i]}```")
@bot.command()
async def vote(ctx) :
vote = ctx.message.content[4:].split(" / ")
await ctx.send(ctx.channel, "[Vote] - " + vote[0])
for i in range(1, len(vote)):
msg = await ctx.send(f"```{vote[i]}```")
await msg.add_reaction("⭕")
await msg.add_reaction("❌")
似乎您混合了旧的discord.py(低于v1.0)和实际的discord.py重写(低于v1.0)。以下链接总结了这两个版本之间的区别:Migrating to v1.0。