错误wtf UnMute命令:无法读取未定义的属性“ id”

时间:2020-06-26 12:11:46

标签: node.js discord discord.js

const { MessageEmbed } = require("discord.js");

module.exports = {
  name: 'unmute',
  async execute (client, message, args) {

  let user = message.guild.member(message.mentions.users.first());
  let muteRole = message.guild.roles.cache.find(r => r.name === 'Muted');

  if (!user.roles.cache.has(muteRole.id)) return message.reply("Is not Muted");
  user.roles.remove(muteRole.id);

     }
};

此代码在2周前有效,现在有一个错误,请帮助我!

1 个答案:

答案 0 :(得分:0)

似乎没有任何Muted角色。该错误清楚地说明了Cannot find 'id' of undefined,并且我看到的.id唯一使用的是Muted角色。

只需说一遍,您还需要说出控制台指出错误的位置。只是说“这是错误”没有帮助。

您可能要使用此:

const { MessageEmbed } = require("discord.js")

module.exports = {
    name: 'unmute',
    async execute(message, args) {
       var user_to_mute = message.mentions.user.first()
          .catch(err) {
               console.error(err)
               return message.reply("Could not find user in cache!")
          }
       var muted_role = message.guild.roles.cache.find(x => x.name == "Muted")
          .catch(err) {
               console.error(err)
               return message.reply("Could not find role in cache!")
          }
       if (user_to_mute.has(muted_role)) return message.reply("User isn't muted!")
       user_to_mute.removeRole(muted_role).catch(console.error)
    }
};