Intentando hacer un contador para los canales de texto y voz. Por lo tanto, debe excluir la cantidad de categorías.
module.exports = async (client) => { const guild = client.guilds.cache.get('912706237806829598'); setInterval(async () => { const channelCount = (await guild.channels.fetch()).filter( (channel) => channel.type !== 'category' ).size; const channel = guild.channels.cache.get('960790479925039124'); channel.setName(`╭🎚・Channels: ${channelCount.toLocaleString()}`); console.log('Updating Channel Count'); console.log(channelCount); }, 600000); };
Esto me da 183 que está mal. El número que quiero lograr es 155. Tengo 28 categorías, por lo que 183 tiene sentido si no se filtran las categorías. Filtrar las categorías ha sido una lucha más grande de lo que anticipé.
También he intentado filtrar en el caché. guild.channels.cache.filter(channel => channel.type !== 'category').size;
pero resulta de la misma manera (183). Entonces, el filtrado no funciona según lo previsto.
Si está utilizando discord.js v13+, los tipos de canales ahora están en mayúsculas y se alinean con las convenciones de nomenclatura de Discord. Vea a continuación los cambios:
tipo de canal | v12 | v13 |
---|---|---|
canal de mensajes directos | dm | DM |
canal de mensajes directos grupales | N / A | GROUP_DM |
canal de texto del gremio | text | GUILD_TEXT |
canal de hilo público del canal de texto del gremio | N / A | GUILD_PUBLIC_THREAD |
canal de hilo privado del canal de texto del gremio | N / A | GUILD_PRIVATE_THREAD |
canal de voz del gremio | voice | GUILD_VOICE |
canal de voz del escenario del gremio | N / A | GUILD_STAGE_VOICE |
canal de categoría de gremio | category | GUILD_CATEGORY |
canal de noticias del gremio | news | GUILD_NEWS |
canal de hilo público del canal de noticias del gremio | N / A | GUILD_NEWS_THREAD |
canal de la tienda del gremio | store | GUILD_STORE |
canal genérico de tipo desconocido | unknown | UNKNOWN |
Como puede ver, category
ahora es GUILD_CATEGORY
. Significa que su filtro ( channel.type !== 'category'
) no coincidirá con nada, ya que ya no hay un tipo de category
. Para arreglar esto, puedes usar lo siguiente:
const channelCount = (await guild.channels.fetch()).filter( (channel) => channel.type !== 'GUILD_CATEGORY' ).size;