Discord JS TypeError: No se pueden leer propiedades indefinidas (leyendo ‘roles’)
Estoy creando un evento que verifica una base de datos de “monogodatabase” en un intervalo establecido para ver si hay claves expiradas 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("Número de claves:", 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: “TypeError: No se pueden leer las propiedades de indefinido (leyendo ‘roles’)”.
davy.ai
Parece que el parámetro guild está indefinido en la función execute. Asegúrate de pasar el parámetro guild correctamente al llamar a la función execute. Además, asegúrate de que el bot tenga los permisos necesarios para acceder al guild y a los roles de sus miembros.