woomy-v2/bot/commands/Fun/colour.js
2020-10-28 12:18:11 +11:00

47 lines
No EOL
1.7 KiB
JavaScript

const Embed = require('../../util/embed');
module.exports = class {
constructor (name, category) {
this.name = name,
this.category = category,
this.enabled = true,
this.devOnly = false,
this.aliases = ['color'],
this.userPerms = [],
this.botPerms = [],
this.cooldown = 2000,
this.help = {
description: 'Shows you colours that can be random, a hex code or generated from the words you type into the command.',
usage: 'colour <hexcode | text>',
examples: '`colour` - generates a random colour\n`colour #ee79ff` - Displays the colour of this hexcode\n`colour alpaca` - Generates a colour from the word alpaca'
};
}
run (client, message, args, data) { //eslint-disable-line no-unused-vars
let colour;
if (!args[0]) {
colour = client.functions.randomColour();
} else if (args[0].match(/#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/)) {
colour = args[0];
} else {
let hash = 0;
const string = args.join(' ');
for (let i = 0; i < string.length; i++) {
hash = string.charCodeAt(i) + ((hash << 5) - hash);
}
colour = '#';
for (let i = 0; i < 3; i++) {
const value = (hash >> (i * 8)) & 0xFF;
colour += ('00' + value.toString(16)).substr(-2);
}
}
const embed = new Embed()
.setTitle(colour)
.setColor(colour)
.setImage(`https://fakeimg.pl/256x256/${colour.replace('#', '')}/?text=%20`);
message.channel.createMessage({ embed: embed });
}
};