python - discord.ext.commands.errors.CommandInvokeError:命令引发异常:AttributeError:'str'对象没有属性'author'
问题描述
我从 Python 开始,几周后我正在制作一个 Discord 机器人,现在,当我试图在我的机器人中创建一个“投票系统”时,我遇到了这样的错误:
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: 'str' object has no attribute 'author'
我的代码:
@client.command()
async def hlasovani(self, ctx, volba1, volba2, *, tema):
embed = discord.Embed(title = tema,description = f":one: {volba1}\n\n:two: {volba2}",color = ctx.author.color,timestamp = datetime.datetime.utcnow())
embed.set_footer(text = f"Hlasování zahájil {ctx.author.name}")
embed.set_thumbnail(url = ctx.author.avatar_url)
message = await ctx.send(embed = embed)
await message.add_reaction("1️⃣")
await message.add_reaction("2️⃣")
await asyncio.sleep(5)
newmessage = await ctx.fetch_message(message.id)
onechoice = await newmessage.reactions[0].users().flatten()
secchoice = await newmessage.reactions[1].users().flatten()
vysledek = "REMÍZA!"
if len(onechoice)>len(secchoice):
vysledek = volba1
elif len(secchoice)<len(onechoice):
vysledek = volba2
embed = discord.Embed(title = tema, description = f"Výsledek: {vysledek}", color = ctx.author.color, timestamp = datetime.datetime.utcnow())
embed.set_footer(text = f"{volba1} || {volba2}")
await newmessage.edit(embed = embed)
我会非常感谢任何形式的帮助...
解决方案
由于您使用@client.command()
而不是@commands.command()
,我会假设您的命令不在 cog 或其他类中。如果是这种情况,您需要self
从命令中删除参数。
async def hlasovani(ctx, volba1, volba2, *, tema):
推荐阅读
- bash - 匹配来自两个不同 txt 文件的列号
- azure - Azure Cosmos DB - 超出了每个几何体允许的最大点数。当前支持的最大点数为 4096
- c - 利用 omp_set_lock 的 OpenMP 死锁
- java - 使用 Keycloak 进行客户注册
- python - Python - 绘制方程:x + abs(x) = y + abs(y)
- python - Python 错误:ValueError:无法将字符串转换为浮点数
- c# - 如何将 C# 类型编组为 LPWSTR *
- twilio - 在 Twilio Whatsapp API 上对每条发送的消息进行“接受”回复
- reactjs - 在 TypeScript 中对 async/await 调用进行排序
- wpf - 即使 IsDesignTimeCreatable=False 也会创建 Viewmodel