как редактировать сообщение бота отправленное в ответ на команду (discord.py)
@bot.command()
async def roulette(ctx, message):
print(message)
await ctx.send('{0} выпадает'.format(randint(1,6)))
for i in range(0, 10):
print(message)
await message.edit(content=i) # на этой строке возникает ошибка
sleep(0.2)
Мысль этого вопроса - изменение последнего отправленного сообщения ботом и исправление ошибки. Заранее спасибо :3
Ответы (1 шт):
Ваша функция принимает 2 аргумента - ctx и message.
Первый (ctx) в функцию передает библиотека Discord-py, когда вы вызываете функцию. Это контекст команды. Из него можно получить канал, сообщение, автора, сервер и другую информацию.
Второй аргумент (message) принимает значение первого слова после !roulette, где ! - префикс вашего бота. То есть, при отправке команды !roulette сообщение1 сообщение2, в переменную message будет записана строка 'сообщение1'.
Ошибка возникает потому, что вы пытаетесь отредактировать не сообщение, а переменную message, которая является простой строкой типа str.
Чтобы все работало корректно, вам нужно создать объект сообщения при его первой отправке:
msg = await ctx.send('{0} выпадает'.format(randint(1,6)))
А затем изменять уже этот объект:
await msg.edit(content=i)