discord. js UnhandledPromiseRejectionWarning: TypeError: Невозможно прочитать свойство 'kickable' из неопределенного - PullRequest
0 голосов
/ 09 апреля 2020

Вчера я мог запустить этот скрипт. Сегодня я получаю сообщение об ошибке

(узел: 29568) UnhandledPromiseRejectionWarning: TypeError: Невозможно прочитать свойство 'kickable' из неопределенного

Я использую версию "discord. js": 12.1.1 - Я надеюсь, что кто-то может заметить, что я здесь делаю неправильно ... потому что это сводит меня с ума.

Ниже вы можете найти моего кикшера. js - скрипт + мой индекс. js скрипт -> https://pastebin.com/7tLkuU5p

const Discord = require("discord.js");

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

    if (message.member.hasPermission("KICK_MEMBERS")) {

        if (!message.mentions.users) return message.reply('You must tag 1 user.');

        else {

            const channel = message.guild.channels.cache.get(696692048543088691);
            const member = message.mentions.members.first();
            let reason = message.content.split(" ").slice(2).join(' ');

            if (member.kickable == false) return message.channel.send("That user cannot be kicked!")

            else {

                if (!reason) reason = (`No reason provided.`);

                await member.send(`You have been kicked from **${message.guild.name}** with the reason: **${reason}**`)
                    .catch(err => message.channel.send(`⚠ Unable to contact **${member}**.`));

                await member.kick(reason);

                const kickEmbed = new MessageEmbed()
                    .setAuthor(member.user.tag, member.user())
                    .setThumbnail(member.user.avatarURL())
                    .setColor("#ee0000")
                    .setTimestamp()
                    .addField("Kicked By", message.author.tag)
                    .addField("Reason", reason);

                await channel.send(kickEmbed);

                console.log(`${message.author.tag} kicked ${member.user.tag} from '${message.guild.name}' with the reason: '${reason}'.`);

            }
        }
    } else {
        message.channel.send("You do not have permission to use kick.");
        return;
    }
}


module.exports.help = {
    name: "kickuser"
}

Я надеюсь, что кто-то может мне помочь. Заранее спасибо.

1 Ответ

1 голос
/ 09 апреля 2020

message.mentions.users всегда оценивается как true, потому что это объект, и чтобы проверить, есть ли в сообщении какие-либо упоминания, вы можете сделать:

    if(!message.mentions.members.first()) return message.reply('You must tag 1 user.');

вместо:

    if(!message.mentions.users) ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...