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