Python 如何将discord.py bot私人/直接消息发送给';他不是作者吗?
假设我想制作一个具有“戳”功能的机器人(当有人说“!poke@user#0000”时,aka会向用户发送一个pm,说“Boop”),我该怎么做?当我这样做时,它工作得非常完美:Python 如何将discord.py bot私人/直接消息发送给';他不是作者吗?,python,discord,discord.py,Python,Discord,Discord.py,假设我想制作一个具有“戳”功能的机器人(当有人说“!poke@user#0000”时,aka会向用户发送一个pm,说“Boop”),我该怎么做?当我这样做时,它工作得非常完美: @bot.command(pass_context=True) async def poke(ctx, message): await client.send_message(ctx.message.author, 'boop') 但前提是我想戳一下信息的作者。我要捅谁? 我知道discord.py文档说我可以
@bot.command(pass_context=True)
async def poke(ctx, message):
await client.send_message(ctx.message.author, 'boop')
但前提是我想戳一下信息的作者。我要捅谁?
我知道discord.py文档说我可以使用:
start_private_message(user)
但我不知道用什么来代替用户。实际上比这简单
@bot.command(pass_context=True)
async def poke(ctx, member: discord.Member):
await bot.send_message(member, 'boop')
send_message
包含私人消息的逻辑,因此您不必自己使用start_private_message
。:discord.Member
被称为转换器,并且被描述为我可能会对这篇文章进行一些修改,但最新版本的内容如下:
@bot.command():
async def poke(ctx, user: discord.Member=None):
if user is None:
await ctx.send("Incorrect Syntax:\nUsage: `!poke [user]`")
await user.send("boop")
if user is None:
块是可选的,但如果您希望在命令使用不正确时显示错误消息,则该块非常有用