Нужна помощь с моей включенной командой для discord.js

#javascript #discord.js

#javascript #discord.js

Вопрос:

По сути, эта команда создает одну серьезную проблему и заключается в том, что тот факт, что когда пользователь отключен, он не будет включен, потому что команда не отвечает на команду отключения звука

 const Discord = require('discord.js');
const fs = module.require('fs');

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

    if (!message.member.hasPermission('MANAGE_MESSAGES')) return;

    let unMute = message.mentions.members.first() || message.guild.members.cache.get(args[0]);
    if (!unMute) {
        let exampleEmbed = new Discord.MessageEmbed()
        .setDescription("__UNMUTE INFO__")
        .setColor(client.colors.success)
        .setThumbnail(client.user.displayAvatarURL())
        .addField(`Unmute Command`, `Unmutes a mentioned user.`)
        .addField(`Unmute Command`, `Unmutes User By Id.`)
        .addField("Example", `${client.config.prefix}Unmutes @user`)
        .addField("Example", `${client.config.prefix}Unmutes  @id`)
    
        message.channel.send(exampleEmbed);
    return;
}

    let role = message.guild.roles.cache.find(r => r.name === 'Muted');
        message.channel.send(`Please Check roles to be sure user was unmuted`);
    if (!role || !unMute.roles.cache.has(role.id)) return message.channel.send(`That user is not muted.`);

    if (!role || !unMute.roles.cache.has(User.id)) return message.channel.send(`----`);
    let guild = message.guild.id;
    let member = client.mutes[unMute.id];
    if (member) {
        if (member === message.guild.id) {
            delete client.mutes[unMute.id];

            fs.writeFile("./mutes.json", JSON.stringify(client.mutes), err => {
                if (err) throw err;
            })

            await unMute.roles.remove(role.id);
            message.channel.send(`:white_check_mark: ${unMute} Has been unmuted.`);
        }
        return;
    }
    await unMute.roles.remove(role.id);
    message.channel.send(`:white_check_mark: ${unMute} Has been unmuted.`);
    
    message.delete();


}


module.exports.config = {
    name: 'unmute',
    description: 'Unmute a user.',
    access: 'Manage Messages Permission',
    usage: 'unmute @vision'
}

 

Я также получаю сообщение об ошибке при ручном отключении пользователя
(node:6604) UnhandledPromiseRejectionWarning: ReferenceError: User is not defined

Любая форма помощи будет высоко оценена и спасибо за ваше время.

Ответ №1:

В строке if (!role || !unMute.roles.cache.has(User.id)) return message.channel.send('----') вы ссылаетесь на переменную User , но она нигде не определена, и даже если бы она была определена, вам нужна роль, а не член или пользователь. Я почти уверен, что вместо этого это должно быть Role.id . Кроме того, я не уверен в этом на 100%, но я думаю, что этого просто Role не Role.id должно быть.

Комментарии:

1. я пытался использовать Role.id но это выдает мне ошибку, но я попробую роль, и если это не сработает, есть ли у вас какие-либо другие предложения? или, если вам нужно взглянуть на полный код, я предоставлю