【问题标题】:Discord - Get user's server nickname from idDiscord - 从 id 获取用户的服务器昵称
【发布时间】:2021-09-19 02:52:20
【问题描述】:

如何使用discord.Client()从id中获取用户的服务器昵称?

user = await client.fetch_user(ID)
print(user.name) # works
print(user.display_name) # works
print(user.nick) # does not work
print(user.avatar_url) # works

user.display_nameuser.name 的值相同,都是打印用户名,可能是bug?

有什么方法可以将discord.user.User 转换为discord.member.Member

【问题讨论】:

  • 您能否提供更多详细信息,例如您如何获取用户详细信息以及您收到了哪些错误消息。
  • 我正在从用户 ID await client.fetch_user() 获取用户对象,错误为 'user' has no object called 'nick'
  • 参考此文档:discordpy.readthedocs.io/en/stable/api.html#id7 用户没有nick 属性
  • 我已经知道用户没有 nick 属性,我的问题是如何以其他方式获得它
  • 你试过display_name吗?

标签: python discord


【解决方案1】:

如果以下内容回答了您的问题,请告诉我:

name = user.name
guilds = await client.fetch_guilds().flatten()
for guild in guilds:
    if guild.get_member_named(name):
        member = guild.get_member_named(name)
        print(member.nick)

【讨论】:

  • 它永远不会超过这条线if guild.get_member_named(name): guild.get_member_named(name) 返回None
【解决方案2】:

我想我通过将 User 对象转换为 Member 找到了解决方案。

member = await commands.MemberConverter().convert(ctx, 'STRING_ID')

【讨论】:

    猜你喜欢
    • 2021-09-15
    • 1970-01-01
    • 2021-01-21
    • 2021-04-05
    • 2020-07-05
    • 2021-04-12
    • 2021-10-06
    • 2018-08-21
    • 2017-08-04
    相关资源
    最近更新 更多