【发布时间】:2021-10-10 01:34:44
【问题描述】:
将用户的反应与向他们发送 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 的异步版本
【问题讨论】:
-
用你自己的话说,你有
if payload.user_id == client.user.id,那是为了什么?它是如何工作的?你能想出一种方法来利用这些信息来解决你的问题吗? -
如果对消息做出反应的用户是机器人,则返回。我想我可以在
payload.user_id控制DM 功能的地方做一些事情,因为它应该有做出反应的人的用户ID。你对这个想法有什么看法? @KarlKnechtel -
别问我;询问代码 - 尝试一下。
标签: python discord.py