Добавление смайлика в сообщение для встраивания - PullRequest
0 голосов
/ 06 февраля 2020

Я искал несколько часов и ничего не нашел, почему это не работает для меня. Вот мой код:

@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 голосов
/ 06 февраля 2020

add_reaction - это метод класса Message, а не Bot. Embed не подкласс Message. Чтобы получить объект Message, связанный с Embed, необходимо сохранить возвращаемое значение channel.send(embed=...)

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