所以我想为我的哇公会写一个考勤机器人,当使用命令时会:
虽然我认为我已经确定了对僵尸程序消息的增加反应,并且实际上将数据存储在电子表格中,但我不知道如何使只有对僵尸程序发送的特定消息的反应才有意义。现在,如果您对整个服务器上的任何消息做出回应(例如负责'dps'的emoji_1),则bot也会将您添加到电子表格中。
因此,我的问题是,如何引用用户正在响应的消息?
这是代码的一部分:
@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:
这是我不知道的部分-如何获取用户正在响应的消息的ID并将其与机器人发送的消息的ID进行比较。
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)
如果答案真的很简单,我不会感到惊讶,但是我必须承认,我刚刚学习了python,并且很多东西(例如阅读API的文档,分析某人的代码)有时会很困难,并且有些YouTube上的指南不再详述。任何帮助都非常感激:)
答案 0 :(得分:0)
您只需键入reaction.message.id