Javascript (节点:13848)未处理的PromisejectionWarning:TypeError:message.member.roles.some不是函数

Javascript (节点:13848)未处理的PromisejectionWarning:TypeError:message.member.roles.some不是函数,javascript,discord.js,Javascript,Discord.js,我正在尝试发出kicka命令,但由于此错误,它无法工作。我得到“(节点:13848)未处理的PromisejectionWarning:TypeError:message.member.roles.some不是函数” 我的代码'client.on('message',async message=>{ 如果(!message.content.startsWith(prefix)| | message.author.bot)返回 如果您的discord.js版本为12.0.0或更高版本,则为mess

我正在尝试发出kicka命令,但由于此错误,它无法工作。我得到“(节点:13848)未处理的PromisejectionWarning:TypeError:message.member.roles.some不是函数”

我的代码'client.on('message',async message=>{ 如果(!message.content.startsWith(prefix)| | message.author.bot)返回


如果您的discord.js版本为12.0.0或更高版本,则为
message.member.roles.cache.some()
。这还包括其他更改,如
message.guild.members.get(args[0])
现在为
message.guild.members.cache.get(args[0])
。这是因为新添加的管理器。您可以在上阅读有关v12更改的更多信息。如果您不在v12上,则代码中的
message.member.roles
很可能已被覆盖,不再是集合。

我忘了告诉您,在尝试执行kick命令时出现错误!如果
message.member.roles。某些
未被覆盖一个函数,它意味着
message.member.roles
不是数组。例如,通过执行
console.log
检查它是什么
const args = message.content.slice(prefix.length).split(/ +/);
const command = args.shift().toLowerCase();

if(command === "kick") {
    if(!message.member.roles.some(r=>["Administrator", "Moderator"].includes(r.name)) )
      return message.reply("Sorry, you don't have permissions to use this!");
    let member = message.mentions.members.first() || message.guild.members.get(args[0]);
    if(!member)
      return message.reply("Please mention a valid member of this server");
    if(!member.kickable) 
      return message.reply("I cannot kick this user! Do they have a higher role? Do I have kick permissions?");
    let reason = args.slice(1).join(' ');
    if(!reason) reason = "No reason provided";

    await member.kick(reason)
      .catch(error => message.reply(`Sorry ${message.author} I couldn't kick because of : ${error}`));
    message.reply(`${member.user.tag} has been kicked by ${message.author.tag} because: ${reason}`);

  }});`