Set max skip vote amount based on number of users in voice chat, remove skip votes when session ends
This commit is contained in:
parent
abfbfe14fe
commit
3517826f46
3 changed files with 14 additions and 8 deletions
|
@ -8,18 +8,19 @@ 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: [] };
|
||||
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) };
|
||||
if (votes.ids.includes(this.message.author.id)) return "You've already voted to skip!";
|
||||
const newObject = {
|
||||
count: votes.count + 1,
|
||||
ids: [...votes.ids, this.message.author.id].filter(item => !!item)
|
||||
ids: [...votes.ids, this.message.author.id].filter(item => !!item),
|
||||
max: votes.max
|
||||
};
|
||||
if (votes.count + 1 === 3) {
|
||||
if (votes.count + 1 === votes.max) {
|
||||
player.player.stop(this.message.channel.guild.id);
|
||||
skipVotes.set(this.message.channel.guild.id, { count: 0, ids: [] });
|
||||
skipVotes.set(this.message.channel.guild.id, { count: 0, ids: [], max: Math.min(3, player.voiceChannel.voiceMembers.size - 1) });
|
||||
} else {
|
||||
skipVotes.set(this.message.channel.guild.id, newObject);
|
||||
return `🔊 Voted to skip song (${votes.count + 1}/3 people have voted).`;
|
||||
return `🔊 Voted to skip song (${votes.count + 1}/${votes.max} people have voted).`;
|
||||
}
|
||||
} else {
|
||||
player.player.stop(this.message.channel.guild.id);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue