nodbot/slash-commands/meme.js
Skylar Grant 80c23ca7db
All checks were successful
NodBot PE Dockerization / build (push) Successful in 9s
Added dynamic labels and default values.
2025-02-09 21:12:27 -05:00

73 lines
2.8 KiB
JavaScript

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, ['<blank> 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!');
}
},
};