【问题标题】:DiscordJS 在获取成员后无法获取 _roles 字段
【发布时间】:2022-01-23 16:50:54
【问题描述】:

我正在获取一个成员:

//...
private user: GuildMember;
//...

try { 
    this.user = await interaction.guild?.members.fetch(SomeUserId)
}catch (e: unknown) {
    return await interaction.editReply("Couldn't find the specific user the in server.")
}

this.user 将包含有关该特定用户的所有信息。它还包括一个字段_roles:['123456789', '123456789']。我怎样才能得到这个特定的领域?请注意,在“GuildMember 类型上不存在 _roles”中执行以下结果:

console.log(this.user._roles)

有什么方法可以访问这个字段?

【问题讨论】:

  • 根据discord.js.org/#/docs/main/stable/class/…,fetch 方法将返回一个 GuildMembers 列表,该列表应该具有属性roles 而不是_roles。这能满足您的需求吗?
  • 是的。刚刚也看到了。我不完全确定为什么它将_roles 作为GuildMember 对象之外的数组提供,所以我有点困惑。在下面发布了对我有用的答案。

标签: javascript typescript discord discord.js


【解决方案1】:

找到了!

...
private user: GuildMember | undefined; // Make sure to add undefined here too. Since .fetch returns a GuildMember or undefined
...

//To get that array use:
Array.from(this.user.roles.cache.keys())

//To get the Collection:
this.user.roles.cache.keys()

把这个留给那个在 8 年后也有同样问题的随机人。

【讨论】:

    猜你喜欢
    • 2021-10-20
    • 2019-03-04
    • 2021-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-27
    • 2019-04-17
    • 1970-01-01
    相关资源
    最近更新 更多