#javascript #node.js #discord #discord.js
#javascript #node.js #Discord #discord.js
Вопрос:
Я хочу, чтобы встраивания моего бота Discord отображались красным или зеленым цветом (случайным образом между этими двумя), поэтому я хочу создать что-то, что сделает это возможным.
У меня есть следующий код:
const randomcolors = ['#008000', '#E50000']
const randomizer = Math.floor((Math.random() * foreigncolors.length));
Тогда у меня есть это, но он всегда устанавливает цвет на зеленый.
const embed = new Discord.MessageEmbed()
.setColor(foreigncolors[colorss])
Ответ №1:
Нет необходимости писать что-то сложное самостоятельно. Вместо этого вы можете использовать:
Embed.setColor('RANDOM')
Это встроенная функция discord.js
библиотеки.
Ответ №2:
Если вы хотите выбрать цвет из массива значений, вы можете создать вспомогательную функцию и использовать ее:
function random(colors) {
return colors[Math.floor(Math.random() * colors.length)];
};
random(['#008000', '#E50000']);
// => "#E50000" or "#008000"
В вашем примере:
const embed = new Discord
.MessageEmbed()
.setColor(random(['#008000', '#E50000']));
Если вы хотите выбрать абсолютно случайное значение цвета, .setColor()
метод принимает определенные цветовые строки. Один из них — «СЛУЧАЙНЫЙ`, который устанавливает цвет в случайное значение:
const embed = new Discord
.MessageEmbed()
.setColor('RANDOM');
Ответ №3:
Из документов:
Метод .setColor() принимает целое число, шестнадцатеричную цветовую строку, массив значений RGB или определенные цветовые строки.
Это означает, что мы просто можем сгенерировать массив типа [R, G, B]
, где each R
, G
и B
являются целочисленными значениями между 0
и 255
.
const randomBetween = (min, max) => Math.floor(Math.random()*(max-min 1) min);
const color = [
randomBetween(0, 255),
randomBetween(0, 255),
randomBetween(0, 255),
];
console.log(color);
document.body.style.background = `rgb(${color[0]}, ${color[1]}, ${color[2]})`;