【发布时间】:2021-10-31 12:15:49
【问题描述】:
我目前正在尝试让文本通道和语音通道的总数显示在我的嵌入中,当我尝试像在 discord.js v12 中那样过滤它们时,它给我的输出为 0 但如果我使用没有过滤器,做 guild.channels.cache.size,它打印 4 是正确的数量(2 个文本通道,1 个语音通道,1 个类别通道)。
如果有人能解释为什么它打印的是 0 而不是正确数量的文本/语音通道,那真是太棒了,我到处搜索,找不到它不起作用的原因。
const { SlashCommandBuilder } = require('@discordjs/builders');
const { MessageEmbed } = require('discord.js');
// EXPORT SERVERINFO COMMAND DATA TO NODE
module.exports = ({
data: new SlashCommandBuilder()
.setName('serverinfo')
.setDescription('Basic Server Info.'),
async execute(interaction) {
// REFERENCE THE GUILD
const guild = interaction.guild;
// CREATE TEST EMBED
const serverInfoEmbed = new MessageEmbed();
serverInfoEmbed.setColor('#36393F');
serverInfoEmbed.setAuthor('Fyce Bot - /serverinfo', interaction.user.avatarURL(), 'https://github.com/ttommie/fyce-bot/');
serverInfoEmbed.setTitle('Server Information');
serverInfoEmbed.setThumbnail(guild.iconURL());
serverInfoEmbed.addFields(
{ name: 'Name', value: `${guild.name}`, inline: true },
{ name: '\u200B', value: '\u200B', inline: true },
{ name: 'Owner', value: `<@${guild.ownerId}>`, inline: true },
{ name: 'Total Members', value: `${guild.memberCount}`, inline: true },
{ name: 'Users Count', value: `${guild.members.cache.filter(member => !member.user.bot).size}`, inline: true },
{ name: 'Bots Count', value: `${guild.members.cache.filter(member => member.user.bot).size}`, inline: true },
{ name: 'Text Channels', value: `${guild.channels.cache.filter(channels => channels.type === 'text').size}`, inline: true }, // PROBLEM HERE
{ name: 'Voice Channels', value: `${guild.channels.cache.filter(c => c.type === 'voice').size}`, inline: true }, // PROBLEM HERE
{ name: 'Roles Count', value: `${guild.roles.cache.size}`, inline: true },
);
serverInfoEmbed.setFooter(`${guild.name} - Date Created`);
serverInfoEmbed.setTimestamp(`${guild.createdAt.toUTCString().substr(0, 16)}`);
await interaction.reply({ embeds: [serverInfoEmbed] });
},
});
【问题讨论】:
-
您不必在标题中写“[已解决]”。接受答案表示每个人都已成功回答您的问题。
标签: javascript node.js discord discord.js embed