簡體   English   中英

Discord.py Bot - 如何根據 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 任何人,它將發送有關執行該命令的人的信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM