Add option to chose a default color in /palette

This commit is contained in:
Ninjdai 2023-10-02 18:19:40 +02:00
parent 5081eb8767
commit 89ef7c11e7
2 changed files with 23 additions and 4 deletions

View File

@ -21,6 +21,13 @@ export default {
subcommand => subcommand subcommand => subcommand
.setName('palette') .setName('palette')
.setDescription('Une palette harmonieuse générée aléatoirement.') .setDescription('Une palette harmonieuse générée aléatoirement.')
.addStringOption(option => option
.setName('basecolor')
.setDescription('(FORMAT: #FFFFFF) Une couleur initiale sur laquelle sera formée la palette')
.setRequired(false)
.setMinLength(7)
.setMaxLength(7)
)
) )
.addSubcommand( .addSubcommand(
subcommand => subcommand subcommand => subcommand

View File

@ -4,7 +4,13 @@ import { AttachmentBuilder } from 'discord.js';
export default { export default {
async execute(interaction){ async execute(interaction){
await interaction.deferReply(); await interaction.deferReply();
const palette = await generateRandomPalette(); const baseColor = interaction.options.getString('basecolor') || None;
let palette;
if(!baseColor || !/^#[0-9A-F]{6}$/i.test(baseColor)){
palette = await generateRandomPalette();
} else palette = await generateRandomPalette(baseColor);
const imageBuffer = await createPaletteImage(palette); const imageBuffer = await createPaletteImage(palette);
// Envoie l'image dans le canal où la commande a été appelée // Envoie l'image dans le canal où la commande a été appelée
@ -14,12 +20,18 @@ export default {
} }
// Fonction pour générer une palette de couleurs harmonieuses // Fonction pour générer une palette de couleurs harmonieuses
async function generateRandomPalette() { async function generateRandomPalette(forcedColor = None) {
const numColors = Math.floor(Math.random() * 3) + 3; // Génère entre 3 et 5 couleurs const numColors = Math.floor(Math.random() * 3) + 3; // Génère entre 3 et 5 couleurs
const palette = []; const palette = [];
// Générateur de couleurs harmonieuses (complémentaires) // Générateur de couleurs harmonieuses (complémentaires)
const baseColor = Math.floor(Math.random() * 16777215); // Couleur de base aléatoire
let baseColor;
if(forcedColor == None){
baseColor = Math.floor(Math.random() * 16777215); // Couleur de base aléatoire
} else {
baseColor = forcedColor
}
for (let i = 0; i < numColors; i++) { for (let i = 0; i < numColors; i++) {
// Random variations in saturation and brightness // Random variations in saturation and brightness