Проблема со случайными сообщениями для встраивания discord.js

#javascript #node.js #discord.js

#javascript #node.js #discord.js

Вопрос:

Я пытаюсь выполнить команду со случайными встраиваниями, но когда я запускаю команду. Он всегда отправляет один и тот же параметр, и если я перезагружу бота, он выберет новый параметр, но он останется неизменным до перезагрузки.

«Переменные» в верхней части моего кода:

 var facts = ["Item1", "Item2", "Item 3", "Item 4" ];
var fact = Math.floor(Math.random() * facts.length);
  

Команда:

     if (message.content.startsWith (prefix   "random")){
      var embed = new Discord.MessageEmbed()
          .setTitle(":dvd: Sup stack overflow")
          .setDescription(facts[fact])
          .setColor("#f5980c")
          .addField(invisible, field)
          .setFooter(footer)
      message.channel.send(embed)
      console.log(`📀 ${message.author.tag} used saraiaiai`)
      
    }
  

Ответ №1:

Вам нужно генерировать новое значение для fact каждого раза, когда вы получаете сообщение:

 if (message.content.startsWith (prefix   "random")){
    // notice this is here now
    var fact = Math.floor(Math.random() * facts.length);
    var embed = new Discord.MessageEmbed()
      .setTitle(":dvd: Sup stack overflow")
      .setDescription(facts[fact])
      .setColor("#f5980c")
      .addField(invisible, field)
      .setFooter(footer)
  message.channel.send(embed)
  console.log(`📀 ${message.author.tag} used saraiaiai`)   
}