Estaba tratando de hacer una presencia de usuario, pero recibo un error:
guild.channels.filter is not a functionMi código:
const Discord = require('discord.js'); const guild = client.guilds.cache.get('847071265100791849'); const categoryChannels = guild.channels.filter( (channel) => channel.type === '886241068855734273' ); categoryChannels.forEach((channel) => { const statuss = channel.children.size - 2; client.user.setPresence({ status: 'online', activities: [{ name: `${statuss} Open Tickets ✉️`, type: 'WATCHING' }], }); });guild.channels devuelve un GuildChannelManager por lo que no tiene un método de filter . Puede fetch todos los canales que devuelven una colección y luego puede usar el filter en eso:
const guild = client.guilds.cache.get('847071265100791849'); const channels = await guild.channels.fetch(); const categoryChannel = channels.filter( channel => channel.type === '886241068855734273' ); Sin embargo, ese channel.type no funcionará ya que ese copo de nieve no es uno de los ChannelType s. Deberá usar un ChannelType válido o usar channel.id .
Guild#channels es un GuildChannelManager . También veo que está configurando su estado en un bucle, lo cual es una idea terrible, debido a que se trata de una solicitud de API. Úselo fuera de él y use .cache para obtener la Collection de canales
const categoryChannels = guild.channels.cache.filter( (channel) => channel.type === 'GUILD_CATEGORY' // You put an ID, not type, I fixed it for you ); const statuss = categoryChannels.reduce((acc, channel) => channel.children.size - 2, 0) client.user.setPresence({ status: 'online', activities: [{ name: `${statuss} Open Tickets ✉️`, type: 'WATCHING' }], });