我正在使用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”的属性。我尝试过只删除()。我看过其他人有类似的问题,但解决方案并没有帮助我。任何建议将不胜感激。
在discord.py/rewrite(1.0.0)中,Delete is a method on the message,而不是客户端。对于影响消息/频道/公会等的每个功能都是一样的。
而不是做
await client.delete_message(ctx.message)
试着做
await ctx.message.delete()
如果你在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')