Estoy tratando de obtener un gremio usando su ID en el que se encuentra el bot, pero parece que no funciona. Cada vez que ejecuto esto, genera una colección de cada gremio en el que se encuentra el cliente.
e se lee desde un archivo JSON, la propiedad id es una copia directa del servidor.
client.guilds.fetch(e.id).then((guild) => { // logs every available guild instead of the one where id is e.id console.log(guild) })Aquí están mis intenciones y parciales.
const client = new Discord.Client({ intents: [ Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES, Intents.FLAGS.DIRECT_MESSAGES, Intents.FLAGS.GUILD_MESSAGE_REACTIONS, Intents.FLAGS.DIRECT_MESSAGE_REACTIONS ], partials: ['MESSAGE', 'CHANNEL', 'REACTION'], });Hay dos opciones; o su id no está undefined o es un número.
Como fetch solo acepta un GuildResolvable o FetchGuildOptions / FetchGuildsOptions como su parámetro. Si pasa algo más, simplemente se ignora y se recuperan todos los gremios disponibles (tal como lo mencionó).
Creo que su id es un copo de nieve, ya que mencionó que proviene de un archivo JSON. Los copos de nieve siempre deben ser cuerdas . Si almacena estos ID como números, JS tiene dificultades para interpretarlos. Cualquier número mayor que MAX_SAFE_INTEGER se convierte en un número diferente, y si proporciona una ID diferente, nuevamente, se obtienen todos los gremios disponibles.
Por ejemplo, si su copo de nieve es 921423246421811231 , se convierte en 921423246421811200 . Intente ejecutar el fragmento a continuación, verá que registra el segundo número, no el valor de e.id :
let e = { id: 921423246421811231 } console.log(e.id) Para resolver esto, asegúrese de almacenar la id como una cadena en su archivo JSON:
{ "id": "921423246421811231" }