You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Discord.py Bot开发:如何实现带提及参数的_userinfo用户查询功能

问题原因

你的代码中所有用户信息都取自message.author对象,该对象永远对应当前发送_userinfo命令的用户,因此无论你@哪个用户,返回的都是命令发送者的信息。

解决方法

你需要从消息的提及列表中提取目标用户,再用目标用户对象替换代码中所有的message.author。为了避免未@用户时的报错,还要补充参数校验逻辑。
修改后的参考代码如下:

if message.content.startswith("_userinfo"):
    # 校验是否有提及的用户
    if not message.mentions:
        await message.channel.send("请指定要查询的用户,正确格式为:`_userinfo @目标用户名`")
        return
    # 取第一个被提及的用户作为查询目标
    target_user = message.mentions[0]
    emb14 = discord.Embed(
        title=f"@{target_user} info:",
        colour=discord.Colour.dark_blue()
    )
    # 注:如果你使用的是discord.py v2.x版本,avatar_url需要替换为avatar.url
    emb14.set_image(url=target_user.avatar_url)
    emb14.add_field(name="Name", value=f"{target_user}", inline=True)
    emb14.add_field(name="Discord Joined date", value=f"{target_user.created_at}", inline=False)
    emb14.add_field(name="Server Joined date", value=f"{target_user.joined_at}", inline=False)
    emb14.add_field(name="Profile Picture", value=":arrow_down: :arrow_down: ", inline=False)
    await message.channel.send(embed=emb14)

内容的提问来源于stack exchange,提问作者Aaron

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 17:45:03