Estoy usando
let real_members = interaction.guild.members.cache.filter((member) => !member.user.bot).size;para obtener todos los miembros excluyendo los bots en un servidor, pero esto de alguna manera siempre devuelve 1. (Comando de barra oblicua)
Obtenga todos los miembros del gremio primero y acceda a la colección que regresa, luego barra (elimine) a todos los miembros que son bots.
let real_members; interaction.guild.members.fetch().then(all_members => { real_members = all_members.sweep(member => member.user.bot); }); console.log(real_members.size); Asegúrese de tener Intents.FLAGS.GUILD_MEMBERS incluidos en las intenciones de su cliente y habilitados en su portal de desarrolladores de Discord
Funciones de utilidad de la colección Discord.JS
Tal vez intente usar ".fetch" entonces:
interaction.guild.members.fetch() .then ((members) => { const AmountOfMembers = members.filter((member) => !member.user.bot).size })EL CÓDIGO NO SE PRUEBA
Para poder acceder a él desde afuera, defina la variable afuera o conviértala en una función y devuelva el valor.
function getMembers (interaction) { interaction.guild.members.fetch() .then ((members) => { members.filter((member) => !member.user.bot).size .then((Amount) => { return Amount }) }) }; const AmountOfMembers = getMembers(interaction);Solo pásalo a tu interacción.