Discord.py 机器人 - 如何根据 ping 回复机器人?

Discord.py Bot - How to make a bot reply depending on the ping?

我正在 Python 中制作一个 Discord 机器人,我想在使用命令 _userinfo 并提及用户时添加一个功能,该机器人将发送有关我提到的用户的信息. (消息应如下所示:_userinfo @Name)。

这是我的:

if message.content.startswith("_userinfo"):
    emb14 = discord.Embed(
        title=f"@{message.author} info:",
        colour=discord.Colour.dark_blue()
    )
    emb14.set_image(url=message.author.avatar_url)
    emb14.add_field(name=f"Name", value=f"{message.author}", inline=True)
    emb14.add_field(name=f"Discord Joined date", value=f"{message.author.created_at}", inline=False)
    emb14.add_field(name=f"Server Joined date", value=f"{message.author.joined_at}", inline=False)
    emb14.add_field(name="Profile Picture", value=":arrow_down: :arrow_down: ", inline=False)
    await message.channel.send(embed=emb14)

但是机器人只发送有关输入命令的人的用户信息。感谢您的帮助!

它只发送关于发送命令的用户的信息的原因是因为你有 message.author 这意味着发送消息的人,如果你想获得关于特定人的信息,你可以这样做:

try:
    user = message.mentions[0]
except IndexError:
    user = message.author   
if message.content.startswith("_userinfo"):
    emb14 = discord.Embed(
        title=f"@{user} info:",
        colour=discord.Colour.dark_blue()
    )
    emb14.set_image(url=user.avatar_url)
    emb14.add_field(name=f"Name", value=f"{user}", inline=True)
    emb14.add_field(name=f"Discord Joined date", value=f"{user.created_at}", inline=False)
    emb14.add_field(name=f"Server Joined date", value=f"{user.joined_at}", inline=False)
    emb14.add_field(name="Profile Picture", value=":arrow_down: :arrow_down: ", inline=False)
    await message.channel.send(embed=emb14)

现在的作用是,如果您 p​​ing 某人,它会发送有关该用户的信息,但如果您不 ping 任何人,它会发送有关执行命令的人的信息