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