Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Изменение цвета ролям (https://javascript.ru/forum/misc/78120-izmenenie-cveta-rolyam.html)

Jexly 29.07.2019 21:32

Изменение цвета ролям
 
Здравствуйте! Наперед скажу, кто не знает либ discord.js, попрошу не высказывать тут свое мнение, а просто выйти.

Вообщем, есть у меня код, который меняет цвет определенной роли с определенной задежкой. Но проблема в том, что discord API банит через какое-то кол-во времени. И я хочу вот спросить, можно ли как-то это обойти (бан (ранее код работал идеально, но как только внесли изменения разработчики discord, сразу начались траблы))? Ниже предоставлю код:
const Discord = require("discord.js");
const client = new Discord.Client();
var server;
var this_role;
var active = false;

const role_id = "593425956576821279";
const server_id = "546940290024603649";
const token = "";
const delay = 200;
const mode = 1; // 0 - Random, 1 - Gradient

var colors_array = ["#000000",	
"#0C090A",	
"#2C3539"];

client.on('ready', () => {
  console.log(`Logged in as ${client.user.tag}!`);
  server = client.guilds.get(server_id);
  setTimeout(function() {
    this_role = server.roles.get(role_id);
  }, 2000)
});

client.on('message', msg => {
  if (msg.author.id == '405438071174201346') {
    if (msg.content == 'e!start'){
      if (mode == 0){
        active = true
        RainRole();
      } else if (mode == 1){
        active = true
        GradientRole();
      }
    } else if(msg.content == "e!stop"){
      active = false;
    }
    }
});

var current_color = 0;

function GradientRole() {
  setTimeout(function() {
      this_role.setColor(colors_array[current_color])
      if (current_color == colors_array.length)
      current_color = 0;
      current_color++;
      if (active)
      GradientRole();
  }, delay);
}

function RainRole() {
  setTimeout(function() {
      this_role.setColor(getRandomColor())
      if (active)
      RainRole();
  }, delay);
}

function getRandomColor() {
  var letters = '0123456789ABCDEF';
  var color = '#';
  for (var i = 0; i < 6; i++) {
    color += letters[Math.floor(Math.random() * 16)];
  }
  return color;
}

client.login(token);

Jexly 30.07.2019 10:27

Вижу что сложная задачка, или никто не знает этот либ)


Часовой пояс GMT +3, время: 17:28.