Как сделать так, чтобы on_reaction_add срабатывал только при реакции на сообщение бота

#python #discord #discord.py

#python #Discord #discord.py

Вопрос:

Это код, который у меня есть сейчас:

 # Reaction events
@client.event
async def on_reaction_add(reaction, user):
    if reaction.message.author == "Among Us Bot#3079":
        emoji = reaction.emoji
        if user.bot:
            return
        if emoji == '✅':
            fixed_channel = client.get_channel(742888039872856067) # General / main chat channel ID
            await fixed_channel.send(f'{user.mention} is ready to play! [{reaction.count - 1}/10]')
    else:
        print("BRUH")


@client.event
async def on_reaction_remove(reaction, user):
    if reaction.message.author == "Among Us Bot#3079":
        emoji = reaction.emoji
        if user.bot:
            return
        if emoji == '✅':
            fixed_channel = client.get_channel(742888039872856067) # General / main chat channel ID
            await fixed_channel.send(f'{user.mention} is no longer ready to play! [{reaction.count - 1}/10]')
    else:
        print("BRUH x2")
  

Прямо сейчас, когда вы реагируете на любое сообщение с проверкой, оно выводит «BRUH» в консоль. Перед if reaction.message.author == "Among Us Bot#3079": , если была реакция проверки на любое сообщение, было бы сказано «{пользователь} готов к игре! [0/10]».

Комментарии:

1. Измените его на if reaction.message.author.name == "Among Us Bot#3079":

Ответ №1:

reaction.message.author является объектом, однако, когда он преобразуется в строку, он выводится как имя пользователя. Попробуйте использовать if reaction.message.author.id == client.user.id вместо этого.