GOOGLE ADS

martes, 26 de abril de 2022

Discord.js obteniendo la etiqueta de usuario del propietario del servidor devuelve nulo

Estoy tratando de hacer que mi bot envíe una inserción cuando el bot se une a un servidor. Se supone que la inserción contiene el nombre del propietario del servidor, pero devuelve un valor nulo y no funciona y me da el error TypeError: No se puede leer la propiedad 'usuario' de nulo.

guild.owner.user.username

el codigo completo

client.on("guildCreate", (guild) => { 
const EmbedJoin = new Discord.MessageEmbed()
.setColor('GREEN')
.setTitle(`Joined Guild: ${guild.name}!`)
.setDescription(`Guild owner: ${guild.owner.user.username}\nMembers: ${guild.memberCount}`)
.setTimestamp()
console.log(`Joined New Guild: ${guild.name}`);
client.channels.cache.get(`794483893977088002`).send(EmbedJoin)
});

EDITAR: encontré una solución que funcionó para mí

client.on("guildCreate", async (guild) => {
let owner = client.users.cache.get(guild.ownerID)
const EmbedJoin = new Discord.MessageEmbed()
.setColor('GREEN')
.setTitle(`Joined Guild: ${guild.name}!`)
.setThumbnail(guild.iconURL())
.setDescription(`Guild owner: ${owner.username}`)
.setTimestamp()
console.log(`Joined New Guild: ${guild.name}`);
client.channels.cache.get(`758356170926325790`).send(EmbedJoin)
});


Solución del problema

El usuario no siempre se almacena en caché.

Puedes almacenarlo así:await client.users.fetch(GUILD.ownerID);

Entonces, una copia fija de su código:

client.on("guildCreate", async (guild) => { 
await guild.owner.fetch();
const EmbedJoin = new Discord.MessageEmbed()
.setColor('GREEN')
.setTitle(`Joined Guild: ${guild.name}!`)
.setDescription(`Guild owner: ${guild.owner.user.username}\nMembers: ${guild.memberCount}`)
.setTimestamp()
console.log(`Joined New Guild: ${guild.name}`);
client.channels.cache.get(`794483893977088002`).send(EmbedJoin)
});

No hay comentarios:

Publicar un comentario

Regla de Firestore para acceder a la generación de subcolección Permisos faltantes o insuficientes

Tengo problemas con las reglas de Firestore para permitir el acceso a algunos recursos en una subcolección. Tengo algunos requests document...