discord.py无法删除作者消息

问题描述 投票:1回答:2

我正在使用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”的属性。我尝试过只删除()。我看过其他人有类似的问题,但解决方案并没有帮助我。任何建议将不胜感激。

python-3.x discord discord.py discord.py-rewrite
2个回答
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.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')
© www.soinside.com 2019 - 2024. All rights reserved.