1

Trying to make a counter for text and voice channels. So it should exclude the amoount of categories.

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);
};

This gives me 183 which is wrong. The number I want to achieve is 155. I have 28 categories, so 183 makes sense if the categories aren't filtered. Filtering the categories has been a bigger struggle that I anticipated.

I have also tried to filter on the cache. guild.channels.cache.filter(channel => channel.type !== 'category').size; but it results in the same way (183). So the filtering isn't working as intended.

Zsolt Meszaros
  • 21,961
  • 19
  • 54
  • 57
flx
  • 173
  • 9

1 Answers1

2

If you're using discord.js v13+, channel types are now uppercase and align with Discord's naming conventions. See below the changes:

channel type v12 v13
DM channel dm DM
group DM channel N/A GROUP_DM
guild text channel text GUILD_TEXT
guild text channel's public thread channel N/A GUILD_PUBLIC_THREAD
guild text channel's private thread channel N/A GUILD_PRIVATE_THREAD
guild voice channel voice GUILD_VOICE
guild stage voice channel N/A GUILD_STAGE_VOICE
guild category channel category GUILD_CATEGORY
guild news channel news GUILD_NEWS
guild news channel's public thread channel N/A GUILD_NEWS_THREAD
guild store channel store GUILD_STORE
generic channel of unknown type unknown UNKNOWN

As you can see, category is now GUILD_CATEGORY. It means, your filter (channel.type !== 'category') won't match anything, as there is no category type anymore. To fix this, you can use the following:

const channelCount = (await guild.channels.fetch()).filter(
  (channel) => channel.type !== 'GUILD_CATEGORY'
).size;
Zsolt Meszaros
  • 21,961
  • 19
  • 54
  • 57