Discord.Py为嵌入的邮件添加反应

时间:2020-07-17 17:23:55

标签: python discord

因此,我试图在机器人通过文本通道发送的消息中添加三种不同的反应(表情符号)。

用户在其DM中填写表格,然后将消息发送到名为“ admin-bug”的文本通道中,然后服务器的管理员可以对三种不同的表情符号做出反应:

  • 固定
  • 不会被固定
  • 不是bug

然后,根据管理员按下的表情符号,邮件将被传输到文本通道。

但是!我似乎无法弄清楚您实际上是如何将响应添加到消息本身的,我做了很多谷歌搜索,但找不到答案。

代码:

import discord
from discord.ext import commands

TOKEN = '---'
bot = commands.Bot(command_prefix='!!')

reactions = [":white_check_mark:", ":stop_sign:", ":no_entry_sign:"]


@bot.event
async def on_ready():
    print('Bot is ready.')


@bot.command()
async def bug(ctx, desc=None, rep=None):
    user = ctx.author
    await ctx.author.send('```Please explain the bug```')
    responseDesc = await bot.wait_for('message', check=lambda message: message.author == ctx.author, timeout=300)
    description = responseDesc.content
    await ctx.author.send('````Please provide pictures/videos of this bug```')
    responseRep = await bot.wait_for('message', check=lambda message: message.author == ctx.author, timeout=300)
    replicate = responseRep.content
    embed = discord.Embed(title='Bug Report', color=0x00ff00)
    embed.add_field(name='Description', value=description, inline=False)
    embed.add_field(name='Replicate', value=replicate, inline=True)
    embed.add_field(name='Reported By', value=user, inline=True)
    adminBug = bot.get_channel(733721953134837861)
    await adminBug.send(embed=embed)
    # Add 3 reaction (different emojis) here

bot.run(TOKEN)

3 个答案:

答案 0 :(得分:2)

Messagable.send 返回它发送的消息。因此,您可以使用该消息对象为其添加反应。简单地说,您必须使用一个变量来定义您由机器人发送的消息。

embed = discord.Embed(title="Bug report")
embed.add_field(name="Name", value="value")
msg = await adminBug.send(embed=embed)

您可以使用 msg 添加对该特定消息的反应

await msg.add_reaction("?")

阅读 discord.py 文档了解详细信息。

答案 1 :(得分:0)

discord.py文档上有一个有关添加反应的FAQ帖子,其中包含多个示例和详细说明,此外Messageable.send返回发送的消息,因此您可以在其中使用Message.add_reactionhttps://discordpy.readthedocs.io/en/neo-docs/faq.html#how-can-i-add-a-reaction-to-a-message

答案 2 :(得分:0)

您需要将嵌入保存为变量,这样您就可以添加反应。

message = await adminBug.send(embed=embed)  //save embed as "message"
await message.add_reaction('xxx')           //add reaction to "message"