Necesito ayuda. Quiero que mi bot envíe un mensaje a todos los canales en un archivo .txt cada 6 horas, pero no solo todos los mensajes al mismo tiempo. Entre cada mensaje debe haber un tiempo de reutilización de 4-5 segundos. esto es lo que tengo que trabajar:
const { Client } = require('discord.js'); const client = new Client({intents: []}) const config = require("./config.json"); const fs = require('fs'); //fs reads text files :DD var text = fs.readFileSync('./text.txt', {"encoding": "utf-8"}) function loop() { //loop start var sixhours = Math.floor(Math.random() * 3800000) + 21600000; //generate the random 6 hour wait setTimeout(function(){ //wait 6 hours to send text to server console.log(`Waited with time: ${sixhours}`) console.log('Start sending to server.') //Server1 var message_cooldown = Math.floor(Math.random() * 5000) + 3000; //generate the cooldown setTimeout(function(){ client.channels.cache.get('567823454237345').send(text) console.log('Done with Server1.') }, message_cooldown); // Server2 setTimeout(function(){ client.channels.cache.get('5678356424363456').send(text) console.log('Done with Server2.') }, message_cooldown); //done loop(); }, sixhours); } loop(); //loop end client.login(config.token);Estos dos canales no son los únicos, entonces, ¿hay alguna manera de obtener todas las identificaciones de canales de un archivo y hacer el mismo proceso? Llevaría mucho tiempo pegar cada ID con código allí. Con la versión más corta, también tiene la posibilidad de agregar ID de canal a través de un comando.
Editar: Respuesta apestada
Utiliza JSON para almacenar y obtener datos.
Obtener datos de JSON:
const fs = require('fs'); fs.readFile('example.json', 'utf-8', (err, data) => { if (err) { throw err; } const jsonData = JSON.parse(data.toString()); console.log(jsonData); })Escribir datos en JSON:
const fs = require('fs'); const exampleObj = { "name": "Doe, John", "age": "23", "DoB": "1/1/1999" }; const jsonData = JSON.stringify(exampleObj) fs.writeFile('example.json', jsonData, (err) => { if (err) { throw err; } console.log("Data Written"); });Cambie y utilice el código como sea necesario para el efecto deseado. Supongo que sabe cómo estructurar un archivo JSON, así que lo dejo fuera.