47 lines
No EOL
1.7 KiB
JavaScript
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 });
|
|
}
|
|
}; |