Pause resume loop
This commit is contained in:
67
utils/musicPlayer.js
Normal file
67
utils/musicPlayer.js
Normal file
@@ -0,0 +1,67 @@
|
||||
const {
|
||||
createAudioResource,
|
||||
createAudioPlayer,
|
||||
NoSubscriberBehavior,
|
||||
AudioPlayerStatus,
|
||||
} = require('@discordjs/voice');
|
||||
const musicQueue = require('../musicQueue');
|
||||
|
||||
async function musicPlayer(guildId, connection) {
|
||||
const serverQueue = musicQueue.getQueue(guildId);
|
||||
|
||||
if (serverQueue.length === 0) {
|
||||
connection.destroy();
|
||||
return;
|
||||
}
|
||||
|
||||
const song = serverQueue[0];
|
||||
|
||||
if(song.stream == null){
|
||||
musicQueue.removeFromQueue(guildId);
|
||||
musicPlayer(guildId, connection);
|
||||
return;
|
||||
}
|
||||
|
||||
let resource = createAudioResource(song.stream, {
|
||||
inputType: song.type
|
||||
})
|
||||
|
||||
let player = createAudioPlayer({
|
||||
behaviors: {
|
||||
noSubscriber: NoSubscriberBehavior.Play
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
player.play(resource)
|
||||
|
||||
connection.subscribe(player)
|
||||
|
||||
player.on(AudioPlayerStatus.Idle, () => {
|
||||
console.log('Song ended:', song.title);
|
||||
musicQueue.removeFromQueue(guildId);
|
||||
musicPlayer(guildId, connection);
|
||||
});
|
||||
|
||||
return player;
|
||||
}
|
||||
|
||||
// TODO: USE THIS AGAIN
|
||||
function convertToMilliseconds(songLenth) {
|
||||
try {
|
||||
let time = songLenth.split(':')
|
||||
let milliseconds = 0;
|
||||
if(time.length == 3) {
|
||||
milliseconds = (parseInt(time[0]) * 60 * 60 * 1000) + (parseInt(time[1]) * 60 * 1000) + (parseInt(time[2]) * 1000)
|
||||
} else if(time.length == 2) {
|
||||
milliseconds = (parseInt(time[0]) * 60 * 1000) + (parseInt(time[1]) * 1000)
|
||||
} else if(time.length == 1) {
|
||||
milliseconds = (parseInt(time[0]) * 1000)
|
||||
}
|
||||
return milliseconds
|
||||
} catch (error) {
|
||||
return 10000;
|
||||
}
|
||||
}
|
||||
|
||||
module.exports.musicPlayer = musicPlayer;
|
||||
Reference in New Issue
Block a user