Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

464
Views
guild.channels.filter is not a function discord.js

I was trying to make a user presence but I am getting an error:

guild.channels.filter is not a function

My code:

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' }],
  });
});
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

guild.channels returns a GuildChannelManager so it doesn't have a filter method. You can fetch all channels that returns a collection, and then you can use filter on that:

const guild = client.guilds.cache.get('847071265100791849');
const channels = await guild.channels.fetch();
const categoryChannel = channels.filter(
  channel => channel.type === '886241068855734273'
);

That channel.type won't work though as that snowflake is not one of the ChannelTypes. You'll either need to use a valid ChannelType or use channel.id.

about 4 years ago · Juan Pablo Isaza Report

0

Guild#channels is a GuildChannelManager. I also see you are setting your status in a loop, which is a terrible idea, due to it being an API request. Use it outside of it and use .cache to get the Collection of channels

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' }],
  });
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!