discord.py не может удалить сообщения автора

Я использую Discord.py версии 1.0.0. Я пытаюсь написать команду echo, которая при получении сообщения отобразит сообщение и удалит команду из чата. Вот пример моего кода.

client = Bot(description="Test bot", command_prefix="&", pm_help = False)

@bot.command(pass_context=True)
async def echo(ctx):
  await client.send(ctx.message)
  await client.delete_message(ctx.message)

Ошибки, которые я получаю, говорят мне, что у ctx нет атрибута с именем delete_message. Я пытался просто удалить (). Я смотрел на других, имеющих что-то похожее, но решения не помогли мне. Любые предложения будут ценны.

2 ответа

Решение

В файле discord.py/rewrite (1.0.0) Delete - это метод сообщения, а не клиента. Это одинаково для каждой функции, влияющей на сообщение / канал / гильдию и т. Д.

Вместо того чтобы делать

await client.delete_message(ctx.message)

попробуй сделать

await ctx.message.delete()

Если вы на 1.0, вы можете потерять pass_context а также client.send должно быть ctx.send, Вы также можете написать сигнатуру функции команды, используя Аргументы только для ключевых слов, так что вы только выводите сообщение, игнорируя &echo

from discord.ext.commands import Bot

client = Bot(description="Test bot", command_prefix="&", pm_help = False)

@client.command()
async def echo(ctx, *, msg):
  await ctx.send(msg)
  await ctx.message.delete()

client.run('token')
Другие вопросы по тегам