discord.py无法删除作者消息

时间:2018-04-30 20:49:43

标签: python-3.x discord discord.py discord.py-rewrite

我正在使用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 :(得分:4)

在discord.py/rewrite(1.0.0),Delete is a method on the message中,不在客户端上。对于影响消息/频道/公会等的每个功能,这都是相同的。

而不是做

await client.delete_message(ctx.message)

尝试做

await ctx.message.delete()

答案 1 :(得分:1)

如果您使用的是1.0,则可能会丢失pass_contextclient.send应该为ctx.send。您还可以使用Keyword-Only Arguments编写命令的函数签名,以便仅回显消息,忽略&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')