const { SlashCommandBuilder } = require('@discordjs/builders'); const { EmbedBuilder, Discord } = require('discord.js'); const { EmbedMe } = require('../util/embed.js'); const { ActionRowBuilder, ModalBuilder, TextInputStyle, TextInputBuilder } = require('discord.js'); module.exports = { data: new SlashCommandBuilder() .setName('loarequest') .setDescription('Request a leave of absence'), async execute(interaction) { const modal = new ModalBuilder() .setCustomId('loa') .setTitle('Leave of Absence Request'); const nameInput = new TextInputBuilder() .setCustomId('name') .setLabel('What is your name?') .setPlaceholder('John Doe') .setRequired(true) .setStyle(TextInputStyle.Short) console.log(nameInput) const reasonInput = new TextInputBuilder() .setCustomId('reason') .setLabel('What is the reason for the LOA?') .setPlaceholder('I am going on vacation.') .setRequired(true) .setStyle(TextInputStyle.Paragraph) console.log(reasonInput) const firstActionRow = new ActionRowBuilder().addComponents(nameInput); const secondActionRow = new ActionRowBuilder().addComponents(reasonInput); modal.addComponents(firstActionRow, secondActionRow); const name = interaction.fields.getTextInputValue('nameInput'); const reason = interaction.fields.getTextInputValue('reasonInput'); await interaction.showModal(modal) const embed = new Discord.MessageEmbed() .setTitle('Leave of Absence') .setDescription('**New Form Submitted**') .addField('Reason', '```' + interaction.values[0] + '```') .addField('Length', '```' + interaction.values[1] + '```') .addField('Additional Notes', '```' + interaction.values[2] + '```') .setFooter(`Submitted by ${interaction.user.tag}`) .setTimestamp() .setColor(config.colors.main) const channel = await bot.channels.fetch('1028291276925325483') channel.send({ embeds: [embed] }) interaction.reply({ content: 'Leave of absence request submitted.', ephemeral: true }) } }