diff --git a/commands/eval.js b/commands/eval.js index 7d25d371..88e2630f 100644 --- a/commands/eval.js +++ b/commands/eval.js @@ -5,7 +5,9 @@ module.exports = { async execute(message, args, client, Discord, prefix) { const ytdl = require('ytdl-core'); const serverQueue = client.queue.get(message.guild.id); - let data = await Promise.resolve(ytdl.getInfo(serverQueue.songs[0].url)); + if (serverQueue) { + let data = await Promise.resolve(ytdl.getInfo(serverQueue.songs[0].url)); + } if (message.author.id !== '360363051792203779') return message.channel.send(':x: You are not allowed to do that!'); const input = message.content.slice(prefix.length + 4); let output; diff --git a/commands/playlist.js b/commands/playlist.js new file mode 100644 index 00000000..e74225ec --- /dev/null +++ b/commands/playlist.js @@ -0,0 +1,56 @@ +module.exports = { + name: 'playlist', + usage: '[option]', + description: 'Save and load queues', + cooldown: 10, + async execute(message, args, client, Discord, prefix) { + const serverQueue = client.queue.get(message.guild.id); + if (client.global.db.guilds[message.guild.id].premium) { + if (args[1] === 'play') { + if (client.global.db.playlists[message.guild.id].saved) { + if (!serverQueue) { + const construct = { + textChannel: message.channel, + voiceChannel: message.member.voiceChannel, + connection: null, + songs: [...client.global.db.playlists[message.guild.id].songs], + volume: client.global.db.guilds[message.guild.id].defaultVolume, + playing: true, + looping: false + }; + client.queue.set(message.guild.id, construct); + message.channel.send(":white_check_mark: Queue set!"); + try { + var connection = await message.member.voiceChannel.join(); + construct.connection = connection; + client.funcs.play(message.guild, construct.songs[0], client, message, 0); + } catch (error) { + client.queue.delete(message.guild.id); + return message.channel.send(`:x: An error occured: ${error}`); + } + } else { + serverQueue.connection.dispatcher.end("queue set"); + serverQueue.songs = [...client.global.db.playlists[message.guild.id].songs]; + message.channel.send(":white_check_mark: Queue set!"); + } + } else return message.channel.send(':x: There is no queue set for this server!') + } else if (args[1] === 'save') { + client.global.db.playlists[message.guild.id] = { + songs: serverQueue.songs, + firstSong: serverQueue.songs[0], + saved: true, + }; + message.channel.send(":white_check_mark: Queue saved!"); + } else { + const embed = new Discord.RichEmbed() + .setTitle('Options for playlist!') + .addField('play', 'Play the guild specific queue.', true) + .addField('save', 'Save the currently playing queue.') + .setFooter(`how to use: ${prefix}playlist