discord.js wait before send message

26,282

Well it depends. If you trust on the bot's uptime (if the bot wont ever crash or restart during a giveaway) you can use a setTimeout:

setTimeout(function(){ 
    doSomething(); 
}, 3000);

This will run doSomething() after 3 seconds (3000 milliseconds).
So what you need to basically do is:

.then(msg => {
  msg.react('🎉');
  setTimeout(function(){
     client.channels.get(channel).send("It's finished!");
  }, EndMS);
})

Note: You might have to tweak the EndMS part.

Share:
26,282

Related videos on Youtube

Dillgo
Author by

Dillgo

Updated on June 18, 2020

Comments

  • Dillgo
    Dillgo almost 4 years

    My problem is that I want my discordbot wait during the giveaway until the giveway is out

    Here's my code :

            const Discord = require('discord.js');
            const client = new Discord.Client();
            const config = require("./config.json");
            var prefix = config.prefix;
            client.login(config.token);
    
        client.on('ready',() => {
            console.log('I\'m online');
        })
    
        client.on('message', message => {
    
          const args = message.content.slice(prefix.length).trim().split(/ +/g);
          const command = args.shift().toLowerCase();
    
    
          if (command === 'gstart') {
            var channel = args[0].slice(2).slice(0, -1);
            var price = args[1];
            var End = args[2];
            var EndMS = End*1000;
            client.channels.get(channel).send({embed: {
                color: 3447003,
                author: {
                  name: '',
                  icon_url: ''
                },
                title: "",
                url: "",
                description: "",
                fields: [{
                    name: 'a Giveaway just started !',
                    value: 'Put\'🎉\' in react of this message to try to win \'' + price + '\'.'
              },     
            ],
            timestamp: '',
            footer: {
              icon_url: '',
              text: 'End in ' + End + ' secondes !'
            }
          }
        })
        .then(msg => {
          msg.react('🎉');
          client.channels.get(channel).send('STUFF')(EndMS); // my problem is here
        })
      }
    

    He must wait EndMS milis and, after, choose a winner but for now, he send instantly STUFF, for choosing the winner, I will not ask it for you. All I want is he wait before sending Stuff.

    Thanks you for helping me.