Как отслеживать добавление эмодзи к сообщению в ЛС с ботом? discord.py
Как отслеживать добавление эмодзи к сообщению в ЛС с ботом?
Бот отправляет сообщение участнику в событии on_raw_reaction_add, после чего нужно что бы бот реагировал на нажатие на эмодзи к этому отправленному сообщению.
Я записывал id отправленного сообщения в список, после чего проверял в цикле внутри on_raw_reaction_add соответствие обработанного событием сообщения с эмодзи и id из списка.
Но вскоре я понял, что событие on_raw_reaction_add() не может обрабатывать нажатия в лс, по крайней мере как это делаю я.
В результате выполнения цикла ничего не происходит, условия не выполняются.
ballance_messages = []
@bot.event
async def on_raw_reaction_add(messages):
user_id = messages.user_id
message_id = messages.message_id
guild = bot.get_guild(messages.guild_id)
member = guild.get_member(user_id)
if messages.user_id == bot.user.id:
return
# Balance
elif message_id == 881778669482299402:
if messages.emoji.name == "☑️":
bal_message = await member.send("Message")
await bal_message.add_reaction('?')
ballance_messages.append(bal_message.id)
print(ballance_messages)# для откладки
# Balance check emoji
for i in range(len(ballance_messages)):
if int(message_id) == int(ballance_messages[i]):
if messages.emoji.name == "?":
print("-----------JGHUHRG-------------------")
else:
print("NO Message")
Как отследить нажатие на эмодзи к определенному сообщению в лс с ботом?
Возможно, для этого у события on_raw_reaction_add есть другие аргументы, или для этого существуют другие методы?
В документации к событию я не нашел отдельных способов такой проверки в том числе используя аргумент payload, по этому буду благодарен за помощь.