提问者:小点点

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


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周前工作,现在有一个bug,请帮助我!


共1个答案

匿名用户

似乎没有任何静音角色。 错误清楚地表明找不到未定义的的“id”,而我唯一看到。id使用的地方是在静音角色上。

只是说,您还需要说出控制台说错误在哪里。 仅仅说“这是错误”是没有帮助的。

您可能需要使用以下内容:

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)
    }
};