Estoy intentando buscar a todos los miembros de un determinado canal de voz de Discord usando discord.js
Tengo una función tratando de hacer esto ahora mismo. Toma una interaction , que se da cuando un usuario ejecuta un comando de barra en Discord. El parámetro de options es simplemente el canal que pasan al comando.

const execute = async (interaction, options) => {
if (interaction.member.permissions.has(Permissions.FLAGS.MANAGE_GUILD)) {
await interaction.guild.members.fetch();
await interaction.deferReply({ ephemeral: true });
const channelInput = options.getChannel('channel');
const channel = await interaction.member.guild.channels.fetch(channelInput.id);
const members = channel.members.map(member => member.id);
console.log(members); // [ '143100912687251456', '143100912687251622' ]
}
}
El problema es que no se actualiza correctamente si el usuario cambia de canal. Si reinicio el bot y ejecuto el comando, se ejecuta perfectamente. Pero si tuviera que cambiar a otro canal de voz, todavía piensa que estoy en el antiguo y no en el nuevo.
Esto probablemente se deba a que está obteniendo algún tipo de caché. ¿Alguien sabe cómo obtener su API directamente en lugar de un caché local que no se actualiza?
Agregar intención de GuildVoiceStates
intents: [
GatewayIntentBits.GuildVoiceStates,
],