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