Discord.js 使用用户定义的角色的Autorole

Discord.js 使用用户定义的角色的Autorole,discord.js,Discord.js,我尝试执行一个Autorole命令,然后它将用户想要的角色赋予每个新成员 我的代码: main.js: const mentionedRole = require("./cmds/autorole") bot.on('guildMemberAdd', member => { member.roles.add(mentionedRole); }) autorole命令: module.exports.run = async (bot, message, args)

我尝试执行一个Autorole命令,然后它将用户想要的角色赋予每个新成员

我的代码: main.js:

const mentionedRole = require("./cmds/autorole")  
bot.on('guildMemberAdd', member => {

member.roles.add(mentionedRole);
})
autorole命令:

module.exports.run = async (bot, message, args) => {



    const mentionedRole = message.mentions.roles.first();
  
    if (!mentionedRole) return message.channel.send(`I cannot to use the role: ${mentionedRole}`);
  
    message.channel.send(`Autorole successfully added (${mentionedRole}).`);
  }
它给出的错误是:

Supplied roles is not an Role, Snowflake or Array or Collection of Roles or Snowflakes.

要通过提及
message.notices.roles.first()赋予角色,您需要
@testRole
所以我建议这样做:

   const mentionedRole = message.guild.roles.cache.find(r => r.name === args.slice(1).join(" "));
  
    if (!mentionedRole) return message.channel.send(`I cannot to use the role: ${mentionedRole}`);
  
    message.channel.send(`Autorole successfully added (${mentionedRole}).`);
现在它应该是这样的:
例如,autorole testRole

not?autorole@testRole

通过提及
消息提供角色。提及.roles.first()
您需要
@testRole
所以我建议这样做:

   const mentionedRole = message.guild.roles.cache.find(r => r.name === args.slice(1).join(" "));
  
    if (!mentionedRole) return message.channel.send(`I cannot to use the role: ${mentionedRole}`);
  
    message.channel.send(`Autorole successfully added (${mentionedRole}).`);
现在它应该是这样的:
例如,autorole testRole

不是吗?autorole@testRole

不是错误,这两种方式都不重要,它们都会导致角色类不是错误,这两种方式都不重要,它们都会导致角色类