Estoy creando un evento que verifica una base de datos monogo en un intervalo establecido para ver si hay claves caducadas y luego eliminar un rol de ese miembro.
const mongoose = require("mongoose") const { Discord, GuildMemberRoleManager, GuildMember, Guild, Client, Message } = require("discord.js"); const { Database } = require("../../Structures/config.json"); const { count, key } = require("../../Structures/Schemas/keys"); const keys = require('../../Structures/Schemas/keys'); module.exports = { name: "ready", permission: "ADMINISTRATOR", /** * @param {Message} oldMessage * @param {GuildMemberRoleManager} * @param {GuildMember} member * @param {Guild} guild * @param {Client} client */ async execute(client, member, guild) { setInterval(() => { keys.count({ redeemed: true }, async function( err, results ){ console.log(results) console.log("Number of keys:", results); const counts = results; const keyfind = await keys.findOne({ redeemed: true }); for(let i = 0; i < counts; i++){ keys.findOne({ redeemed: true }, 'redeemedAt expiryAt userid', async function (err, keys){ if (err) return handleError(err); const currentTime = new Date(Date.now()) const expirationDate = keys.expiryAt; const timeout = currentTime - expirationDate; const role = guild.roles.cache.get('924064535663480922'); const member = await guild.members.fetch(keys.userid); console.log(timeout) if (timeout < -1){ await keys.then(keyfind.delete()); member.roles.remove(role); } }) } }); }, 3500); } }Sigo recibiendo este error cada vez que se ejecuta el evento "Error de tipo: no se pueden leer las propiedades de undefined (leyendo 'roles')".
Desafortunadamente, es bastante difícil darle una respuesta concluyente con los detalles que proporcionó.
Sabemos que está intentando acceder a algo que no está definido. ¿Está seguro de que guild se ha pasado correctamente a su función y ha comprobado si su búsqueda de member funciona correctamente?
Saludos
Haría algo como esto (si tiene un mensaje definido):
const role = message.guild.roles.cache.get(r => r.I'd ==='924064535663480922');