(discord.py) 向不和谐机器人发布的嵌入添加反应
Posted
技术标签:
【中文标题】(discord.py) 向不和谐机器人发布的嵌入添加反应【英文标题】:(discord.py) Adding reactions to an embed posted by a discord bot 【发布时间】:2021-09-04 23:03:57 【问题描述】:前言:我对 Python 非常缺乏经验,也从未为它上过课。这是我第一次编写 Python 代码/制作 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'))
【问题讨论】:
【参考方案1】:您可以使用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
【讨论】:
【参考方案2】:您可以定义要发送的消息并对其添加反应
msg = await message.channel.send(embed=embed)
await msg.add_reaction("✅")
PS:你必须在添加反应时传递一个 unicode emoji,才能在不和谐中获得\:emoji:
,发送并复制消息
【讨论】:
在移动设备上,您可以发送:emoji:
(代码块中的表情符号)来获取它,然后看起来像这样:<:emoji:12387592034>
以上是关于(discord.py) 向不和谐机器人发布的嵌入添加反应的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 discord.py 使用我的不和谐机器人编辑嵌入颜色
使用 discord.py 解析嵌入不和谐的 json 数据
使用 Discord py 使用 Discord 按钮编辑嵌入描述