@getaxe
JS developer

Как вывести людей в Voice каналах discord js?

Здравствуйте, пишу счетчик людей на сервере и в Voice каналах.
С memberCount разобрался, включив галочку в ЛК бота. (SERVER MEMBERS INTENT)
А вот с онлайном в голосовых каналах не получается. Он запоминает число, и даже после выхода человека не обновляется, тем самым этот показатель только растет, до перезапуска бота.(На портале разработчика так же пробовал ставить галочку на PRESENCE INTENT) Помогите пожалуйста, ниже код.
p.s. для этого у меня отдельный js файл.
module.exports = (client) => {
  async function members() {
    const guild = await client.guilds.fetch("id сервера/гильдии");
    let members = guild.memberCount.toLocaleString();
    client.channels.cache.get("78677696201306****").setName(`Участники: ${members}`); 
  }

  async function online() {
    const guild = await client.guilds.fetch("id сервера/гильдии");
    let voiceonline = guild.voiceStates.cache.size.toLocaleString();
    console.log(voiceonline);
    client.channels.cache.get("80671070358654****").setName(`Voice: ${voiceonline}`);  
  }

  var interval = setInterval(function () {members(), online() }, 600000  );
}
  • Вопрос задан
  • 850 просмотров
Решения вопроса 1
@ettychel
let voiceonline = guild.voiceStates.cache.filter(e => e.channelID).size;

.toLocaleString() - Здесь необязательно, потому как JS сам преобразует в строку при дальнейшей вашей операции
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы