on_reaction_add не запускается - PullRequest
0 голосов
/ 10 июня 2018

Я новичок в discord.py и пытаюсь сделать бота переводчиком.Когда пользователь реагирует определенным флагом, бот переводит его, но событие никогда не вызывается, поэтому у меня пока нет кода для перевода каких-либо сообщений.Я знаю, что он не вызывается, потому что программа не печатает 'x' на консоль.

@client.event
async def on_reaction_add(reaction, user):
    channel = reaction.message.channel
    print('x')
    await client.send_message(channel, '{} has added {} to the the message {}'.format(user.name, reaction.emoji, reaction.message.content))

    await client.process_commands(reaction.message)

1 Ответ

0 голосов
/ 10 июня 2018

Существует мало веских причин, по которым событие не зарегистрировано / не вызвано.

Один из которых указан в документации: http://discordpy.readthedocs.io/en/async/api.html#discord.on_reaction_add. Попробуйте добавить реакцию немедленно к сообщению, которое отправляется после того, как бот подключен.Поскольку сообщения, отправленные до того, как бот подключен к сети, не будут распознаваться ботом (не в Client.messages).

, если сообщение не найдено в кэше Client.messages, это событие не будетбыть вызванным.

Другая возможная причина состоит в том, что эта функция никогда не была определена до того, как начался цикл клиента.Проверьте свой отступ.И / или попробуйте поместить функцию прямо под client = Bot(...), чтобы проверить, является ли это проблемой.

Если ни один из вышеупомянутых не решает вашу проблему, пожалуйста, опубликуйте минимальный, полный, проверяемый пример (короткий исполняемый кодсверху вниз, что указывает на вашу проблему).

...