Bonjour,
Voilà, je rencontre un petit problème avec mon code.
Décrivez ici votre code ou ce que vous cherchez à faire
Play.js :
const Command = require('./Command')
const fs = require('fs')
module.exports = class Play extends Command {
static match (message) {
return message.content.startsWith('!play')
}
static action (message) {
let voiceChannel = message.guild.channels.filter( function (channel) {
return channel.type === 'voice'
}).last()
voiceChannel.join()
.then(function (connection) {
fs.readdir('./music', function(err, items) {
for (let i = 0; i < items.length; i++) {
const dispatcher = connection.playFile('./music/' + items[i])
}
})
}).catch(console.error)
}
}
Comme indiqué dans le titre, je veux que ma boucle for puisse lire toutes les musiques de mon dossier "music".
Mais lorsque je fais ma commande !play, il ne lis que la premiere musique puis ne lis pas les autres. Merci d'avance pour l'aide que vous m'apporterez.
Cordialement
Tu dois utiliser l'evenement end
.
Exemple avec la lecture de vidéo youtube:
.playStream(stream)
.on('end', function () {
connection.disconnect()
})
Au lieu de lancer connection.disconnect()
, lance une function qui li ton tableau contenant les musiques, et tu réduit ce tableau au fur et à mesure jusqu'a ce qu'il est vide pour ensuite disconnect()
.
@Grafikart a donné un exemple dans sa vidéo d'ailleurs.