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

如何使用discord.js v14获取服务器所有文本频道?

解决Discord服务器文本频道筛选问题

你的代码存在两个核心问题:

  1. guild3.channels.fetch() 返回的是Promise对象,无法直接调用filter方法遍历频道
  2. Discord.js版本迭代后,频道类型标识有变更,旧的'GUILD_TEXT'在v14+版本已不再适用

修正后的代码

需要在异步函数内执行,先通过await获取完整的频道集合,再用正确的类型筛选:

// 确保这段代码在async函数内部
const channels3 = await guild3.channels.fetch();
// Discord.js v14+ 用GuildText类型筛选文本频道
const jsp = channels3.filter(channel => channel.type === 'GuildText');

const channelOptions3 = jsp.map(channel => ({
    label: channel.name,
    value: channel.id
}));

额外优化方案

如果想兼容更多场景,也可以用isTextBased()方法直接判断是否为文本频道,无需记忆类型常量:

const jsp = channels3.filter(channel => channel.isTextBased());

版本兼容提示

  • 若使用Discord.js v13及更早版本,类型标识仍为'GUILD_TEXT',但同样需要先await获取频道集合再筛选

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 19:18:11