Estoy tratando de hacer un comando de automemes, y puedo hacer que el intervalo comience y funcione correctamente, pero cuando trato de detenerlo, el comando se ejecuta nuevamente, inicia un nuevo intervalo y lo desactiva instantáneamente. No puedo entender cómo puedo detener el intervalo. ¿Que puedo hacer? código:
const { SlashCommandBuilder } = require("@discordjs/builders"); const fetch = (...args) => import("node-fetch").then(({default: fetch}) => fetch(...args)); module.exports = { data: new SlashCommandBuilder() .setName("automemes") .setDescription("Sends random memes every 5 minutes (from r/memes)") .addBooleanOption(option => option.setName("enabled") .setDescription("Set the automemes to on/off") .setRequired(true)), async execute(client, interaction, Discord) { let isEnabled = interaction.options.get("enabled").value; async function sendMemes() { fetch("https://meme-api.herokuapp.com/gimme/memes") .then(res => res.json()) .then(async json => { const Embed = new Discord.MessageEmbed() .setTitle(json.title) .setImage(json.url) if (Embed.title.length > 256) return; await interaction.channel.send({embeds: [Embed]}); }); } let interval = setInterval(() => sendMemes(), 10000) async function startInterval () { interval; interaction.reply("Automemes enabled! " + ENV.CATKISS); } async function disableInterval() { clearInterval(interval); interaction.reply("Automemes disabled! " + ENV.CATKISS); } isEnabled? startInterval() : disableInterval(); } }