如何使用Discord.js获取服务器中所有语音频道的名称?
获取Discord服务器所有语音频道名称的实现方法
要获取服务器(guild)里的所有语音频道名称,核心是筛选出仅语音类型的频道——默认的频道列表会包含文本、分类等其他类型的频道,必须做过滤处理。以下是主流开发库的实现方式:
Python(discord.py)
假设你已经获取到了guild对象,通过频道类型筛选并提取名称:
import discord # 方式1:通过ChannelType判断 voice_channel_names = [ch.name for ch in guild.channels if ch.type == discord.ChannelType.voice] # 方式2:通过isinstance判断 voice_channel_names = [ch.name for ch in guild.channels if isinstance(ch, discord.VoiceChannel)] # 输出所有语音频道名称 for name in voice_channel_names: print(name)
JavaScript(Discord.js)
如果使用Discord.js,通过filter方法筛选语音频道:
// 筛选服务器内的语音频道 const voiceChannels = guild.channels.cache.filter(ch => ch.type === 'GUILD_VOICE'); // 提取所有语音频道的名称 const channelNames = voiceChannels.map(ch => ch.name); // 打印结果 console.log(channelNames);
你之前的代码大概率是没有做类型过滤,导致返回了全类型频道,而非仅语音频道。
内容的提问来源于stack exchange,提问作者jksnDev
相关产品推荐
相关产品推荐

