guild.channels.filter 不是函数 discord.js
guild.channels.filter is not a function discord.js
我试图让用户在场,但出现错误:
guild.channels.filter is not a function
我的代码:
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
returns 一个 GuildChannelManager
所以它没有 filter
方法。您可以 fetch
所有频道 returns 一个集合,然后您可以在 filter
上使用:
const guild = client.guilds.cache.get('847071265100791849');
const channels = await guild.channels.fetch();
const categoryChannel = channels.filter(
channel => channel.type === '886241068855734273'
);
那 channel.type
不会起作用,因为那个雪花不是 ChannelType
之一。您需要使用有效的 ChannelType
或使用 channel.id
.
Guild#channels
是一个 GuildChannelManager
。我还看到您正在循环设置您的状态,这是一个糟糕的主意,因为它是一个 API 请求。在它之外使用它并使用 .cache
来获取通道
的 Collection
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' }],
});
我试图让用户在场,但出现错误:
guild.channels.filter is not a function
我的代码:
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
returns 一个 GuildChannelManager
所以它没有 filter
方法。您可以 fetch
所有频道 returns 一个集合,然后您可以在 filter
上使用:
const guild = client.guilds.cache.get('847071265100791849');
const channels = await guild.channels.fetch();
const categoryChannel = channels.filter(
channel => channel.type === '886241068855734273'
);
那 channel.type
不会起作用,因为那个雪花不是 ChannelType
之一。您需要使用有效的 ChannelType
或使用 channel.id
.
Guild#channels
是一个 GuildChannelManager
。我还看到您正在循环设置您的状态,这是一个糟糕的主意,因为它是一个 API 请求。在它之外使用它并使用 .cache
来获取通道
Collection
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' }],
});