unmute.roles.has(muterole) 失败

unmute.roles.has(muterole) failed

每当我键入以下命令 //unmute 时,它都会显示 This member isn't muted! 尽管我指定的人确实被静音了。几个小时以来,我一直坚持执行此命令,但似乎找不到问题所在。 (静音命令来自this,我改变了一些东西

if (command === "mute") {

  if (!message.member.hasPermission("MANAGE_MESSAGES")) return message.reply("Sorry, you don't have permissions to use this!   \n (*Required permission -* __***MANAGE MESSAGES***__)")

  let tomute = message.guild.member(message.mentions.users.first() || message.guild.members.get(args[0]));
  if (!tomute) return message.reply("Couldn't find user.");
  let muterole = message.guild.roles.find(`name`, "muted");

  //start of create role
  if (!muterole) {
    try {
      muterole = await message.guild.createRole({
        name: "muted",
        color: "#000000",
        permissions: []
      })
      message.guild.channels.forEach(async(channel, id) => {
        await channel.overwritePermissions(muterole, {
          SEND_MESSAGES: false,
          ADD_REACTIONS: false
        });
      });
    } catch (e) {
      console.log(e.stack);
    }
  }
  //end of create role
  let mutetime = args[1];
  if (!mutetime) return message.reply("You didn't specify a time!");

  await (tomute.addRole(muterole.id));
  message.channel.send(`<@${tomute.id}> has been muted for ${ms(ms(mutetime), { long:true })}`);

  setTimeout(function() {
    tomute.removeRole(muterole.id);
    message.channel.send(`<@${tomute.id}> has been unmuted!`);
  }, ms(mutetime));

}

if (command === "unmute") {

  if (!message.member.hasPermission("MANAGE_MESSAGES")) return message.reply("Sorry, you don't have permissions to use this!   \n (*Required permission -* __***MANAGE MESSAGES***__)")

  let unmute = message.guild.member(message.mentions.users.first() || message.guild.members.get(args[0]));
  if (!unmute) return message.reply("Couldn't find user.");
  let muterole = message.guild.roles.find(`name`, "muted");
  if (!unmute.roles.has(muterole)) return message.channel.send("This member isn't muted!");

  await member.removeRole(muterole.id);
  message.channel.send(`<@${unmute.id}> has been unmuted!`);

}

感谢@Profit在主要问题评论区的回答。问题解决了。

.id 添加到 if (!unmute.roles.has(muterole 此处 ))。 之后,现在它应该是这样的:if (!unmute.roles.has(muterole.id)).

.has用于检查指定key的元素是否存在