从消息中获取用户对象

Posted

技术标签:

【中文标题】从消息中获取用户对象【英文标题】:Getting a user object from message 【发布时间】:2021-01-27 06:05:38 【问题描述】:

我正在尝试从消息(特别是命令)中获取用户对象 - 示例:

$info Account#0001

有时 Discord 不会注册成员(可能是为了在拥有大量成员的服务器中节省内存),因此您无法 @ 他们并在他们离开频道时获取用户对象。我正在尝试让机器人搜索那个成员#tag,获取他们的 ID,然后它会执行命令的任何操作。

我试过了

message.mentions[0].id

但是它只在用户被 ping 时才有效,有什么想法吗?

【问题讨论】:

【参考方案1】:

在命令中,你可以为用户添加一个参数:

@bot.command()
async def foo(ctx, user: discord.User):
    print(user.id)

这将允许使用提及或用户名#tag。

【讨论】:

以上是关于从消息中获取用户对象的主要内容,如果未能解决你的问题,请参考以下文章

从 std 对象中回显 json 以获取更多值

Discord.py - 从错误对象中获取上下文

从聊天中获取待处理消息

如果其中一个字段存在于 mongoid 的另一个模型中,则获取对象数组

Discord bot 从用户消息中获取照片

如何使用 MS bot 框架从 Teams 私人消息中获取用户上下文