162 lines
4.9 KiB
JavaScript
162 lines
4.9 KiB
JavaScript
const { SlashCommandBuilder, PermissionFlagsBits, ButtonBuilder, ActionRowBuilder, ButtonStyle, EmbedBuilder, WebhookClient } = require("discord.js");
|
|
const { color } = require("../config/options.json");
|
|
|
|
module.exports = {
|
|
name: "config",
|
|
description: "Configure the bot.",
|
|
type: "slash",
|
|
|
|
data: new SlashCommandBuilder()
|
|
.setName("config")
|
|
.setDescription("Configure the bot.")
|
|
.addSubcommand((subcommand) =>
|
|
subcommand
|
|
.setName("sendguildapplication")
|
|
.setDescription("Send the application message to a channel.")
|
|
.addChannelOption((option) =>
|
|
option
|
|
.setName("channel")
|
|
.setDescription("The channel to send the application to.")
|
|
.setRequired(true))
|
|
)
|
|
.addSubcommand((subcommand) =>
|
|
subcommand
|
|
.setName("sendstaffapplication")
|
|
.setDescription("Send the application message to a channel.")
|
|
.addChannelOption((option) =>
|
|
option
|
|
.setName("channel")
|
|
.setDescription("The channel to send the application to.")
|
|
.setRequired(true)))
|
|
.addSubcommand((subcommand) =>
|
|
subcommand
|
|
.setName("sendinactivityapplication")
|
|
.setDescription("Send the application message to a channel.")
|
|
.addChannelOption((option) =>
|
|
option
|
|
.setName("channel")
|
|
.setDescription("The channel to send the application to.")
|
|
.setRequired(true)))
|
|
.addSubcommand((subcommand) =>
|
|
subcommand
|
|
.setName("sendguildinfo")
|
|
.setDescription("Send the guild info message to a channel."))
|
|
.addSubcommand((subcommand) =>
|
|
subcommand
|
|
.setName("sendrequirements")
|
|
.setDescription("Send the guild requirements message to a channel."))
|
|
.addSubcommand((subcommand) =>
|
|
subcommand
|
|
.setName("sendrules-info")
|
|
.setDescription("Send the rules and info message to a channel."))
|
|
.setDefaultMemberPermissions(PermissionFlagsBits.Administrator)
|
|
.setDMPermission(false),
|
|
|
|
async execute(interaction) {
|
|
const user = interaction.user;
|
|
const guild = interaction.guild;
|
|
const subcommand = interaction.options.getSubcommand();
|
|
const embedColor = Number(color.replace("#", "0x"));
|
|
|
|
if (subcommand === "reload") {
|
|
await interaction.reply({ content: "In development", ephemeral: true });
|
|
return;
|
|
}
|
|
|
|
if (subcommand === "sendguildapplication") {
|
|
const channel = interaction.options.getChannel("channel");
|
|
|
|
await channel.send({
|
|
embeds: [
|
|
{
|
|
title: "Guild Application",
|
|
description: "You can apply for the guild by clicking the button below.",
|
|
color: embedColor,
|
|
footer: {
|
|
text: interaction.guild.name + " | Developed by @Taken#0002",
|
|
iconURL: interaction.guild.iconURL({ dynamic: true })
|
|
},
|
|
thumbnail: {
|
|
url: interaction.guild.iconURL({ dynamic: true })
|
|
}
|
|
}
|
|
],
|
|
components: [
|
|
new ActionRowBuilder()
|
|
.addComponents(new ButtonBuilder()
|
|
.setCustomId("guildapply")
|
|
.setLabel("Apply")
|
|
.setStyle(ButtonStyle.Primary)
|
|
.setEmoji({ name: "✅" }))
|
|
]
|
|
});
|
|
await interaction.reply({ content: "Message sent", ephemeral: true });
|
|
}
|
|
|
|
if (subcommand === "sendstaffapplication") {
|
|
const channel = interaction.options.getChannel("channel");
|
|
|
|
await channel.send({
|
|
embeds: [
|
|
{
|
|
title: "Staff Application",
|
|
description: "You can apply for the staff team by clicking the button below.",
|
|
color: embedColor,
|
|
footer: {
|
|
text: interaction.guild.name + " | Developed by @Taken#0002",
|
|
iconURL: interaction.guild.iconURL({ dynamic: true })
|
|
},
|
|
thumbnail: {
|
|
url: interaction.guild.iconURL({ dynamic: true })
|
|
}
|
|
}
|
|
],
|
|
components: [
|
|
new ActionRowBuilder()
|
|
.addComponents(new ButtonBuilder()
|
|
.setCustomId("staffapply")
|
|
.setLabel("Apply")
|
|
.setStyle(ButtonStyle.Primary)
|
|
.setEmoji({ name: "✅" }))
|
|
]
|
|
});
|
|
|
|
await interaction.reply({ content: "Message sent", ephemeral: true });
|
|
}
|
|
|
|
if (subcommand === "sendinactivityapplication") {
|
|
const channel = interaction.options.getChannel("channel");
|
|
|
|
await channel.send({
|
|
embeds: [
|
|
{
|
|
title: "Inactivity Log",
|
|
description: "You can send an inactivity log by clicking the button below.",
|
|
color: embedColor,
|
|
footer: {
|
|
text: interaction.guild.name + " | Developed by @Taken#0002",
|
|
iconURL: interaction.guild.iconURL({ dynamic: true })
|
|
},
|
|
thumbnail: {
|
|
url: interaction.guild.iconURL({ dynamic: true })
|
|
}
|
|
}
|
|
],
|
|
components: [
|
|
new ActionRowBuilder()
|
|
.addComponents(new ButtonBuilder()
|
|
.setCustomId("guildinactivitylog")
|
|
.setLabel("Submit")
|
|
.setStyle(ButtonStyle.Primary)
|
|
.setEmoji({ name: "✅" }))
|
|
]
|
|
});
|
|
|
|
await interaction.reply({ content: "Message sent", ephemeral: true });
|
|
}
|
|
|
|
if (subcommand !== "sendguildinfo" || "sendrequirements" || "sendrules-info") {
|
|
await interaction.reply({ content: "In development.", ephemeral: true });
|
|
}
|
|
}
|
|
}; |