TypeError: on_message() missing 1 required positional argument: 'ctx'

Рейтинг: -1Ответов: 1Опубликовано: 25.03.2023

Я бы хотел сделать функцию для моего бота, которая могла отправить в чат Embed через slash_command, но он мне пишет ошибку. Как её исправить?

@bot.event
async def on_ready():
    print("George готов к работе ╰(*°▽°*)╯.")

@bot.slash_command(description='Embed')
async def embeder(inter):
    await inter.response.send_message('Ну!')
    await embeds()
    await inter.channel.send(f'Вот!')


@bot.command()
async def embeds(context, member: disnake.Member = None):
    if member == None:
        member = context.author

    name = member.display_name
    pfp = member.display_avatar

    embed = disnake.Embed(title='This is Embed', description='This is my first Embed', 
colour=disnake.Colour.purple())
    embed.set_author(name=f'{name}', 
url='', icon_url='')
    embed.set_thumbnail(url=f'{pfp}')
    embed.add_field(name='This is 1 field', value='This field is just a value')
    embed.add_field(name='This is 2 field', value='This field is inline True', 
inline=True)
    embed.add_field(name='This is 3 field', value='This field is inline False', 
inline=False)
    embed.set_footer(text=f'{name} made this Embed')

    context.send(embed=embed)

bot.run('TOKEN')

Кстати ещё вот эту ошибку пишет поверх этой ошибки:

Ignoring exception in on_message
Traceback (most recent call last):
  File "C:\Users\...", line 700, in _run_event
    await coro(*args, **kwargs)

И где мне её исправить?

embid = ['embed', 'Embed']
@bot.event
async def on_message(message, ctx):
if message.author == client.user:
    return
if message.content.lower() in embid:
    await embeds()

Ответы

▲ 0Принят

Функция on_message принимает только 1 аргумент (назвать его можно как хотите).

Предположим его название будет message:

@bot.event
async def on_message(message):
    if message.author == client.user:
        return
    if message.content.lower() in embid:
        await embeds()