DONE: colour command
This commit is contained in:
parent
83a9a1f65c
commit
be8c4f35d7
1 changed files with 47 additions and 0 deletions
47
bot/commands/Fun/colour.js
Normal file
47
bot/commands/Fun/colour.js
Normal file
|
@ -0,0 +1,47 @@
|
|||
const Command = require('../../base/Command.js');
|
||||
|
||||
module.exports = class Colour extends Command {
|
||||
constructor (name, category) {
|
||||
super (name, category);
|
||||
this.name = name,
|
||||
this.description = 'Shows you a random colour or a colour generated from a hex code or text.',
|
||||
this.category = category;
|
||||
this.options = [
|
||||
{
|
||||
type: 3,
|
||||
name: 'input',
|
||||
description: 'hex code/text',
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
async run (client, interaction, data) { //eslint-disable-line no-unused-vars
|
||||
const input = await interaction.options.get('input');
|
||||
let color = null;
|
||||
|
||||
if (!input) {
|
||||
color = client.functions.randomColor();
|
||||
} else if (input.value.match(/#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/)) {
|
||||
color = input.value;
|
||||
} else {
|
||||
let hash = 0;
|
||||
const string = input.value;
|
||||
for (let i = 0; i < string.length; i++) {
|
||||
hash = string.charCodeAt(i) + ((hash << 5) - hash);
|
||||
}
|
||||
color = '#';
|
||||
for (let i = 0; i < 3; i++) {
|
||||
const value = (hash >> (i * 8)) & 0xFF;
|
||||
color += ('00' + value.toString(16)).substr(-2);
|
||||
}
|
||||
}
|
||||
|
||||
const embed = new client.EmbedBuilder()
|
||||
.setTitle(color)
|
||||
.setColor(color)
|
||||
.setImage(`https://fakeimg.pl/256x256/${color.replace('#', '')}/?text=%20`)
|
||||
.setFooter({ text: 'Wow, thats a pretty one!'});
|
||||
|
||||
interaction.reply({embeds: [embed]});
|
||||
}
|
||||
};
|
Loading…
Reference in a new issue