Discord.py私人讯息

时间:2020-06-02 20:15:02

标签: python discord.py

嗨,我正在尝试制作一个不和谐的bot,该bot使用类似的命令将dm发送给某人

!messagesteve hello world

它会直接向我想要的人发送一条消息...我已经尝试过了,但是没有用

@client.command(pass_context=True)
async def dm(ctx):
    user=await client.get_user_info("381870129706958")
    await client.send_message(user, "test")

我可能是您见过的最糟糕的python菜鸟,所以您能解释一下我该如何解决吗?

1 个答案:

答案 0 :(得分:2)

似乎您使用的是d.py(v0.16.x)的旧文档。最新版本正在重写(v1.x)。

其中一项更改amongst others是自动隐含上下文(您不需要pass_context=True),并且发送消息的语法已更改,如您在示例中所看到的:

@client.command()
async def dm(ctx, member: discord.Member, *, message):
    try:
        await member.send(message)
    except: # this will error if the user has blocked the bot or has server dms disabled
        await ctx.send("Sorry, that user had DMs disabled!")
    else:
        await ctx.send(f"Successfully sent {member} a DM!")

用法(假设前缀为!),命令的用法为:
!dm @Skyonimous Hey there, I'm DMing you from a bot!

*中的参数“ consumes rest”,这意味着后继的参数(message)将作为一个完整的参数,而无论空格数如何,您都可以发送一个如果需要的话,将整个段落发送给用户!

如果您想让我澄清一下,我将非常高兴!


参考: