Estoy haciendo un comando de rol cronometrado. Sé que si uso setInterveral() , se eliminará después de reiniciar el bot. Por lo tanto, intenté usar quick.db para almacenar ID de usuario y también la hora en la base de datos. Intenté buscar db cuando un usuario escribe algo, funciona, pero lo que quiero es que no necesito escribir ningún comando, si el tiempo termina, el rol se eliminará del usuario de la base de datos. Aquí está mi código:
message.reply({ embeds: [ new Discord.MessageEmbed() .setTitle(`Role added`) .setDescription(`You got the role for a 1 week`) ]}) db.set(`role_${message.author.id}`, Date.now()) let role = message.guild.roles.cache.find(role => role.id === '873283387144691723') message.member.roles.add(role) db.push(`role_${message.guild.id}`, { week:`${message.member.id}`})índice.js:
client.on('messageCreate', message => { let members = db.fetch(`role_${message.guild.id}`) if(members !== null && members.find(x => x.week === message.author.id).week) { let timeout = 6048; let duration = db.fetch(`role_${message.author.id}`) if(timeout - (Date.now() - duration) <= 0) { let role = message.member.roles.cache.find(role => role.id === '873283387144691723') message.member.roles.remove(role) } else { let timeout = 6048; let date = db.fetch(`role_${message.member.id}`) message.channel.send(`${ms(timeout - (Date.now() - date), { long: true })}`) } } else { return; } }¿Qué debo hacer si quiero que el bot elimine automáticamente el rol después de que finalice el tiempo de los usuarios en la base de datos?
Nota: también quiero agregar varios usuarios en db.