[英]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)
現在這樣做的是,如果您 ping 某人,它將發送有關該用戶的信息,但如果您不 ping 任何人,它將發送有關執行該命令的人的信息
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.