如何从 ID discord.py 中获取成员对象

Posted

技术标签:

【中文标题】如何从 ID discord.py 中获取成员对象【英文标题】:How to get member object from Id discord.py 【发布时间】:2021-03-27 14:37:23 【问题描述】:

我有一个用户 ID,但是我希望能够将其转换为成员对象。 我的机器人有一个排行榜,并且商店使用用户不和谐 ID 作为键。我希望能够使用这些 id 来获取成员对象。即使该用户不在服务器中,我也希望能够访问它。 这可能吗,如果可以,我该怎么做

【问题讨论】:

【参考方案1】:

你可以在一行代码中做到这一点:

member_obj = ctx.guild.get_member(user_id)

例如,您可以在函数中使用它:

import discord
from discord.ext import commands

@client.command()
async def id_to_name(ctx, *, id):
    member_obj = ctx.guild.get_member(user_id)
    await ctx.send(f'ID to name: member_obj.display_name')

【讨论】:

当我使用它时,它总是返回 discord.ext.commands.errors.CommandInvokeError: 命令引发异常:AttributeError: 'Context' object has no attribute 'get_member' @noaathholm 尝试改用ctx.guild.get_member()ctx.get_member() ctx.guild.get_members() 工作但它正在返回 none 你知道是什么原因造成的吗? 如果您尝试打印不和谐的项目,它不返回任何内容是正常的。您需要将其用作方法,例如:member_obj.mention 或类似的东西。永远记住,discord 对象不是字符串或整数。【参考方案2】:

你可以做两件事中的任何一件。

如果你想使用 ctx:

ctx.author.mention

#如果你想使用会员的东西。

@Bot.command()

async def example(ctx, member : discord.Member):

       await ctx.send(f"namemember.mention or ctx.authour.mention

【讨论】:

这不能回答 OP 的问题。他们问的是如何从 Discord.py 中的 ID 获取 Member 对象,而不是如何提及用户。

以上是关于如何从 ID discord.py 中获取成员对象的主要内容,如果未能解决你的问题,请参考以下文章

discord.py 你能从 discord 标签中获取用户对象吗?

如何获取对 discord.py 中的消息做出反应的成员列表?

如何使用新的 discord.py 版本获取不和谐服务器中所有成员的列表?

如何从 discord.py 中的文本通道获取所有消息的数组?

从用户名获取 Discord 用户 ID

从 discord.py 中的提及中获取用户 ID