Discord.py Bot -如何使Bot回复取决于ping?



我正在制作一个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任何人它会发送关于执行命令的人的信息

相关内容

  • 没有找到相关文章

最新更新