将用户的反应与向他们发送 DM 相结合让我很难过。
我的项目通过在底部添加一个反应的嵌入来工作,当用户单击表情符号时,它将向用户发送一组说明(现在我只是使用“测试”这个词)。
这是我到目前为止所拥有的:
@client.event
async def on_message(message):
if message.content.startswith('.add'):
embed = discord.Embed(title="Embed Title", color=0x6610f2)
embed.add_field(name="__**Steps to get DM'd:**__", value="""
• Step 1
• Step 2
• Step 3
• Step 4
• Step 5
""")
msg = await message.channel.send(embed=embed)
await msg.add_reaction('\U0001F91D')
@client.event
async def on_raw_reaction_add(payload):
if payload.user_id == client.user.id:
return
if str(payload.emoji) == '\U0001F91D':
channel = await client.fetch_channel(payload.channel_id)
message = await channel.fetch_message(payload.message_id)
await message.author.send('Test')
我只是不确定如何在 on_message() 函数之外获取用户 ID,因为我知道如何使 on_reaction_add 工作的唯一方法是在它自己的客户端事件中。我什至不确定我是否正确处理了 DM 用户方面。
使用 Discord.py 的异步版本