Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

451
Views
setInterval() cannot be accessed or cleared after executing command discord.js

I'm trying to make an automemes command, and I can get the interval starting and working properly, but when I try to stop it, the commands gets executed again, starts a new interval and disables it instantly. I can't figure out how can I stop the interval. What can I do? code:

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();
    }
}
about 4 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!