Как использовать discord.on_reaction_add () в сообщениях, отправленных до запуска бота - PullRequest
0 голосов
/ 01 ноября 2019

Мой бот Discord может реагировать только на реакции, добавленные к сообщениям, отправленным после запуска бота. Он не будет реагировать, если я добавлю реакцию на старое сообщение. Как я могу заставить его реагировать на каждую добавленную реакцию, независимо от того, когда сообщение было отправлено?

@client.event
async def on_reaction_add(reaction, user):
    print(str(reaction.emoji), str(user))

Когда я добавляю реакцию на сообщение, отправленное после запуска бота, оно работает просто отлично.

User#1234 added a reaction to a message

Когда я добавляю реакцию на сообщение, отправленное до запуска бота, он ничего не делает.

1 Ответ

1 голос
/ 01 ноября 2019

on_reaction_add будет работать только для сообщений, хранящихся во внутреннем кеше ботов, который будет включать только те, которые были отправлены после его запуска. Чтобы обрабатывать реакции других сообщений, вы должны использовать событие on_raw_reaction_add:

@client.event
async def on_raw_reaction_add(payload):
    user = client.get_user(payload.user_id)
    print(str(payload.emoji), str(user))
...