From caeeafa3bb8b622246fabc98839cd39bcb8f5068 Mon Sep 17 00:00:00 2001 From: mudkipscience Date: Wed, 29 Apr 2020 20:59:58 +1000 Subject: [PATCH] update music to support playnext --- commands/play.js | 8 ++++---- utils/music.js | 15 +++++++++++---- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/commands/play.js b/commands/play.js index 63313a8..bf5ca8b 100644 --- a/commands/play.js +++ b/commands/play.js @@ -12,12 +12,12 @@ exports.conf = { exports.help = { name: 'play', category: 'Music', - description: 'Plays or adds to queue requested music.', - usage: 'play [query]', - parameters: '[query] - A query to find video by or a link to the video.' + description: 'Plays the song you request, or adds it to the queue.', + usage: 'playnext [song]', + parameters: '[song] - The name or youtube URL of the song you want to play.' } const { play } = require('../utils/music') exports.run = async (client, message, args, level, data) => { - await play(client, data.guild.music, message, args.join(' ')) + await play(client, data.guild.music, message, args.join(' '), false) } diff --git a/utils/music.js b/utils/music.js index a058f82..fa01dec 100644 --- a/utils/music.js +++ b/utils/music.js @@ -64,7 +64,7 @@ exports.getVideoByQuery = async function (client, query) { } } -exports.play = async function (client, data, message, query, ignoreQueue) { +exports.play = async function (client, data, message, query, playNext, ignoreQueue) { const guild = exports.getGuild(message.guild.id) guild.message = message @@ -162,7 +162,11 @@ exports.play = async function (client, data, message, query, ignoreQueue) { } // Add video to queue - guild.queue.push({ video: video, requestedBy: message.author }) + if (playNext === true) { + guild.queue.splice(1, 0, { video: video, requestedBy: message.author }) + } else { + guild.queue.push({ video: video, requestedBy: message.author }) + } } // Figure out if the bot should add it to queue or play it right now @@ -172,7 +176,10 @@ exports.play = async function (client, data, message, query, ignoreQueue) { guild.playing = true guild.voiceChannel = vc - guild.channel = message.channel + + if (!guild.channel) { + guild.channel = message.channel + } const connection = await vc.join() @@ -189,7 +196,7 @@ exports.play = async function (client, data, message, query, ignoreQueue) { guild.playing = false if (guild.queue.length > 0) { - exports.play(client, data, message, null, true) + exports.play(client, data, message, null, false, true) } else { guild.queue = [] guild.playing = false