角色未通过角色名称跟踪授予用户

时间:2021-07-05 12:40:15

标签: javascript discord.js

我有以下代码:

let role = message.guild.roles.cache.find(rolename => rolename.name === toString(rankname))

message.member.roles.add(role).catch(error => {
  console.log("Error: " + error)
})

我收到以下错误: Error Image

任何帮助将不胜感激,谢谢。 :)

仅供参考:Rankname 是一个由 promise 函数返回的字符串。

1 个答案:

答案 0 :(得分:1)

您正在尝试从缓存中读取角色,但它可能不在其中,因此角色是 undefined,请改用 RoleManager.resolve() 函数:

let role = message.guild.roles.resolve(toString(rankname))

请注意,使用 Snowflake 而不是名称会更好,如果您从 message.author.roles 获取角色的名称,您可能可以使用 id 来代替。