我正在制作一个Python中的Discord bot,我想添加一个功能,当我使用命令_userinfo
并提到用户时,bot将发送有关我提到的用户的信息。(消息应该是这样的:_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)
但是bot只向用户发送关于输入命令的人的信息。谢谢你的帮助!
它只发送有关发送命令的用户的信息的原因是因为您有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)
它现在的作用是如果你ping某人它会发送关于那个用户的信息,但如果你不ping任何人它会发送关于执行命令的人的信息