(discord.py) 添加对不和谐机器人发布的嵌入的反应

(discord.py) Adding reactions to an embed posted by a discord bot

前言:我对 Python 非常缺乏经验,并且从未参加过 class。这是我第一次编写 Python/making discord 机器人。

在这里我有一个由特定消息触发的嵌入。我已经在使用不和谐的票务机器人(创建新频道,这些频道对回复消息的人来说是私有的)(计划在未来制作我自己的频道)并且每次创建新票时,都会发送此嵌入。 我在这里看到关于通过引用不和谐服务器上的频道 ID 向嵌入添加反应的帖子,但是我不能这样做。 嵌入每次都会发送到一个全新的频道我想添加反应。我不确定我是否不太了解 Python 足以实际执行此操作,或者是否实际上无法完成。无论如何,在尝试解决此问题时,我们将不胜感激。明确一点:我想在创建的每个嵌入中添加反应(不是在一个特定的频道中,而是在动态中创建的)。

import discord
import os


client = discord.Client()

@client.event
async def on_ready():
    print('We have logged in as {0.user}'.format(client))

@client.event
async def on_message(message):

    if message.content.startswith('Welcome to Parakeets Mods'):
      embed = discord.Embed(title="Product Select", description="React to the emojis corresponding with what you need", color=0xE91E63)
      embed.add_field(name="​", value="<:dmu:841700430764310559> = ***-*** \n\n <:damascus:841700430492860466> = ***-*** \n\n <a:prestige10:841700430010777651> = ***-*** \n\n  <:ruavt:856345494674472980> = ***-*** \n\n ❓ = ***Questions***")
      await message.channel.send(embed=embed)
    #insert add reaction to above embed

client.run(os.getenv('TOKEN'))    

您可以定义要发送的消息并对其添加反应

msg = await message.channel.send(embed=embed)
await msg.add_reaction("✅")

PS: 添加反应时必须传递一个unicode表情符号,才能在不和谐中获得\:emoji:,发送并复制消息

您可以使用 add_reaction("emoji_here") 添加反应。您还需要定义机器人发送的消息以使其工作。

来自常见问题解答的引用:https://discordpy.readthedocs.io/en/stable/faq.html#how-can-i-add-a-reaction-to-a-message

更新代码:

import discord
import os


client = discord.Client()

@client.event
async def on_ready():
    print('We have logged in as {0.user}'.format(client))

@client.event
async def on_message(message):

    if message.content.startswith('Welcome to Parakeets Mods'):
      embed = discord.Embed(title="Product Select", description="React to the emojis corresponding with what you need", color=0xE91E63)
      embed.add_field(name="​", value="<:dmu:841700430764310559> = ***-*** \n\n <:damascus:841700430492860466> = ***-*** \n\n <a:prestige10:841700430010777651> = ***-*** \n\n  <:ruavt:856345494674472980> = ***-*** \n\n ❓ = ***Questions***")
      embed_message = await message.channel.send(embed=embed)
      await embed_message.add_reaction("")
 

client.run(os.getenv('TOKEN'))    

稍后谢谢我:D