Estoy tratando de hacer un comando en mi bot de Discord para desbanear a una persona. Cuando terminé el código me salió un error. El error es No se pueden leer las propiedades de undefined (leyendo 'fetchBans'). El código que uso para hacerlo es
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: [embed]}); if (row[0].logs_channel != null) this.client.channels.cache.get(row[0].logs_channel).send({embeds: [embed]}) message.delete() })La línea donde sale mal es esta línea:
message.guild.cache.fetchBans().then(async bans => {Cuando ejecuto este comando, dará el error. También traté de hacer otra cosa. El código que probé más para esa línea es:
message.guild.fetchBans().then(async bans => {Esta línea también dio un error que dice: TypeError: message.guild.fetchBans no es una función.
No sé qué puedo hacer al respecto. Espero que alguien pueda ayudarme.
Versión de Node.js: 16.9.1 Versión de discord.js: 13.1.0
De acuerdo con la documentación , no hay fetchBans en Guild . Tal vez estés buscando message.guild.bans.fetch() .
También vale la pena señalar que message.guild es anulable: si el mensaje era un mensaje directo (no enviado en un gremio), será nulo.