Quiero compartir sobre el estado de presencia la cantidad de gremios en los que se encuentra el bot.
let activities = [ "!help", `on ${client.guilds.cache.size} servers`, ]; setInterval(() => { //generate random number between 1 and list length. const randomIndex = Math.floor(Math.random() * activities.length); const newActivity = activities[randomIndex]; client.user.setActivity(newActivity); }, 10000);Fuente , de otra pregunta de stakoverflow. Pero esto no resuelve mi problema.
De esta manera solo obtendrás la cantidad de gremios al momento de iniciar el bot, pero no se actualizará. Así que hice esto:
let activities = [ "!help", `on ${client.guilds.cache.size} servers`, ]; setInterval(() => { let guildCount = client.guilds.cache.size; activities = [ "!help",, `on ${guildCount} servers`, ]; }, 600000); setInterval(() => { const randomIndex = Math.floor(Math.random() * activities.length); const newActivity = activities[randomIndex]; client.user.setActivity(newActivity); }, 10000);¿Conoces alguna forma de hacerlo sin tener 2 intervalos establecidos? ¿No es recomendable tener intervalos innecesarios?
Podría poner la matriz de activities dentro de su función de intervalo.
setInterval(() => { let activities = [ "!help", `on ${client.guilds.cache.size} servers`, ]; //generate random number between 1 and list length. const randomIndex = Math.floor(Math.random() * activities.length); const newActivity = activities[randomIndex]; client.user.setActivity(newActivity); }, 10000);