Discord.py Как выполнить действие в зависимости от реакции пользователя - PullRequest
1 голос
/ 23 февраля 2020

Как я могу проверить реакцию пользователя? Я использую этот код:

@client.command()
async def react(ctx):
    message = await ctx.send("Test")
    await question.add_reaction("<?>")
    await question.add_reaction("<?>")

Как я могу выполнить действие, если пользователь реагирует на сообщение с помощью ?, и другое действие, если пользователь реагирует на сообщение с помощью ?? Заранее спасибо

1 Ответ

1 голос
/ 24 февраля 2020

В документации вы можете найти client.wait_for(), ожидающее события. Пример из документации должен помочь вам:

@client.event
async def on_message(message):
    if message.content.startswith('$thumb'):
        channel = message.channel
        await channel.send('Send me that ? reaction, mate')

        def check(reaction, user):
            return user == message.author and str(reaction.emoji) == '?'

        try:
            reaction, user = await client.wait_for('reaction_add', timeout=60.0, check=check)
        except asyncio.TimeoutError:
            await channel.send('?')
        else:
            await channel.send('?')
...