es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

TypeError: No se pueden leer las propiedades de null (leyendo ‘setUsername’)

module.exports = (cliente) => {
const channelId = “926668045068410913”;
const rulesChannel = “927464314707783771”;
const canvacord = require(“canvacord”);

cliente.on("guildMemberAdd", miembro => {
    if (!miembro.user) {
        console.log("El miembro no tiene usuario");
        return;
    }

    const welcomeCard = new canvacord.Welcomer()
        .setUsername(miembro.user.username)
        .setDiscriminator(miembro.user.discriminator)
        .setAvatar(miembro.user.displayAvatarURL({ format: "png" }))
        .setColor("tittle", "#111111")
        .setColor("username-box", "#111111")
        .setColor("user-discriminator", "#111111")
        .setColor("message-box", "#111111")
        .setColor("boder", "#111111")
        .setColor("avatar", "#111111")
        .setbackgroung("https://i.imgur.com/WTQXVME.jpeg")
        .set(miembro.guild.memberCount);

    const channel = miembro.guild.channels.cache.get(channelId);
    channel.send(welcomeCard).catch(error => {
        console.log("Error al enviar la tarjeta de bienvenida:", error);
    });
});

};

Deseo solucionar el error que ocurre cuando uso .setUsername(miembro.user.username).

Error:

TypeError: Cannot read properties of null (reading ‘user’)

¿Qué puedo hacer?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para solucionar el error, necesitamos verificar si el objeto member tiene una propiedad user válida antes de llamar a .setUsername(). Podemos agregar una declaración if para verificar si member.user no es nulo ni indefinido, así:

    client.on("guildMemberAdd", member => {
        if (member.user) {
            const welcomeCard = new canvacord.Welcomer
                .setUsername(member.user.username)
                .setDiscriminator(member.user.discriminator)
                .setAvatar(member.user.displayAvatarURL({ format: "png" }))
                .setColor("tittle", "#111111")
                .setColor("username-box", "#111111")
                .setColor("user-discriminator", "#111111")
                .setColor("message-box", "#111111")
                .setColor("boder", "#111111")
                .setColor("avatar", "#111111")
                .setbackgroung("https://i.imgur.com/WTQXVME.jpeg")
                .set(member.guild.memberCount);
    
            const channel = member.guild.channels.cache.get(channelId);
            channel.send(welcomeCard);
        }
    });
    

    En el código actualizado, primero verificamos si member.user es verdadero (null, undefined y 0 son falsos en JavaScript). Si es verdadero, procedemos a crear la tarjeta de bienvenida y enviarla al channel. Si es falso, omitimos todo el bloque de código y no hacemos nada.

Comments are closed.