Как получить нажатую реакцию из ЛС бота discord pycord?

Для того чтобы получить нажатую реакцию из личных сообщений бота в Discord с использованием библиотеки discord.py, вам понадобится использовать класс WaitFor и метод wait_for().

Вот как вы можете получить нажатую реакцию из личных сообщений бота:

import discord
from discord.ext import commands

intents = discord.Intents.default()
intents.reactions = True

bot = commands.Bot(command_prefix='!', intents=intents)

@bot.event
async def on_ready():
    print(f'Бот {bot.user.name} запущен')
    
@bot.event
async def on_message(message):
    if isinstance(message.channel, discord.DMChannel):  # Проверяем, является ли канал личным сообщением
        reaction = await bot.wait_for('reaction_add', timeout=60.0)  # Ожидаем добавления реакции
        # Дальнейшая обработка реакции
        emoji = reaction[0].emoji
        print(f'Добавлена реакция {emoji}')
        
    await bot.process_commands(message)
    
bot.run('ваш_токен')

В этом примере, главным методом является on_message(), который выполняется каждый раз, когда ваш бот получает новое личное сообщение. Мы проверяем, что канал является личным сообщением с помощью isinstance(message.channel, discord.DMChannel). Если это условие выполняется, мы используем wait_for() для ожидания добавления реакции пользователем. 'reaction_add' это тип события, на которое мы ожидаем реакцию. В этом примере мы ожидаем реакцию в течение 60 секунд, но вы можете установить другое значение для timeout. Когда реакция добавлена, переменная reaction содержит информацию о ней, включая сам эмоджи (reaction[0].emoji). Здесь вы можете добавить код для обработки реакции по вашему усмотрению.

Надеюсь, это помогло! Если у вас есть еще вопросы, не стесняйтесь задавать.