You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Discord.js v13频道过滤功能失效 统计文本/语音频道返回0

问题原因

Discord.js v13 对频道类型的标识规则做了破坏性更新,和v12版本不兼容:

  • v12版本中,普通服务器文本频道、语音频道的type属性返回值为字符串'text'、'voice'
  • v13版本中,对应频道的type属性返回值调整为'GUILD_TEXT'、'GUILD_VOICE'
    你沿用了v12版本的过滤条件,没有匹配到任何符合要求的频道,因此返回结果为0。
修复方案

直接修改两处频道统计的过滤判断值即可:

// 文本频道统计修改为
{ name: 'Text Channels', value: `${guild.channels.cache.filter(channels => channels.type === 'GUILD_TEXT').size}`, inline: true },
// 语音频道统计修改为
{ name: 'Voice Channels', value: `${guild.channels.cache.filter(c => c.type === 'GUILD_VOICE').size}`, inline: true },

更规范的写法

你也可以引入官方提供的ChannelType枚举做判断,避免手动拼写字符串出错:
首先在代码顶部导入枚举:

const { SlashCommandBuilder } = require('@discordjs/builders');
const { MessageEmbed, ChannelType } = require('discord.js');

再调整判断逻辑:

{ name: 'Text Channels', value: `${guild.channels.cache.filter(channels => channels.type === ChannelType.GuildText).size}`, inline: true },
{ name: 'Voice Channels', value: `${guild.channels.cache.filter(c => c.type === ChannelType.GuildVoice).size}`, inline: true },

内容的提问来源于stack exchange,提问作者Tommie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 02:57:03