Этот вопрос закрыт для ответов, так как повторяет вопрос Почему не уменьшается значение в баннере дискорд?
@sayme0w

Не меняется число пользователей на баннере Discord?

Бот работает но криво, число пользователей в голосовых каналах не уменьшается, хотя интервал обновления прописан, и не обновляет число пользователей на сервере, в то время как количество людей в голосовых каналах меняется при обновлении ( но не уменьшается). Помогите пожалуйста
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);
  • Вопрос задан
  • 84 просмотра
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы