我試圖讓用戶在場,但出現錯誤:
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' }],
});
});
uj5u.com熱心網友回復:
guild.channels回傳 aGuildChannelManager所以它沒有filter方法。您可以fetch回傳一個集合的所有通道,然后您可以使用filter它:
const guild = client.guilds.cache.get('847071265100791849');
const channels = await guild.channels.fetch();
const categoryChannel = channels.filter(
channel => channel.type === '886241068855734273'
);
不過那channel.type是行不通的,因為那片雪花不是ChannelTypes 之一。您將需要使用有效的ChannelType或使用channel.id.
uj5u.com熱心網友回復:
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' }],
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/459821.html
標籤:javascript 节点.js 不和谐 不和谐.js
