Для того чтобы получить нажатую реакцию из личных сообщений бота в 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
). Здесь вы можете добавить код для обработки реакции по вашему усмотрению.
Надеюсь, это помогло! Если у вас есть еще вопросы, не стесняйтесь задавать.