(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
前言:我对 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