javascript - How to make random colors for embeds Discord.js - Stack Overflow

I want my Discord bot's embeds to appear in red or green (random between those two) so I want to c

I want my Discord bot's embeds to appear in red or green (random between those two) so I want to create something that will make this possible.

I have the following code:

const randomcolors = ['#008000', '#E50000']
const randomizer = Math.floor((Math.random() * foreigncolors.length));

Then I have this, but it always sets the color to green.

const embed = new Discord.MessageEmbed()
  .setColor(foreigncolors[colorss])

I want my Discord bot's embeds to appear in red or green (random between those two) so I want to create something that will make this possible.

I have the following code:

const randomcolors = ['#008000', '#E50000']
const randomizer = Math.floor((Math.random() * foreigncolors.length));

Then I have this, but it always sets the color to green.

const embed = new Discord.MessageEmbed()
  .setColor(foreigncolors[colorss])
Share Improve this question edited Jan 17, 2022 at 8:08 Zsolt Meszaros 23.2k19 gold badges58 silver badges69 bronze badges asked Oct 22, 2020 at 17:11 FOXTROXFOXTROX 211 silver badge2 bronze badges 0
Add a ment  | 

3 Answers 3

Reset to default 4

There is no need to write something plex all by yourself. Instead, you can use:

Embed.setColor('RANDOM')

This is an inbuilt feature of the discord.js library.

If you want to pick a colour from an array of values, you can create a helper function and use that:

function random(colors) {
  return colors[Math.floor(Math.random() * colors.length)];
};

random(['#008000', '#E50000']);
// => "#E50000" or "#008000"

In your example:

const embed = new Discord
  .MessageEmbed()
  .setColor(random(['#008000', '#E50000']));

If you want to pick a totally random colour value, the .setColor() method accepts specific colour strings. One of them is 'RANDOM`, which sets the colour to a random value:

const embed = new Discord
  .MessageEmbed()
  .setColor('RANDOM');

From the docs:

The .setColor() method accepts an integer, HEX color string, an array of RGB values or specific color strings.

This means that we simply can generate an array of type [R, G, B] where each R, G and B are integer values between 0 and 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]})`;

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1744091016a4557080.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信