Creé un bot de discordia que hace algunas cosas en algunos servidores, una de las características para mostrar la fecha/hora como nombre de canal, tengo uno que está escrito de la misma manera que muestra el recuento de miembros y se actualiza pero la fecha vez que uno parece ejecutarse una vez y nunca vuelve a cambiar el nombre.
const events = {}; const getDateTime = (format) => { format = format || "d/m/yh:i" var now = new Date(), year = now.getFullYear(), month = now.getMonth()+1, day = now.getDate(), hour = now.getHours(), minute = now.getMinutes(), second = now.getSeconds(); if(month.toString().length == 1) { month = '0'+month; } if(day.toString().length == 1) { day = '0'+day; } if(hour.toString().length == 1) { hour = '0'+hour; } if(minute.toString().length == 1) { minute = '0'+minute; } if(second.toString().length == 1) { second = '0'+second; } return format.replace("d", day) .replace("m", month) .replace("y", year) .replace("h", hour) .replace("i", minute) .replace("s", second) } module.exports = (client, guildId, channelId, format) => { const guild = client.guilds.cache.get(guildId); events[guildId] = setInterval(()=> { const channel = guild.channels.cache.get(channelId); const date = getDateTime(format); const clock = "🕒 "; channel.setName(date); }, 1000 * 60); } module.exports.list = () => { return events; } module.exports.stop = (guildId) => { clearInterval(events[guildId]); }esto se ejecuta llamándolo como
const guildDateTime = require("./guildDateTime"); // inside the client.on("ready") client.guilds.cache.forEach(guild => { // other guild based features guildMemberCount(client, guild.id, channelConfig.memberCount.channel) guildDateTime(client, guild.id, channelConfig.dateTime.channel, channelConfig.dateTime.format); }); He puesto console.log en el setInterval al que se llama y se repite, pero el nombre del canal solo cambia una vez y nunca vuelve a cambiar, este método se usa en otra función que hace lo mismo para cambiarle el nombre al recuento de miembros, esto funciona perfecto sin problemas.
¿Hay algo que me falta en esto?
cualquiera con alguna idea.