如何将DM发送给命令作者?

时间:2020-07-19 02:59:52

标签: discord.py discord.py-rewrite

我正在尝试制作一个向输入命令的用户发送DM的机器人,但是当我输入命令时,在PyCharm或Discord中的DM中我没有得到错误代码。我在做错什么吗?

@client.command(aliases=['manage'])
async def oversee(message):
    await message.author.send('Hello World!')

1 个答案:

答案 0 :(得分:1)

根据discord.py documentation,当您使用commands框架创建命令时,第一个参数必须ctx

@client.command(aliases=['manage'])
async def oversee(ctx):
    await ctx.author.send('Hello World!')

如果是on_message事件,则您的函数将按预期运行:

@client.event
async def on_message(message):
    if message.content.startswith("!manage") or message.content.startswith("!oversee"):
        await message.author.send('Hello World!')

但是,我不建议使用on_message事件来创建命令,而使用commands框架会更轻松,更高效。