Estoy tratando de hacer un bot que envíe un mensaje aleatorio desde una matriz usando cron.
Aquí está mi código:
const cron = require('cron'); module.exports = { name: 'pesanrandom', description: "random message every day", execute(message, args, cmd, client, Discord){ let scheduledMessage = new cron.CronJob('00 54 16 * * *', () => { // var listPesan = [ 'Met siang guys, dah pada mam siang blum?', 'Siapa yang tadi pagi mimpiin cowo atau cewe kpopnya', 'Siang-siang enaknya...', 'Dor kaget ga', 'Laper dah', ]; var pesanRandom = listPesan[Math.floor(Math.random() * listPesan.length)]; const pesanEmbed = new Discord.MessageEmbed() .setColor('#50C878') .setTitle('vermillion#3039') .setDescription(pesanRandom) .setFooter('© Vermillion') client.channels.cache.get('927589065925214239').send(pesanEmbed); // }); scheduledMessage.start() } }Ya probé el código y funciona, pero solo puede aleatorizar el mensaje una vez. ¿Cómo hacer que el mensaje sea aleatorio cada vez que se envía el mensaje?
Entonces, la forma más fácil de hacer esto requiere dos archivos. Un archivo lo llamaremos listPesan.json y en ese archivo tendremos este texto:
[ "Met siang guys, dah pada mam siang blum?", "Siapa yang tadi pagi mimpiin cowo atau cewe kpopnya", "Siang-siang enaknya...", "Dor kaget ga", "Laper dah" ]El segundo archivo es su archivo de bot main.js y en algún lugar (no importa dónde, siempre y cuando no esté bajo un evento (.on('messageCreate'), .on('guildMemberAdd'), etc.)
Esto es independiente por sí solo (puedes juntar tus cosas const si quieres) y vamos a usar node-cron , supuestamente es "mejor", no sé, siempre lo he usado.
const cron = require('node-cron') const listPesan = require('./listPesan.json') // or where ever you put the file we just made above cron.schedule('00 54 16 * * *', () => { const pesanRandom = listPesan[Math.floor(Math.random() * listPesan.length)] const pesanEmbed = new Discord.MessageEmbed() .setColor('#50c878') .setTitle('vermillion#3039') .setDescription(pesanRandom) .setFooter('© Vermillion') // if using discord v12 client.channels.cache.get('927589065925214239').send(pesanEmbed) // if using discord v13 client.channels.cache.get('927589065925214239').send({ embeds: [pesanEmbed] }) }