sorenn
sorenn

Reputation: 31

How to get ID of a message that user is reacting to [discord.py]?

So I'm trying to write a attendance bot for my wow guild that upon using a command would:

While I think I have nailed down the adding reaction to the bot's message and actually storing the data on the spreadsheet, I have no idea how to make it that only the reaction to that particular message that bot sent would count. Right now if you react with, let's say emoji_1 which is responsible for 'dps', to any message on the whole server, bot will also add you to the spreadsheet.

Hence my question, how to refer to the message that user is reacting to ?

Here's part of the code:

@client.command(aliases=["nraid", "newboost"])
async def newraid(ctx, boost_type, date, *, message):
    mes = f"sign up for {boost_type} on {date}. Additional info: \n{message}"
    await ctx.send(mes)

    channel = ctx.channel
    embed = discord.Embed(title="A wild raid has appeared!",
                          description=f"sign up for {boost_type} on {date}. Additional info: \n{message}",
                          color=discord.Color.purple())
    message_ = await channel.send(embed=embed)
    global message_id
    message_id = message_.id
    await message_.add_reaction("🧙")  # dps
    await message_.add_reaction("🛡️")  # tank
    await message_.add_reaction("🏥")  # healer

num = 0
rownum = 1
@client.event
async def on_reaction_add(reaction, user):
     if not user.bot:

That's the part I have no clue about - how to get the ID of the message that user is reacting to and compare it with ID of the message that bot sent.

    if message_id == user.message.id:

        if reaction.emoji == ['🧙']:
            global num, rownum
            discord_name = user.display_name
            role = 'dps'
            num += 1
            rownum += 1
            can_attend = 'yes'
            newrow = [num, discord_name, role, can_attend]
            sheet.insert_row(newrow, rownum)

I would not be surprised if the answer is really simple, but I must admit I have just picked up python and a lot of the stuff, like reading API's documentation, analysing someone's code, can be hard at times and some of the guides on Youtube don't go into details. Any help is much appreciated :)

Upvotes: 2

Views: 4802

Answers (1)

Hassan Serhan
Hassan Serhan

Reputation: 402

You can just type reaction.message.id

Upvotes: 3

Related Questions