@rodgi

(Discord.js) Почему не работает .setColor?

Не работает ".setColor" , выдает ошибку: "Cannot read property 'setColor' of null". Вод код:
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 (var i=0; i<size; i++) {
  var red   = sin_to_hex(i, 0 * Math.PI * 2/3); // 0   deg
  var blue  = sin_to_hex(i, 1 * Math.PI * 2/3); // 120 deg
  var green = sin_to_hex(i, 2 * Math.PI * 2/3); // 240 deg

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

function sin_to_hex(i, phase) {
  var sin = Math.sin(Math.PI / size * 2 * i + phase);
  var int = Math.floor(sin * 127) + 128;
  var 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.get(servers[index]).roles.find('name', config.roleName).setColor(rainbow[place])
		.catch(console.error);
		
    if(config.logging){
      console.log(`Изменяется ${rainbow[place]} на сервере: ${servers[index]}`);
    }
    if(place == (size - 1)){
      place = 0;
    }else{
      place++;
    }
  }
}

client.on('ready', () => {
  console.log(`Логин ${client.user.username}!`);
  setInterval(changeColor, config.speed);
});


client.login(config.token);

Ошибка на 29 строчке, 74 символе.
  • Вопрос задан
  • 56 просмотров
Решения вопроса 1
@zage
Для работы данного скрипта нужно внести маленькое изменение в функцию 'ChangeColor'.
Я тебе напишу сразу полную функцию, тебе лишь нужно её вставить.

function changeColor() {
  for (let index = 0; index < servers.length; ++index) {		
    bot.guilds.get(servers[index]).roles.find(role => role.name === "RoleName").setColor(rainbow[place])
		.catch(console.error);
		
    if(rbconf.logging){
      console.log(`[ColorChanger] Changed color to ${rainbow[place]} in server: ${servers[index]}`);
    }
    if(place == (size - 1)){
      place = 0;
    }else{
      place++;
    }
  }
}


Вместо RoleName вставляешь название роли, у которой хотел бы изменять цвет.
Удачи!
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Zeus Capital Москва
от 70 000 до 130 000 руб.
IWU Нижний Новгород
от 150 000 до 250 000 руб.
21 авг. 2019, в 14:20
15000 руб./за проект
21 авг. 2019, в 13:40
25000 руб./за проект