diff --git a/src/index.js b/src/index.js index 5726c1b..cef118c 100644 --- a/src/index.js +++ b/src/index.js @@ -116,6 +116,13 @@ async function play(song, id, connection, channel) { const stream = got(url, {isStream: true}); const resource = Voice.createAudioResource(stream, { inputType: Voice.StreamType.Arbitrary }); + stream.on('error', err => { + console.log(err); + channel.send(`failed to play track: \`\`\`${err}\`\`\``); + advanceQueue(id, channel, subscription, connection); + return; + }); + if (players[id]) { console.log('reusing player'); player = players[id]; @@ -253,7 +260,7 @@ bot.on('messageCreate', async (msg) => { if (q.length === 0) { msg.channel.send('no songs queued!'); } else { - msg.channel.send('```' + q.map((m, i) => `${i === 0 ? 'now playing:' : i + '.'} ${m.title} ${(m.duration !== 0) ? formatTime(m.duration) : ''}`).join('\n') + '```'); + msg.channel.send(`${q.length} tracks\ntotal queue length: ${formatTime(q.reduce((p, c) => (p || {duration: 0}).duration || 0 + c.duration || 0))}\n` + '```' + q.slice(0, 10).map((m, i) => `${i === 0 ? 'now playing:' : i + '.'} ${m.title} ${(m.duration !== 0) ? formatTime(m.duration) : ''}`).join('\n') + '```'); } } else if (cmd === 'np' || cmd === 'nowplaying') { const song = (queue[msg.guild.id] || [])[0];