From cb26ce0989cf68814887da3eb25a1b9e361f2e8c Mon Sep 17 00:00:00 2001 From: mudkipscience Date: Mon, 20 Apr 2020 19:42:47 +1000 Subject: [PATCH] did stuff but voteskip is broken (line 51) --- commands/{forceskip.js => skip.js} | 6 +-- commands/voteskip.js | 67 ++++++++++++++++++++++++++++++ 2 files changed, 70 insertions(+), 3 deletions(-) rename commands/{forceskip.js => skip.js} (86%) create mode 100644 commands/voteskip.js diff --git a/commands/forceskip.js b/commands/skip.js similarity index 86% rename from commands/forceskip.js rename to commands/skip.js index 5845870..13124b8 100644 --- a/commands/forceskip.js +++ b/commands/skip.js @@ -10,16 +10,16 @@ exports.conf = { } exports.help = { - name: 'forceskip', + name: 'skip', category: 'Music', description: 'Force skips currently playing song.', - usage: 'forceskip', + usage: 'skip', params: '' } const { skip } = require('../utils/music') exports.run = async (client, message, args, level, data) => { - skip(message.guild, 'forceskip') + skip(message.guild, 'skip') message.reply('skipped currently playing music') } diff --git a/commands/voteskip.js b/commands/voteskip.js new file mode 100644 index 0000000..f82d8d3 --- /dev/null +++ b/commands/voteskip.js @@ -0,0 +1,67 @@ +// Copyright 2020 Emily J. / mudkipscience and contributors. Subject to the AGPLv3 license. + +exports.conf = { + enabled: true, + guildOnly: true, + aliases: [], + permLevel: 'User', + requiredPerms: [], + cooldown: 2000 +} + +exports.help = { + name: 'voteskip', + category: 'Music', + description: 'Vote to skip the currently playing song.', + usage: 'voteskip', + params: '' +} + +const { skip, getGuild } = require('../utils/music') +exports.run = (client, message, args, level) => { + const guild = getGuild(message.guild.id) + + if (guild.queue.length < 1 || !guild.playing || !guild.dispatcher) { + return message.channel.send( + '<:error:466995152976871434> Nothing is playing.' + ) + } + + const vc = message.guild.members.cache.get(client.user.id).voiceChannel + + if (vc !== message.member.voiceChannel) { + return message.channel.send( + '<:error:466995152976871434> You need to be in my voice channel to use this command!' + ) + } + + if (guild.queue[0].requestedBy.id === message.author.id) { + skip(message.guild, 'skip') + + message.channel.send( + '<:skip:467216735356059660> Song has been skipped by the user who requested it.' + ) + + return + } + + if (guild.skippers.indexOf(message.author.id) === -1) { + guild.skippers.push(message.author.id) + + if (guild.skippers.length >= Math.ceil(vc.members.filter(member => !member.user.bot).size / 2)) { + skip(message.guild, 'skip') + + message.channel.send( + '<:skip:467216735356059660> Song has been skipped.' + ) + } else { + message.channel.send( + `<:success:466995111885144095> Your vote has been acknowledged! **${guild.skippers.length + '/' + Math.ceil(vc.members.filter(member => !member.user.bot).size / 2)}**` + ) + }; + } else { + message.channel.send( + '<:denied:466995195150336020> You cannot vote twice!' + ) + } +}