Бот работает но криво, число пользователей в голосовых каналах не уменьшается, хотя интервал обновления прописан, и не обновляет число пользователей на сервере, в то время как количество людей в голосовых каналах меняется при обновлении ( но не уменьшается). Помогите пожалуйста
const Discord = require('discord.js');
const Canvas = require('canvas')
const fs = require('fs').promises;
const client = new Discord.Client({
intents: [
Discord.Intents.FLAGS.GUILD_VOICE_STATES,
Discord.Intents.FLAGS.GUILDS
]
});
let config = require('./config.json')
let token = config.token
client.config = config;
client.on('ready', () => {
console.log('ready');
setInterval(changeBanner, 15000)
});
async function changeBanner() {
const images = await fs.readdir('images');
const image = `images/${images[Math.floor(Math.random() * images.length)]}`;
const guild = client.guilds.cache.get('GUIL_ID');
const number = await getVoiceMembers(guild);
const memberCount = guild.memberCount;
const banner = await editBanner(image, getVoiceMembers(guild), memberCount, number);
await guild.setBanner(banner);
}
function getVoiceMembers(guild) {
let count = 0;
guild.voiceStates.cache.each(() => count++)
return count
}
async function editBanner(image, number, memberCount) {
const canvas = Canvas.createCanvas(1920, 1080);
const context = canvas.getContext('2d');
const background = await Canvas.loadImage(image);
context.drawImage(background, 0, 0, canvas.width, canvas.height);
context.font = '170px Enter the Grid 2';
context.fillStyle = '#ff61bb';
context.fillText(`${number}`, 360, 1030);
context.font = '170px Enter the Grid 2';
context.fillStyle = '#fdaedb';
context.fillText(`${number}`, 345, 1025);
context.font = '170px Enter the Grid 2';
context.fillStyle = '#ff61bb';
context.fillText(`${memberCount}`, 1450, 1030);
context.font = '170px Enter the Grid 2';
context.fillStyle = '#fdaedb';
context.fillText(`${memberCount}`, 1435, 1025);
return canvas.toBuffer();
}
client.login(client.config.token);