April/commands/misc/graphisme.mjs
2023-10-02 18:47:23 +02:00

92 lines
3.7 KiB
JavaScript

import { SlashCommandBuilder } from 'discord.js';
import Inspiration from './graphismecommands/inspiration.mjs';
import Palette from './graphismecommands/palette.mjs';
import Remix from './graphismecommands/remix.mjs';
import Blend from './graphismecommands/colorblend.mjs';
export default {
data: new SlashCommandBuilder()
.setName('graphisme')
.setDescription('Diverse commandes pour le graphisme.')
.addSubcommand(
subcommand => subcommand
.setName('inspiration')
.setDescription('Une citation, suggestion de couleur ou proposition de méthode.')
)
.addSubcommand(
subcommand => subcommand
.setName('palette')
.setDescription('Une palette harmonieuse générée aléatoirement.')
)
.addSubcommand(
subcommand => subcommand
.setName('remix')
.setDescription('Renvoie l\'image insérée avec un filtre appliqué.')
.addAttachmentOption(option => option
.setName('image')
.setDescription('Image à modifier')
.setRequired(true))
.addStringOption(option => option
.setName('filter')
.setDescription('Le filtre appliqué')
.setRequired(true)
.addChoices(
{ name: 'Invert', value: 'invert' },
{ name: 'Nuance de gris', value: 'grayscale' },
{ name: 'Sepia', value: 'sepia' },
{ name: 'Flou', value: 'blur' },
{ name: 'Pixelisé', value: 'pixelate' },
{ name: 'Miroir', value: 'mirror' },
{ name: 'Rotation', value: 'rotate' },
{ name: 'Luminosité', value: 'brightness' },
{ name: 'Vintage', value: 'vintage' },
{ name: 'Peinture à l\'huile', value: 'oilpaint' },
{ name: 'Aquarelle', value: 'watercolor' },
{ name: 'Néon', value: 'neon' },
))
)
.addSubcommand(
subcommand => subcommand
.setName('blend')
.setDescription('Combine deux couleurs pour en créer une troisième.')
.addStringOption(option => option
.setName('color1')
.setDescription('La première couleur')
.setRequired(true))
.addStringOption(option => option
.setName('color2')
.setDescription('La deuxième couleur')
.setRequired(true))
.addStringOption(option => option
.setName('mode')
.setDescription('Le mode de fusion')
.setRequired(true)
.addChoices(
{ name: 'Normal', value: 'normal' },
{ name: 'Multiplication', value: 'multiply' },
{ name: 'Écran', value: 'screen' },
{ name: 'Overlay', value: 'overlay' },
))
),
async execute(interaction) {
switch (interaction.options.getSubcommand()) {
case 'inspiration':
Inspiration.execute(interaction);
break;
case 'palette':
Palette.execute(interaction);
break;
case 'remix':
Remix.execute(interaction);
break;
case 'blend':
Blend.execute(interaction);
break;
};
},
};