Add loop, shuffle, auto leave
All checks were successful
Subsonics - Pipeline/pipeline/head This commit looks good

This commit is contained in:
Raphix
2023-04-23 17:46:50 +02:00
parent c4fbc3338a
commit 87787abff7
4 changed files with 238 additions and 1 deletions

80
src/commands/loop.js Normal file
View File

@ -0,0 +1,80 @@
const { SlashCommandBuilder, EmbedBuilder } = require("discord.js");
module.exports = {
data: new SlashCommandBuilder()
.setName("loop")
.setDescription("Active ou désactive la répétition de la liste de lecture !"),
async execute(client, interaction) {
if(client.dictator == true ) {
if((interaction.member._roles.includes("397725956598530050") == true | interaction.member.user.id == "486943594893017119")) {
makeAction()
} else {
const embed = new EmbedBuilder()
.setColor(0xff0303)
.setTitle('Mode Dictateur')
.setTimestamp();
const song_show = {name: "Le mode dictateur est actif !", value: "Demande au grand roi !"}
embed.addFields(song_show)
interaction.reply({embeds: [embed]})
}
} else {
makeAction();
}
async function makeAction() {
if(!interaction.member.voice.channel) return interaction.reply({content:"Vous devez rejoindre un salon vocal !", ephemeral: true})
let player = client.manager.players.get(interaction.guild.id)
if(player) {
if(player.queueRepeat == false) {
const embed = new EmbedBuilder()
.setColor(0xfff200)
.setTitle('Loop Actif!')
.setDescription("On recommence !")
.setTimestamp();
interaction.reply({embeds: [embed]})
player.setQueueRepeat(true)
} else {
const embed = new EmbedBuilder()
.setColor(0x3b3b3b)
.setTitle('Loop inactif!')
.setDescription("Ca suffit ! Terminez votre concert !")
.setTimestamp();
interaction.reply({embeds: [embed]})
player.setQueueRepeat(false)
}
} else {
interaction.reply("**Aucune musique n'est actuellement jouée !**")
}
}
}
}

76
src/commands/seek.js Normal file
View File

@ -0,0 +1,76 @@
const { SlashCommandBuilder, EmbedBuilder } = require("discord.js");
module.exports = {
data: new SlashCommandBuilder()
.setName("seek")
.setDescription("Définie la position du player dans la musique !")
.addIntegerOption(option => option.setName("duration").setDescription("En seconde")),
async execute(client, interaction) {
if(client.dictator == true ) {
if((interaction.member._roles.includes("397725956598530050") == true | interaction.member.user.id == "486943594893017119")) {
makeAction()
} else {
const embed = new EmbedBuilder()
.setColor(0xff0303)
.setTitle('Mode Dictateur')
.setTimestamp();
const song_show = {name: "Le mode dictateur est actif !", value: "Demande au grand roi !"}
embed.addFields(song_show)
interaction.reply({embeds: [embed]})
}
} else {
makeAction();
}
async function makeAction() {
if(!interaction.member.voice.channel) return interaction.reply({content:"Vous devez rejoindre un salon vocal !", ephemeral: true})
let player = client.manager.players.get(interaction.guild.id)
let duration = interaction.options.getInteger("duration")
if(player) {
try {
const embed = new EmbedBuilder()
.setColor(0xfff200)
.setTitle('On avance ou recule ?')
.setTimestamp();
interaction.reply({embeds: [embed]})
duration = duration ** 3
player.seek(duration)
} catch (error) {
console.log(error)
interaction.reply("**Aucune musique n'est actuellement jouée !**")
}
} else {
interaction.reply("**Aucune musique n'est actuellement jouée !**")
}
}
}
}

66
src/commands/shuffle.js Normal file
View File

@ -0,0 +1,66 @@
const { SlashCommandBuilder, EmbedBuilder } = require("discord.js");
module.exports = {
data: new SlashCommandBuilder()
.setName("mix")
.setDescription("Mélange la liste de lecture !"),
async execute(client, interaction) {
if(client.dictator == true ) {
if((interaction.member._roles.includes("397725956598530050") == true | interaction.member.user.id == "486943594893017119")) {
makeAction()
} else {
const embed = new EmbedBuilder()
.setColor(0xff0303)
.setTitle('Mode Dictateur')
.setTimestamp();
const song_show = {name: "Le mode dictateur est actif !", value: "Demande au grand roi !"}
embed.addFields(song_show)
interaction.reply({embeds: [embed]})
}
} else {
makeAction();
}
async function makeAction() {
if(!interaction.member.voice.channel) return interaction.reply({content:"Vous devez rejoindre un salon vocal !", ephemeral: true})
let player = client.manager.players.get(interaction.guild.id)
if(player) {
const embed = new EmbedBuilder()
.setColor(0xfff200)
.setTitle('On mélange !')
.setDescription("Toutes les musiques de la liste de lecture ont été mélangés !")
.setTimestamp();
interaction.reply({embeds: [embed]})
player.queue.shuffle()
} else {
interaction.reply("**Aucune musique n'est actuellement jouée !**")
}
}
}
}