He estado tratando de obtener la lista de todos los miembros de mi gremio usando la sintaxis que se menciona en los documentos aquí . Pero no estoy recibiendo ninguna salida. A continuación se muestra el código que estoy usando.
const { Client, Intents, Guild } = require("discord.js"); require("dotenv").config(); const commandHandler = require("./commands"); const fetch = require("node-fetch"); const client = new Client({ intents: ["GUILDS", "GUILD_MESSAGES", "GUILD_PRESENCES"], }); client.once("ready", async (data) => { console.log("Ready!"); console.log(`Logged in as ${client.user.tag}!`); const Guilds = client.guilds.cache.map((guild) => guild); console.log(Guilds[0]); await Guilds[0].members.fetch().then(console.log).catch(console.error); }); client.on("interactionCreate", async (interaction) => { if (!interaction.isCommand()) return; if (interaction.commandName === "ping") { await interaction.reply(client.user + "💖"); } }); client.on("messageCreate", commandHandler); client.login(process.env.BOT_TOKEN); // Kushagra's bot Obtengo la información sobre la instancia de Guild a través de console.log en la línea 13. Pero no obtengo ningún resultado para la línea 15. Sin embargo, noté que obtenía algunos resultados si añadía opciones al comando fetch() en la línea 14 Recibí algunos resultados cuando agregué {query: 'random text'} .
Solo quería entender por qué no puedo obtener una lista de todos los miembros. ¡Gracias! 🙂
Descubrí que me había perdido el Intent. Parece que para obtener miembros necesita agregar una intención GUILD_MEMBERS al crear una instancia de cliente.
Entonces, reemplazar la creación del cliente con la siguiente funcionará.
const client = new Client({ intents: ["GUILDS", "GUILD_MESSAGES", "GUILD_PRESENCES", "GUILD_MEMBERS"] });