Не удается прочитать свойства неопределенных (чтение «fetchBans»)

#javascript #node.js #discord #discord.js

Вопрос:

Я пытаюсь выполнить команду с помощью моего бота Discord, чтобы снять блокировку с человека. Когда я закончил код, я получил ошибку. Ошибка заключается в том, что невозможно прочитать свойства undefined (чтение «fetchBans»). Код, который я использую для его создания, таков

 message.guild.cache.fetchBans().then(async bans => {
            if (bans.size === 0) return message.channel.send("No one is banned on the server!")
            let bannedUser = bans.find(ban => ban.user.id == userID)
            if (!bannedUser) return message.channel.send("This user isn't banned!")
            await message.guild.members.unban(bannedUser.user, reason).catch(err => {
                return message.channel.send("Something went wrong!")
            }).then(() => {
                let embed = new MessageEmbed()
                    .setColor("GREEN")
                    .setTitle(`Member unbanned!`)
                    .setDescription("")
                    .setTimestamp()
                    .setFooter(this.client.user.username)

            embed.addField(`member = ${target.username}`, `reason = ${reason}`, false)


            message.channel.send({embeds: });

            if (row[0].logs_channel != null) this.client.channels.cache.get(row[0].logs_channel).send({embeds: })

            message.delete()
        })
 

Линия, где все идет не так, — это эта линия:

  message.guild.cache.fetchBans().then(async bans => {
 

Когда я выполню эту команду, она выдаст ошибку. Я также пытался сделать что-то еще. Код, который я попробовал еще для этой строки, таков:

 message.guild.fetchBans().then(async bans => {
 

Эта строка также выдала ошибку, в которой говорится: ошибка типа: сообщение.гильдия.fetchBans-это не функция.

Я не знаю, что я могу с этим поделать. Я надеюсь, что кто-нибудь сможет мне помочь.

Node.js версия: 16.9.1 discord.js версия: 13.1.0

Ответ №1:

Согласно документации, включения нет fetchBans Guild . Может быть, вы ищете message.guild.bans.fetch() .

Также стоит отметить, что message.guild это может быть аннулировано — если сообщение было прямым сообщением (не отправленным в гильдии), оно будет равно нулю.

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

1. Спасибо @UncleDave, это работает на меня.