const { SlashCommandBuilder } = require('@discordjs/builders'); const { MessageActionRow, Modal, TextInputComponent } = require('discord.js'); const fn = require('../functions.js'); module.exports = { data: new SlashCommandBuilder() .setName('meme') .setDescription('Generate a meme from a template') .addStringOption(option => option.setName('template') .setDescription('The meme template') .setRequired(true) .addChoices( { name: 'Drake Hotline Bling', value: '181913649' }, { name: 'Anakin & Padme', value: '322841258' }, { name: 'Y\'all Got Any More...', value: '124055727' }, { name: 'We Are Not The Same', value: '342785297' }, { name: 'Surprised Pikachu', value: '155067746' }, { name: 'Two Buttons', value: '87743020' }, { name: 'Uno Draw 25', value: '217743513' } ) ), async execute(interaction) { try { const template = interaction.options.getString('template'); let memeModal; // Switch the template switch (template) { // One-Field Memes // Two-Field Memes case '181913649': // Y'all got any more of that // Generate a modal with two text inputs memeModal = fn.memes.twoFieldModal(template, ['Top Text', 'Bottom Text']); await interaction.showModal(memeModal); break; case '124055727': // Drake Hotline Bling No/Yes // Generate a modal with two text inputs memeModal = fn.memes.twoFieldModal(template, ['Drake No', 'Drake Yes']); await interaction.showModal(memeModal); break; case '217743513': // Uno Draw 25 // Generate a modal with two text inputs memeModal = fn.memes.twoFieldModal(template, [' or draw 25', 'Caption Above Person']); await interaction.showModal(memeModal); break; // Three-Field Memes case '322841258': // Anakin & Padme case '342785297': // We are not the same case '155067746': // Surprised Pikachu case '87743020': // Two Buttons // Generate a modal with three text inputs const threeFieldMemeModal = fn.memes.threeFieldModal(template); await interaction.showModal(threeFieldMemeModal); break; default: await interaction.reply('Invalid meme template'); break; } } catch (error) { console.error(error); await interaction.reply('There was an error while executing this command!'); } }, };