client.on("voiceStateUpdate", async (oldM, newM) => {
// Если пользователь не менял голосовой канал
if (oldM.voiceChannel.id === newM.voiceChannel.id) return;
// Вызов функции обновления кол-ва
await updateCount(oldM.guild);
})
async function updateCount (guild) {
// Получаем ID канала со статистикой
let channelID = getChannel(guild);
// Если не нашли, игнорируем
if (!channelID) return;
// Получаем объект канала
let channel = await guild.channels.get(channelID);
// Если не нашли, игнорируем
if (!channel) return;
// Смена имени
let bool = await setName(channel);
}
function getChannel (guild) {
let mass = {
"ID сервера": "ID канала со статистикой",
"ID сервера2": "ID канала со статистикой2"
}
let find = mass[guild];
return find;
}
// Сделано, чтобы смена имени канала происходила не чаще, чем в x секунд
var updated = false;
// Время перед повторной сменой названия канала
var timeout = 15;
async function setName(channel) {
if (!updated) {
// Получаем кол-во
let num = 0;
let talk = 0;
await guild.channels.filter(ch => ch.type === 'voice').forEach(ch => {num += ch.members.size; talk += ch.members.filter(m => !m.deaf() && !m.mute()).size});
await channel.setName(`В войсе - ${talk}/${num}`); // Менять название канала тут, ${num} - кол-во говорящих, ${talk} - кол-во не замученных (которые реально говорят)
updated = true;
setTimeout(() => {
updated = false;
}, timeout*1000);
}
}