April/commands/misc/graphisme.mjs
2023-10-13 15:04:11 +02:00

106 lines
4.2 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;
}
},
};