#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, это работает на меня.