Reputation: 13
I'm starting in Python, I'm making a Discord bot few weeks, nowdays, when I was trying to make a "Poll System" in my bot, I had an error like this:
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: 'str' object has no attribute 'author'
My code:
@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)
I will be really thankful for any kind of help...
Upvotes: 1
Views: 6395
Reputation: 1979
Since you are using @client.command()
instead of @commands.command()
, I would assume your command is not in a cog or another class. If that's the case, you need to remove the self
argument from your command.
async def hlasovani(ctx, volba1, volba2, *, tema):
Upvotes: 1