Discord.py в on_raw_reaction_add () отсутствует 1 требуемый позиционный аргумент: ‘user’

#python #discord.py

#python #discord.py

Вопрос:

Я хочу, чтобы мой бот назначал кому-то определенную роль всякий раз, когда кто-то реагирует на определенное сообщение

Код:

 @client.event
async def on_raw_reaction_add(reaction, user):
    if reaction.message.id == 747566918466273300 and reaction.emoji in "✅":
        role = discord.utils.get(user.server.roles, name="Member")
        await bot.add_roles(user, role)

  

и я получаю ошибку:

 Ignoring exception in on_raw_reaction_add
Traceback (most recent call last):
  File "C:UsersBrukerAppDataLocalProgramsPythonPython37libsite-packagesdiscordclient.py", line 312, in _run_event
    await coro(*args, **kwargs)
TypeError: on_raw_reaction_add() missing 1 required positional argument: 'user'
  

Спасибо

Ответ №1:

Вы получаете это исключение, потому что on_reaction_add событие не принимает user или reaction параметр, вы должны использовать payload вместо этого, например:

 @client.event
async def on_raw_reaction_add(payload):
    # Code here
  

Затем для остальной части вашего кода:

 if payload.message.id == 747566918466273300 and payload.emoji.name == "✅":
    role = discord.utils.get(payload.guild.roles, name="Member")
        await payload.author.add_roles(role)