@frykktik

Как сделать, чтобы бот реагировал когда ставят реакцию на какое-либо сообщение?

Мне нужно, чтобы бот в ответ на поставленную реакцию на сообщение в канале пинговал определенную роль в другом. Важно: бот у меня настроен ставить реакции на все новые сообщения в определенном канале, так и сейчас он должен реагировать на поставленные реакции в сообщениях этого канала, но желательно, чтобы только на 1 кликнувшего т.е на того, кто 1 кликнул. Не спрашивайте, зачем мне это.
  • Вопрос задан
  • 1693 просмотра
Пригласить эксперта
Ответы на вопрос 1
shurup77
@shurup77
Если вам нужно выполнять действие на определенную реакцию, то можно сделать как ниже, но учтите, что это способо для когов, если у вас не коги, то переделайте под себя:

@commands.command()
async def command_name(self, ctx):
    channel = self.bot.get_channel(channel_id) # берем id чата
    message = await channel.fetch_message(message_id) #получаем все о сообщении по его id
    resactions = [reaction for reaction in message.reactions if reaction.emoji in ['иконка реакции1', 'иконка реакции2', 'иконка реакции3']]
    for reaction in resactions:
        if reaction.emoji == 'иконка реакции1':
             print("нажата реакция 'город'")
       elif reaction.emoji == 'иконка реакции2':
           # do your task...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы