diff --git a/commands/music/forceskip.js b/commands/music/forceskip.js index 668c523..2cde11d 100644 --- a/commands/music/forceskip.js +++ b/commands/music/forceskip.js @@ -8,7 +8,7 @@ class ForceSkipCommand extends MusicCommand { if (!this.message.channel.guild.members.get(this.client.user.id).voiceState.channelID) return "I'm not in a voice channel!"; if (!this.message.member.permissions.has("manageChannels")) return "You need to have the `Manage Channels` permission to force skip!"; this.connection.player.stop(this.message.channel.guild.id); - skipVotes.set(this.message.channel.guild.id, { count: 0, ids: [], max: Math.min(3, this.connection.voiceChannel.voiceMembers.size - 1) }); + skipVotes.set(this.message.channel.guild.id, { count: 0, ids: [], max: Math.min(3, this.connection.voiceChannel.voiceMembers.filter((i) => i.id !== this.client.user.id && !i.bot).length) }); return; } diff --git a/commands/music/skip.js b/commands/music/skip.js index 4a871b3..198678c 100644 --- a/commands/music/skip.js +++ b/commands/music/skip.js @@ -8,7 +8,7 @@ class SkipCommand extends MusicCommand { if (!this.message.channel.guild.members.get(this.client.user.id).voiceState.channelID) return "I'm not in a voice channel!"; const player = this.connection; if (player.host !== this.message.author.id) { - const votes = skipVotes.has(this.message.channel.guild.id) ? skipVotes.get(this.message.channel.guild.id) : { count: 0, ids: [], max: Math.min(3, player.voiceChannel.voiceMembers.size - 1) }; + const votes = skipVotes.has(this.message.channel.guild.id) ? skipVotes.get(this.message.channel.guild.id) : { count: 0, ids: [], max: Math.min(3, player.voiceChannel.voiceMembers.filter((i) => i.id !== this.client.user.id && !i.bot).length) }; if (votes.ids.includes(this.message.author.id)) return "You've already voted to skip!"; const newObject = { count: votes.count + 1, @@ -17,7 +17,7 @@ class SkipCommand extends MusicCommand { }; if (votes.count + 1 === votes.max) { player.player.stop(this.message.channel.guild.id); - skipVotes.set(this.message.channel.guild.id, { count: 0, ids: [], max: Math.min(3, player.voiceChannel.voiceMembers.size - 1) }); + skipVotes.set(this.message.channel.guild.id, { count: 0, ids: [], max: Math.min(3, player.voiceChannel.voiceMembers.filter((i) => i.id !== this.client.user.id && !i.bot).length) }); } else { skipVotes.set(this.message.channel.guild.id, newObject); return `🔊 Voted to skip song (${votes.count + 1}/${votes.max} people have voted).`; diff --git a/events/voiceChannelLeave.js b/events/voiceChannelLeave.js index 198d1ee..e1dfadc 100644 --- a/events/voiceChannelLeave.js +++ b/events/voiceChannelLeave.js @@ -6,7 +6,7 @@ export default async (client, cluster, worker, ipc, member, oldChannel) => { if (!oldChannel) return; const connection = players.get(oldChannel.guild.id); if (connection && connection.type === "music" && oldChannel.id === connection.voiceChannel.id) { - if (oldChannel.voiceMembers.filter((i) => i.id !== client.user.id).length === 0) { + if (oldChannel.voiceMembers.filter((i) => i.id !== client.user.id && !i.bot).length === 0) { connection.player.pause(true); const waitMessage = await client.createMessage(connection.originalChannel.id, "🔊 Waiting 10 seconds for someone to return..."); const awaitRejoin = new AwaitRejoin(oldChannel, true); @@ -41,7 +41,7 @@ export default async (client, cluster, worker, ipc, member, oldChannel) => { // no-op } } else { - const members = oldChannel.voiceMembers.filter((i) => i.id !== client.user.id); + const members = oldChannel.voiceMembers.filter((i) => i.id !== client.user.id && !i.bot); if (members.length === 0) { try { if (waitMessage.channel.messages.get(waitMessage.id)) waitMessage.delete();