将表情符号添加到嵌入消息中

时间:2020-02-06 00:38:08

标签: python discord.py-rewrite

我已经寻找了好几个小时,但对于为什么这对我不起作用我一无所获。 这是我的代码:

@bot.command()
async def ticket(ctx):
  name = "tickets"
  category = discord.utils.get(ctx.guild.categories, name=name)
  guild = ctx.message.guild
  ticket_id = randint(0, 100)
  ticket_channel = await guild.create_text_channel(f"ticket-0{ticket_id}", category=category)
  embed = discord.Embed(title="Tickets", description="Support will be with you shortly.\nTo close this ticket, react with :lock:.")
  await ticket_channel.send(embed=embed)
  await bot.add_reaction(embed, emoji=":lock:")
  while True:
    await bot.wait_for_reaction(emoji="\N{LOCK}", message=embed)
    await bot.delete_channel(ticket_channel)

这是我得到的错误:

Ignoring exception in command ticket:
Traceback (most recent call last):
  File "/home/runner/.local/share/virtualenvs/python3/lib/python3.7/site-packages/discord/ext/commands/core.py", line 83, in wrapped
    ret = await coro(*args, **kwargs)
  File "main.py", line 40, in ticket
    await bot.add_reaction(embed, emoji=":lock:")
AttributeError: 'Bot' object has no attribute 'add_reaction'

任何帮助解决此问题的方法,我们将不胜感激。

1 个答案:

答案 0 :(得分:0)

add_reactionMessage类的方法,而不是BotEmbed不属于Message的子类。要获取与Message关联的Embed对象,您需要存储channel.send(embed=...)的返回值

message = await ticket_channel.send(embed=embed)
await message.add_reaction('\N{LOCK}')