Ошибка события on_reaction_add в discord.py - PullRequest
0 голосов
/ 18 апреля 2020

Я не могу понять, почему он говорит, что есть два аргумента, когда я дал один?

Когда я пытаюсь выполнить этот код

@bot.event
async def on_reaction_add(reaction):
    fp = reaction.message.guild.name
    l = reaction.message
    if os.path.isfile(ph + fp + '-bug.txt'):
        f = open(ph + fp + '-bug.txt')
        u = open(ph + fp + '-mod.txt')
        lines1 = u.readlines()
        lines = f.readlines()
        if str(l.channel.id) == lines1[0]:
            if reaction.emoji == "✅":
                channel = bot.get_channel(int(lines[0]))
                await channel.send(l.content)
            elif reaction.emoji == "❌":
                await l.delete()

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

Traceback (most recent call last):
  File "C:\Users\---\PycharmProjects\---\venv\lib\site-packages\discord\client.py", line 312, in _run_event
    await coro(*args, **kwargs)
TypeError: on_reaction_add() takes 1 positional argument but 2 were given```


1 Ответ

2 голосов
/ 18 апреля 2020

Событие on_reaction_add требует аргументов reaction и user.
Подробнее вы можете прочитать на этой странице!

Таким образом, чтобы это событие работало, вы должны использовать его следующим образом:

@bot.event
async def on_reaction_add(reaction, user):
    print(reaction) # Prints information about the reaction that was given.
    print(user) # Prints information about the user that gave the reaction.

Также: on_reaction_add() takes 1 positional argument but 2 were given
означает, что ожидается получение двух аргументов, но ваш Событие может получить только один

...