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

108 lines
4.3 KiB
JavaScript

import { SlashCommandBuilder, ChannelType } from "discord.js";
import SetupTickets from "./setupcommands/tickets.mjs";
import SetupPanel from "./setupcommands/panels.mjs";
import SetupMod from "./setupcommands/moderation.mjs";
export default {
data: new SlashCommandBuilder()
.setName("setup")
.setDescription("Effectuer une mise en place.")
.setDefaultMemberPermissions(0x8)
.addSubcommand((subcommand) =>
subcommand
.setName("tickets")
.setDescription("Mise en place des tickets.")
.addStringOption((option) =>
option
.setName("type")
.setDescription("Le type de tickets à mettre en place.")
.setRequired(true)
.setChoices(
{ name: "Commandes", value: "commands" },
{ name: "Support", value: "support" },
),
)
.addChannelOption((option) =>
option
.setName("channel")
.setDescription(
"Choisissez le salon où l'embed sera envoyé !",
)
.addChannelTypes(ChannelType.GuildText)
.setRequired(true),
),
)
.addSubcommand((subcommand) =>
subcommand
.setName("panel")
.setDescription("Mise en place des panels.")
.addStringOption((option) =>
option
.setName("type")
.setDescription("Le type de panel à mettre en place.")
.setRequired(true)
.setChoices(
{ name: "Rolereact", value: "rolereact" },
{
name: "Embed du rolereact",
value: "rolereactembed",
},
{ name: "Candidatures", value: "candidatures" },
{
name: "Embed des sanctions",
value: "sanctionembed",
},
{ name: "Album Photo", value: "albumphoto" },
),
)
.addChannelOption((option) =>
option
.setName("channel")
.setDescription(
"Choisissez le salon où le panel sera envoyé !",
)
.addChannelTypes(ChannelType.GuildText)
.setRequired(true),
),
)
.addSubcommand((subcommand) =>
subcommand
.setName("moderation")
.setDescription("Mise en place de la modération.")
.addStringOption((option) =>
option
.setName("type")
.setDescription(
"Le type de panel de modération à mettre en place.",
)
.setRequired(true)
.setChoices(
{ name: "Sanctions", value: "sanctions" },
{ name: "Blacklist", value: "blacklist" },
),
)
.addChannelOption((option) =>
option
.setName("channel")
.setDescription(
"Choisissez le salon où le panel sera envoyé !",
)
.addChannelTypes(ChannelType.GuildText)
.setRequired(true),
),
),
async execute(interaction) {
switch (interaction.options.getSubcommand()) {
case "tickets":
SetupTickets.execute(interaction);
break;
case "panel":
SetupPanel.execute(interaction);
break;
case "moderation":
SetupMod.execute(interaction);
break;
}
},
};