Soy muy, muy nuevo en la programación y estoy tratando de configurar un bot de discordia básico que envíe un video todos los viernes. Actualmente tengo:
Index.js que contiene:
const Discord = require("discord.js"); const fs = require("fs"); require("dotenv").config() const token = process.env.token; const { prefix } = require("./config.js"); const client = new Discord.Client(); const commands = {}; // load commands const commandFiles = fs.readdirSync("./commands").filter(file => file.endsWith(".js")); for (const file of commandFiles) { const command = require(`./commands/${file}`); commands[command.name] = command; } // login bot client.on("ready", () => { console.log(`Logged in as ${client.user.tag}`); }); client.on("message", message => { if(!message.content.startsWith(prefix) || message.author.bot) return; const args = message.content.slice(prefix.length).trim().split(/ +/); const command = args.shift().toLowerCase(); let cmd = commands[command]; if(cmd) cmd.execute(message, args) }); client.login(token);y una carpeta de comandos que contiene beeame.js y que contiene:
module.exports = { name: "beeame", description: "b", execute: (message) => { message.channel.send("It's Friday!", { files: ["./beeame.mp4"] }); } }Escuché sobre trabajos e intervalos cron, pero no estoy seguro de cómo agregarlos al código que tengo actualmente.
¡Cualquier ayuda sería muy apreciada!
Nate,
He aquí algunos conceptos básicos, para empezar. Su proyecto existente que mostró, configura su bot para manejar los mensajes cada vez que llegan. Todo allí se queda como está. Desea agregar una nueva sección para tratar con los temporizadores.
Primero, aquí hay un fragmento de un archivo de utilidad que tiene que lidiar con Cron Jobs:
const CronJob = require('cron').CronJob; const job = new CronJob('* * * * *', function() { const d = new Date(); console.log('At each 1 Minute:', d); }); job.start();lo que hay que estudiar y prestar atención es el área ' * * * '. Querrá entender esto, para establecer el tiempo correctamente.
así que reemplace el registro de la consola con sus mensajes, configure su tiempo correctamente y debería estar listo para comenzar. La otra cosa que debe recordar es que dondequiera que se ejecute su bot, la zona horaria puede ser diferente de donde usted (u otros están)... por lo que es posible que deba ajustarlo si tiene necesidades específicas de hora del día.
Editar: según las preguntas posteriores ... y tenga en cuenta que no configuré el tiempo correcto. realmente necesitas investigar más para entenderlo.
const cron = require('cron').CronJob; const sendMessageWeekly = new cron('* * * * *', async function() { const guild = client.guilds.cache.get(server_id_number); if (guild) { const ch = guild.channels.cache.get(channel_id_number); await ch.send({ content: 'This is friendly reminder it is Friday somewhere' }) .catch(err => { console.error(err); }); } }); sendMessageWeekly.start();