discord.py не может удалить сообщения автора - PullRequest
0 голосов
/ 30 апреля 2018

Я использую 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 ]

0 голосов
/ 01 мая 2018

Если вы на 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')
0 голосов
/ 01 мая 2018

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

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

await client.delete_message(ctx.message)

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

await ctx.message.delete()
...