¿Por qué esta función:
client.player.once(AudioPlayerStatus.Idle, () => { console.log(client.playlist); next.run(message, args, client); client.playlist.shift(); return; });se ejecuta solo cuando el recurso ya se reprodujo, y no cuando inicializo AudioPlayer? ¿No está inactivo por defecto?
De la documentación de @discordjs/voice ( referencia aquí ):
Tanto las conexiones de voz como los reproductores de audio tienen estado, y puede suscribirse a los cambios en su estado a medida que avanzan en sus respectivos ciclos de vida.
El AudioPlayer se inicia en Inactivo, pero no active este tipo de evento porque estos eventos solo se activan cuando se cambia de estado.
Es por eso que puede ver que el evento se activa solo cuando el recurso ya se ha reproducido.