He estado tratando de hacer un comando de invitaciones que debería encontrar todas las invitaciones de los servidores en los que está mi Bot.
(SOLO MIS PROPIOS SERVIDORES)
Probé algunas ideas y código, pero nada funcionó, cómo implementarlo en mi Incrustación de Discord. Ya sé que solo necesito ayuda con la lista de invitados.
client.guilds.forEach(guild => { guild.fetchInvites().then(guildInvites => { invites[invites.length + 1] = (guild + " - `Invites: " + guildInvites.array().join(", ") + "`"); ct++; if(ct >= client.guilds.size) { invites.forEach((invite, i) => { if(invite == undefined) invites.splice(i, 1); }); invites.shift(); invites.forEach((invite, i) => invites[i] = "- " + invite); invites = invites.join("\n\n"); let embed = new Discord.RichEmbed() .setTitle("All Invites:") .setDescription(invites); message.channel.send(embed); } }) });``` Help is much appreciated.¿Está almacenando en caché sus servidores antes de recuperarlos? El caché es necesario para que el bot pueda obtener información de cada gremio en el que se encuentra. Cambia la primera línea a
client.guilds.cache.forEach(() => { // ... }Obtuve este código de esta respuesta aquí .
De las respuestas anteriores y los comentarios sobre ellas, puedo suponer que no tiene las intenciones requeridas al crear una instancia de la clase de client , O que tal vez su clase de client no esté definida correctamente.
¿Cómo defines al cliente? Si es de otro archivo, intenta importarlo correctamente. No haga múltiples clientes desde un mismo token/proceso.
client.guilds.cache.map(guild => { let embed = new Discord.RichEmbed() .setTitle("All Invites:") guild.channels.cache .first() .createInvite() .then((invite) => embed.setDescription(invites.url);) .catch(() => embed.setDescription("Lien d'invitation", "Permission Invalides")); message.channel.send(embed); })