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': // Drake Hotline Bling // Generate a modal with two text inputs memeModal = fn.memes.twoFieldModal(template, ['Drake No', 'Drake Yes']); await interaction.showModal(memeModal); break; case '124055727': // Y'all Got Any More... // Generate a modal with two text inputs memeModal = fn.memes.twoFieldModal(template, ['Top', 'Bottom Text'], ['Y\'all got any more of ', '']); 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'], ['', 'Me']); await interaction.showModal(memeModal); break; // Three-Field Memes case '322841258': // Anakin & Padme // Generate a modal with three text inputs memeModal = fn.memes.threeFieldModal(template, ['Anakin', 'Padme', 'Padme'], ['', '', 'Right?']); await interaction.showModal(memeModal); break; case '342785297': // We are not the same // Generate a modal with three text inputs memeModal = fn.memes.threeFieldModal(template, ['You...', 'I...', 'We...'], ['', '', 'We are not the same.']); await interaction.showModal(memeModal); break; case '155067746': // Surprised Pikachu case '87743020': // Two Buttons // Generate a modal with three text inputs memeModal = fn.memes.threeFieldModal(template, ['Button 1', 'Button 2', 'Person Caption']); await interaction.showModal(memeModal); 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!'); } }, };