TransWikia.com

Discord.js, в консоли ошибок нет, логи идут, но цвет роли не изменяется

Stack Overflow на русском Asked by Touch me on January 15, 2021

Вот код, в консоли ошибок нет, только логи, он должен изменять цвет роли раз в заданный интервал, но он не меняет его
Заранее проверил, роли оно находит, и все логи такие, какими должны быть, просто на сервере роли не меняют цвета от слова совсем
В гугле есть подобные случаи, но я проверил и они не мой вариант

const Discord = require('discord.js');
const client = new Discord.Client();
const config = require('./config.json');

const size = config.colors;
const rainbow = new Array(size);

for (let i = 0; i < size; i++) {
    const red = sin_to_hex(i, 0 * Math.PI * 2 / 3); // 0 deg
    const blue = sin_to_hex(i, 1 * Math.PI * 2 / 3); // 120 deg
    const green = sin_to_hex(i, 2 * Math.PI * 2 / 3); // 240 deg

    rainbow[i] = '#' + red + green + blue;
}

function sin_to_hex(i, phase) {
    const sin = Math.sin(Math.PI / size * 2 * i + phase);
    const int = Math.floor(sin * 127) + 128;
    const hex = int.toString(16);

    return hex.length === 1 ? '0' + hex : hex;
}

let place = 0;
const servers = config.servers;

function changeColor() {
    for (let index = 0; index < servers.length; ++index) {
        client.guilds.cache.get(servers[index])
            .roles.cache.find(guild => guild.name === config.roleName)
            .setColor(rainbow[place])
            .catch(console.error);

        if (config.logging) {
            console.log(`[ColorChanger] Changed color to ${rainbow[place]} in server: ${servers[index]}`);
        }
        if (place == (size - 1)) {
            place = 0;
        } else {
            place++;
        }
    }
}

client.on('ready', () => {
    console.log(`Logged in as ${client.user.username}!`);
    if (config.speed < 10) {
        console.log("The minimum speed is 60.000, if this gets abused your bot might get IP-banned");
        process.exit(1);
    }
    client.generateInvite(["ADMINISTRATOR"]).then(link => {
        console.log(link);
    });
    setInterval(changeColor, config.speed);
});


client.login(config.token);

Вот конфиг:

{
    "token": "NjkxOTM1ODYwMDc3MzYzMjAw.XnnR******************************",
    "servers": ["69193002**********"],
    "roleName": "rainbow",
    "colors": 40,
    "speed": 25,
    "logging": true
}

One Answer

Вы делаете слишком частый вызов метода. Рекомендую установить Вам значение speed в конфиге на 5000.

Answered by wilddip on January 15, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP