Discord.net是否有直接获取语音频道成员数功能及语音更新相关事件?
获取语音频道成员数量的实现方法
你可以直接调用 Discord.Net 中IVoiceChannel接口内置的ConnectedUsers属性,读取该属性的Count值即可直接获取当前语音频道的在线成员总数,无需自行遍历用户或者手动维护统计数组,调用示例如下:
// 已获取目标语音频道实例 voiceChannel 时 int voiceMemberCount = voiceChannel.ConnectedUsers.Count;
注意:你的机器人需要持有目标语音频道的「查看频道」和「连接」权限,才能正常读取该属性的完整数据,否则可能出现返回值为空、数值不准确的问题。
语音频道更新相关事件
Discord.Net 原生提供了多组和语音频道、用户语音状态相关的触发事件,可直接订阅使用,常用事件如下:
DiscordSocketClient.UserVoiceStateUpdated:用户加入/离开语音频道、切换语音频道、调整自身静音/闭麦状态时都会触发,你可以通过事件返回的新旧语音状态参数,判断用户进出的目标频道,实现成员数量变动的实时监听DiscordSocketClient.ChannelUpdated:当语音频道本身的属性(如频道名称、比特率、成员上限等)发生变更时触发
内容的提问来源于stack exchange,提问作者RokweMICHAEL
相关产品推荐
相关产品推荐

