Compare commits
2 Commits
Author | SHA1 | Date | |
---|---|---|---|
2a62ebc2f6 | |||
ffeef2df90 |
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "subsonics-discord",
|
"name": "subsonics-discord",
|
||||||
"author": "Raphix",
|
"author": "Raphix",
|
||||||
"version": "1.0.0",
|
"version": "3.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"discord.js": "^14.9.0",
|
"discord.js": "^14.9.0",
|
||||||
"erela.js": "^2.4.0",
|
"erela.js": "^2.4.0",
|
||||||
|
90
src/commands/back.js
Normal file
90
src/commands/back.js
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
const { SlashCommandBuilder, EmbedBuilder } = require("discord.js");
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
|
||||||
|
data: new SlashCommandBuilder()
|
||||||
|
.setName("back")
|
||||||
|
.setDescription("Permet de revenir à la musique précédente !"),
|
||||||
|
|
||||||
|
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() {
|
||||||
|
|
||||||
|
let embed = new EmbedBuilder()
|
||||||
|
.setColor(0xe033ff)
|
||||||
|
.setTitle('Liste de lecture')
|
||||||
|
.setDescription("Les musiques vont défiler dans cet ordre !")
|
||||||
|
.setTimestamp();
|
||||||
|
|
||||||
|
let player = client.manager.players.get(interaction.guild.id)
|
||||||
|
|
||||||
|
|
||||||
|
if(!player) {
|
||||||
|
|
||||||
|
embed = new EmbedBuilder()
|
||||||
|
.setColor(0xff0303)
|
||||||
|
.setTitle('Erreur : Back')
|
||||||
|
.setTimestamp();
|
||||||
|
const song_show = {name: "Aucune chanson n'a été joué précédemment !", value: "Changement impossible !"}
|
||||||
|
|
||||||
|
embed.addFields(song_show)
|
||||||
|
interaction.reply({embeds: [embed]})
|
||||||
|
} else {
|
||||||
|
|
||||||
|
console.log("------------------------QUEUE.JS---------------------")
|
||||||
|
console.log(client.manager.players.get(interaction.guild.id).queue)
|
||||||
|
let queue = client.manager.players.get(interaction.guild.id).queue;
|
||||||
|
|
||||||
|
|
||||||
|
if(queue.previous == null){
|
||||||
|
|
||||||
|
embed = new EmbedBuilder()
|
||||||
|
.setColor(0xff0303)
|
||||||
|
.setTitle('Erreur : Back')
|
||||||
|
.setTimestamp();
|
||||||
|
const song_show = {name: "Aucune chanson n'a été joué précédemment !", value: "Changement impossible !"}
|
||||||
|
|
||||||
|
embed.addFields(song_show)
|
||||||
|
interaction.reply({embeds: [embed]})
|
||||||
|
} else {
|
||||||
|
|
||||||
|
embed = new EmbedBuilder()
|
||||||
|
.setColor(0x03ff2d)
|
||||||
|
.setTitle('Retour vers le passé !!!')
|
||||||
|
.setDescription("**Ok, On est reparti avec "+ player.queue.previous.title +" et c'est demandée par " + interaction.member.user.username + "**")
|
||||||
|
.setTimestamp();
|
||||||
|
|
||||||
|
player.stop()
|
||||||
|
player.play(queue.previous)
|
||||||
|
|
||||||
|
|
||||||
|
interaction.reply({embeds: [embed]})
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
58
src/commands/dictator.js
Normal file
58
src/commands/dictator.js
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
const { SlashCommandBuilder, EmbedBuilder } = require("discord.js");
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
|
||||||
|
data: new SlashCommandBuilder()
|
||||||
|
.setName("dictator")
|
||||||
|
.setDescription("Active ou désactive le mode dictateur !"),
|
||||||
|
|
||||||
|
async execute(client, interaction) {
|
||||||
|
|
||||||
|
console.log(interaction.member._roles)
|
||||||
|
|
||||||
|
if(interaction.member._roles.includes("397725956598530050") == true | interaction.member.user.id == "486943594893017119") {
|
||||||
|
if(client.dictator == true) {
|
||||||
|
client.dictator = false;
|
||||||
|
|
||||||
|
const embed = new EmbedBuilder()
|
||||||
|
.setColor(0x3b3b3b)
|
||||||
|
.setTitle('Mode Dictateur Inactif !')
|
||||||
|
.setDescription("Le pouvoir du peuple est restauré !")
|
||||||
|
.setTimestamp();
|
||||||
|
|
||||||
|
|
||||||
|
interaction.reply({embeds: [embed]})
|
||||||
|
} else {
|
||||||
|
|
||||||
|
const embed = new EmbedBuilder()
|
||||||
|
.setColor(0xfff200)
|
||||||
|
.setTitle('Mode Dictateur Actif!')
|
||||||
|
.setDescription("Notre bon roi a désormais le seul droit sur la musique !")
|
||||||
|
.setTimestamp();
|
||||||
|
|
||||||
|
|
||||||
|
interaction.reply({embeds: [embed]})
|
||||||
|
|
||||||
|
client.dictator = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
const embed = new EmbedBuilder()
|
||||||
|
.setColor(0xff0303)
|
||||||
|
.setTitle('Erreur : Mode Dictateur')
|
||||||
|
.setTimestamp();
|
||||||
|
const song_show = {name: "Tu n'as pas la permission de faire cela !", value: "Verbotten !"}
|
||||||
|
|
||||||
|
embed.addFields(song_show)
|
||||||
|
interaction.reply({embeds: [embed]})
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
35
src/commands/help.js
Normal file
35
src/commands/help.js
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
const { SlashCommandBuilder, EmbedBuilder } = require("discord.js");
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
|
||||||
|
data:new SlashCommandBuilder()
|
||||||
|
.setName("help")
|
||||||
|
.setDescription("Faire partir le meilleur groupe du monde !"),
|
||||||
|
|
||||||
|
async execute(client, interaction) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const embed = new EmbedBuilder()
|
||||||
|
.setColor(0x03ff2d)
|
||||||
|
.setTitle('Comment assister au concert ?')
|
||||||
|
.setDescription("**Eh ! Tu as eu ton ticket ? Tant mieux ! Voici la liste des commandes à utiliser dans le salon <#664355637685256203>**")
|
||||||
|
.addFields({name: "/play <nom>", value: "Cette commande te permet de lire depuis Youtube, n'importe quel musique !"},
|
||||||
|
{name: "/leave", value: "Si tu ne veux plus du meilleur groupe du monde (faire partir le bot), cette commande les fera partir aussi vite qu'ils sont arrivés !"},
|
||||||
|
{name: "/pause", value: "Besoin d'un entracte ? Cette commande te permettera de mettre le morceau en cours, en pause !"},
|
||||||
|
{name: "/resume", value: "Fin de l'entracte ? Cette commande te permettera de mettre le morceau qui était en pause, en cours !"},
|
||||||
|
{name: "/queue <afficher/supprimer>", value: "Permet d'afficher ou de supprimer les titres de la liste de lecture."},
|
||||||
|
{name: "/state", value: "Donne l'état de la musique"},
|
||||||
|
{name: "/skip", value: "Passer à la chanson suivante."},
|
||||||
|
{name: "/back", value: "Revenir à la chanson précédente."})
|
||||||
|
.setTimestamp()
|
||||||
|
.setThumbnail("https://static.wikia.nocookie.net/codelyoko/images/9/95/Subdigitals.jpg/revision/latest/scale-to-width-down/180?cb=20120105180510&path-prefix=fr");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
interaction.reply({embeds: [embed]})
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -1,4 +1,5 @@
|
|||||||
const { SlashCommandBuilder, EmbedBuilder } = require("discord.js");
|
const { SlashCommandBuilder, EmbedBuilder } = require("discord.js");
|
||||||
|
const { Player } = require("erela.js");
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
|
||||||
@ -8,13 +9,38 @@ module.exports = {
|
|||||||
|
|
||||||
async execute(client, interaction) {
|
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})
|
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 player = client.manager.players.get(interaction.guild.id)
|
||||||
|
|
||||||
|
|
||||||
if(player) {
|
if(player) {
|
||||||
|
|
||||||
player.disconnect()
|
player.destroy()
|
||||||
|
|
||||||
const embed = new EmbedBuilder()
|
const embed = new EmbedBuilder()
|
||||||
.setColor(0xff0000)
|
.setColor(0xff0000)
|
||||||
@ -28,9 +54,9 @@ module.exports = {
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
interaction.reply("**Aucune musique n'est actuellement joué !**")
|
interaction.reply("**Aucune musique n'est actuellement jouée !**")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -4,10 +4,34 @@ module.exports = {
|
|||||||
|
|
||||||
data: new SlashCommandBuilder()
|
data: new SlashCommandBuilder()
|
||||||
.setName("pause")
|
.setName("pause")
|
||||||
.setDescription("Met en pause la musique joué !"),
|
.setDescription("Met en pause la musique jouée !"),
|
||||||
|
|
||||||
async execute(client, interaction) {
|
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})
|
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 player = client.manager.players.get(interaction.guild.id)
|
||||||
@ -19,7 +43,7 @@ module.exports = {
|
|||||||
const embed = new EmbedBuilder()
|
const embed = new EmbedBuilder()
|
||||||
.setColor(0x03ff2d)
|
.setColor(0x03ff2d)
|
||||||
.setTitle('Pause !')
|
.setTitle('Pause !')
|
||||||
.setDescription("**Ok, une entracte est demandé par " + interaction.member.user.username + "**")
|
.setDescription("**Ok, une entracte est demandée par " + interaction.member.user.username + "**")
|
||||||
.setTimestamp();
|
.setTimestamp();
|
||||||
|
|
||||||
|
|
||||||
@ -27,14 +51,14 @@ module.exports = {
|
|||||||
|
|
||||||
player.pause(true)
|
player.pause(true)
|
||||||
} else {
|
} else {
|
||||||
interaction.reply("**Aucune musique n'est actuellement joué !**")
|
interaction.reply("**Aucune musique n'est actuellement jouée !**")
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
interaction.reply("**Aucune musique n'est actuellement joué !**")
|
interaction.reply("**Aucune musique n'est actuellement jouée !**")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -6,33 +6,59 @@ module.exports = {
|
|||||||
data:new SlashCommandBuilder()
|
data:new SlashCommandBuilder()
|
||||||
.setName("play")
|
.setName("play")
|
||||||
.setDescription("Lire une musique depuis youtube")
|
.setDescription("Lire une musique depuis youtube")
|
||||||
.addStringOption(option => option.setName("nom").setDescription("Le nom de la musique recherché !").setRequired(true)),
|
.addStringOption(option => option.setName("nom_ou_lien").setDescription("Le nom de la musique recherchée !").setRequired(true)),
|
||||||
|
|
||||||
async execute(client, interaction) {
|
async execute(client, interaction) {
|
||||||
|
|
||||||
const song_name = interaction.options.getString("nom")
|
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() {
|
||||||
|
|
||||||
|
const song_name = interaction.options.getString("nom_ou_lien")
|
||||||
|
|
||||||
if(!interaction.member.voice.channel) return interaction.reply({content:"Vous devez rejoindre un salon vocal !", ephemeral: true})
|
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 player = client.manager.players.get(interaction.guild.id)
|
||||||
|
|
||||||
if(!player) player = client.manager.create({
|
if(!player) {
|
||||||
|
|
||||||
|
player = client.manager.create({
|
||||||
guild: interaction.guild.id,
|
guild: interaction.guild.id,
|
||||||
voiceChannel: interaction.member.voice.channel.id,
|
voiceChannel: interaction.member.voice.channel.id,
|
||||||
textChannel: interaction.channel.id,
|
textChannel: interaction.channel.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
player.connect();
|
||||||
|
}
|
||||||
|
|
||||||
const songs = await client.manager.search(song_name)
|
const songs = await client.manager.search(song_name)
|
||||||
|
|
||||||
player.connect();
|
if(!player.playing) {
|
||||||
|
|
||||||
player.queue.add(songs.tracks[0])
|
client.manager.players.get(interaction.guild.id).queue.add(songs.tracks[0])
|
||||||
|
player.play()
|
||||||
|
|
||||||
if(!player.playing) player.play()
|
const embed = await new EmbedBuilder()
|
||||||
|
|
||||||
console.log(songs.tracks[0])
|
|
||||||
|
|
||||||
const embed = new EmbedBuilder()
|
|
||||||
.setColor(0x15e6ed)
|
.setColor(0x15e6ed)
|
||||||
.setTitle('**Lecture de **' + songs.tracks[0].title)
|
.setTitle('**Lecture de **' + songs.tracks[0].title)
|
||||||
.setDescription('**Demandé par **' + interaction.member.user.username)
|
.setDescription('**Demandé par **' + interaction.member.user.username)
|
||||||
@ -41,7 +67,45 @@ module.exports = {
|
|||||||
.setThumbnail(songs.tracks[0].thumbnail)
|
.setThumbnail(songs.tracks[0].thumbnail)
|
||||||
.setTimestamp();
|
.setTimestamp();
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
interaction.reply({embeds: [embed]})
|
||||||
|
} catch(error) {
|
||||||
|
|
||||||
interaction.reply({embeds: [embed]})
|
interaction.reply({embeds: [embed]})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
const embed = await new EmbedBuilder()
|
||||||
|
.setColor(0x15e6ed)
|
||||||
|
.setTitle('**Ajout dans la liste de lecture **' + songs.tracks[0].title)
|
||||||
|
.setDescription('**Demandé par **' + interaction.member.user.username)
|
||||||
|
.addFields({name: "Auteur", value: songs.tracks[0].author},
|
||||||
|
{name: "URL", value:songs.tracks[0].uri})
|
||||||
|
.setThumbnail(songs.tracks[0].thumbnail)
|
||||||
|
.setTimestamp();
|
||||||
|
|
||||||
|
client.manager.players.get(interaction.guild.id).queue.add(songs.tracks[0])
|
||||||
|
console.log("------------------------PLAY.JS---------------------")
|
||||||
|
console.log(player.queue)
|
||||||
|
console.log("--------------------------------------------")
|
||||||
|
try {
|
||||||
|
|
||||||
|
interaction.reply({embeds: [embed]})
|
||||||
|
} catch(error) {
|
||||||
|
|
||||||
|
interaction.reply({embeds: [embed]})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
184
src/commands/queue.js
Normal file
184
src/commands/queue.js
Normal file
@ -0,0 +1,184 @@
|
|||||||
|
const { SlashCommandBuilder, EmbedBuilder } = require("discord.js");
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
|
||||||
|
data: new SlashCommandBuilder()
|
||||||
|
.setName("queue")
|
||||||
|
.setDescription("Affiche le ping du bot !")
|
||||||
|
.addStringOption(option => option.setName("action").setDescription("Que veux tu faire avec la queue ?").setRequired(true).addChoices(
|
||||||
|
{name: "Afficher", value: "show"},
|
||||||
|
{name: "Supprimer", value: "delete"}
|
||||||
|
)).addIntegerOption(option => option.setName("number").setDescription("Numéro de la place dans 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})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const choice = interaction.options.getString("action")
|
||||||
|
|
||||||
|
if(choice == "show") {
|
||||||
|
const embed = new EmbedBuilder()
|
||||||
|
.setColor(0xe033ff)
|
||||||
|
.setTitle('Liste de lecture')
|
||||||
|
.setDescription("Les musiques vont défiler dans cet ordre !")
|
||||||
|
.setTimestamp();
|
||||||
|
|
||||||
|
let player = client.manager.players.get(interaction.guild.id)
|
||||||
|
|
||||||
|
|
||||||
|
if(!player) {
|
||||||
|
|
||||||
|
const song_show = {name: "Aucune chanson n'est dans la queue", value: "Tu peux en ajouter avec /play"}
|
||||||
|
|
||||||
|
embed.addFields(song_show)
|
||||||
|
interaction.reply({embeds: [embed]})
|
||||||
|
} else {
|
||||||
|
|
||||||
|
console.log("------------------------QUEUE.JS---------------------")
|
||||||
|
console.log(client.manager.players.get(interaction.guild.id).queue)
|
||||||
|
let queue = client.manager.players.get(interaction.guild.id).queue;
|
||||||
|
|
||||||
|
|
||||||
|
if(queue.length == 0){
|
||||||
|
|
||||||
|
const song_show = {name: "Aucune chanson n'est dans la queue", value: "Tu peux en ajouter avec /play"}
|
||||||
|
|
||||||
|
embed.addFields(song_show)
|
||||||
|
interaction.reply({embeds: [embed]})
|
||||||
|
} else {
|
||||||
|
|
||||||
|
|
||||||
|
for(song of queue) {
|
||||||
|
|
||||||
|
const song_show = {name: queue.indexOf(song) + " - " + song.title, value: song.author}
|
||||||
|
|
||||||
|
embed.addFields(song_show)
|
||||||
|
}
|
||||||
|
|
||||||
|
await interaction.reply({embeds: [embed]})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
} else if(choice == "delete") {
|
||||||
|
|
||||||
|
let embed = new EmbedBuilder()
|
||||||
|
.setColor(0xe033ff)
|
||||||
|
.setTitle('Liste de lecture')
|
||||||
|
.setDescription("Les musiques vont défiler dans cet ordre !")
|
||||||
|
.setTimestamp();
|
||||||
|
|
||||||
|
let player = client.manager.players.get(interaction.guild.id)
|
||||||
|
|
||||||
|
if(!player) {
|
||||||
|
|
||||||
|
embed = new EmbedBuilder()
|
||||||
|
.setColor(0xff0303)
|
||||||
|
.setTitle('Erreur : Liste de lecture')
|
||||||
|
.setTimestamp();
|
||||||
|
const song_show = {name: "Aucune chanson n'est dans la queue", value: "Supression impossible"}
|
||||||
|
|
||||||
|
embed.addFields(song_show)
|
||||||
|
interaction.reply({embeds: [embed]})
|
||||||
|
} else {
|
||||||
|
|
||||||
|
console.log("------------------------QUEUE.JS---------------------")
|
||||||
|
console.log(client.manager.players.get(interaction.guild.id).queue)
|
||||||
|
let queue = client.manager.players.get(interaction.guild.id).queue;
|
||||||
|
|
||||||
|
|
||||||
|
if(queue.length == 0){
|
||||||
|
|
||||||
|
embed = new EmbedBuilder()
|
||||||
|
.setColor(0xff0303)
|
||||||
|
.setTitle('Erreur : Liste de lecture')
|
||||||
|
.setTimestamp();
|
||||||
|
const song_show = {name: "Aucune chanson n'est dans la queue", value: "Supression impossible"}
|
||||||
|
|
||||||
|
embed.addFields(song_show)
|
||||||
|
interaction.reply({embeds: [embed]})
|
||||||
|
} else {
|
||||||
|
|
||||||
|
const number = interaction.options.getInteger("number")
|
||||||
|
|
||||||
|
console.log(number)
|
||||||
|
|
||||||
|
if(number != null) {
|
||||||
|
try {
|
||||||
|
queue.splice(number, 1)
|
||||||
|
|
||||||
|
embed = new EmbedBuilder()
|
||||||
|
.setColor(0xe033ff)
|
||||||
|
.setTitle('Supression : Liste de lecture')
|
||||||
|
.setDescription("La musique a été retiré de la liste de lecture !")
|
||||||
|
.setTimestamp();
|
||||||
|
|
||||||
|
interaction.reply({embeds: [embed]})
|
||||||
|
|
||||||
|
} catch(error) {
|
||||||
|
|
||||||
|
embed = new EmbedBuilder()
|
||||||
|
.setColor(0xff0303)
|
||||||
|
.setTitle('Erreur : Liste de lecture')
|
||||||
|
.setTimestamp();
|
||||||
|
const song_show = {name: "Le numéro correspondant n'est pas disponible", value: "Supression impossible"}
|
||||||
|
|
||||||
|
embed.addFields(song_show)
|
||||||
|
interaction.reply({embeds: [embed]})
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
embed = new EmbedBuilder()
|
||||||
|
.setColor(0xff0303)
|
||||||
|
.setTitle('Erreur : Liste de lecture')
|
||||||
|
.setTimestamp();
|
||||||
|
const song_show = {name: "Un numéro est nécéssaire", value: "Supression impossible"}
|
||||||
|
|
||||||
|
embed.addFields(song_show)
|
||||||
|
interaction.reply({embeds: [embed]})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
await interaction.reply("**La commande a été mal éxécutée !**")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -4,10 +4,34 @@ module.exports = {
|
|||||||
|
|
||||||
data: new SlashCommandBuilder()
|
data: new SlashCommandBuilder()
|
||||||
.setName("resume")
|
.setName("resume")
|
||||||
.setDescription("Met en pause la musique joué !"),
|
.setDescription("Remet la musique qui était en pause !"),
|
||||||
|
|
||||||
async execute(client, interaction) {
|
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})
|
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 player = client.manager.players.get(interaction.guild.id)
|
||||||
@ -19,22 +43,23 @@ module.exports = {
|
|||||||
const embed = new EmbedBuilder()
|
const embed = new EmbedBuilder()
|
||||||
.setColor(0x03ff2d)
|
.setColor(0x03ff2d)
|
||||||
.setTitle('C\'est reparti !')
|
.setTitle('C\'est reparti !')
|
||||||
.setDescription("**Ok, Fin de l'entracte, c'est reparti et c'est demandé par " + interaction.member.user.username + "**")
|
.setDescription("**Ok, Fin de l'entracte, c'est reparti et c'est demandée par " + interaction.member.user.username + "**")
|
||||||
.setTimestamp();
|
.setTimestamp();
|
||||||
|
|
||||||
|
|
||||||
interaction.reply({embeds: [embed]})
|
interaction.reply({embeds: [embed]})
|
||||||
|
|
||||||
player.pause(false)
|
player.pause(false)
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
interaction.reply("**Aucune musique n'est actuellement joué !**")
|
interaction.reply("**Aucune musique n'est actuellement jouée !**")
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
interaction.reply("**Aucune musique n'est actuellement joué !**")
|
interaction.reply("**Aucune musique n'est actuellement jouée !**")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
89
src/commands/skip.js
Normal file
89
src/commands/skip.js
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
const { SlashCommandBuilder, EmbedBuilder } = require("discord.js");
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
|
||||||
|
data: new SlashCommandBuilder()
|
||||||
|
.setName("skip")
|
||||||
|
.setDescription("Permet de passer à la musique suivante !"),
|
||||||
|
|
||||||
|
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() {
|
||||||
|
|
||||||
|
let embed = new EmbedBuilder()
|
||||||
|
.setColor(0xe033ff)
|
||||||
|
.setTitle('Liste de lecture')
|
||||||
|
.setDescription("Les musiques vont défiler dans cet ordre !")
|
||||||
|
.setTimestamp();
|
||||||
|
|
||||||
|
let player = client.manager.players.get(interaction.guild.id)
|
||||||
|
|
||||||
|
|
||||||
|
if(!player) {
|
||||||
|
|
||||||
|
embed = new EmbedBuilder()
|
||||||
|
.setColor(0xff0303)
|
||||||
|
.setTitle('Erreur : Skip')
|
||||||
|
.setTimestamp();
|
||||||
|
const song_show = {name: "Aucune chanson n'est dans la queue", value: "Changement impossible !"}
|
||||||
|
|
||||||
|
embed.addFields(song_show)
|
||||||
|
interaction.reply({embeds: [embed]})
|
||||||
|
} else {
|
||||||
|
|
||||||
|
console.log("------------------------QUEUE.JS---------------------")
|
||||||
|
console.log(client.manager.players.get(interaction.guild.id).queue)
|
||||||
|
let queue = client.manager.players.get(interaction.guild.id).queue;
|
||||||
|
|
||||||
|
|
||||||
|
if(queue.length == 0){
|
||||||
|
|
||||||
|
embed = new EmbedBuilder()
|
||||||
|
.setColor(0xff0303)
|
||||||
|
.setTitle('Erreur : Skip')
|
||||||
|
.setTimestamp();
|
||||||
|
const song_show = {name: "Aucune chanson n'est dans la queue", value: "Changement impossible !"}
|
||||||
|
|
||||||
|
embed.addFields(song_show)
|
||||||
|
interaction.reply({embeds: [embed]})
|
||||||
|
} else {
|
||||||
|
|
||||||
|
player.stop()
|
||||||
|
|
||||||
|
embed = new EmbedBuilder()
|
||||||
|
.setColor(0x03ff2d)
|
||||||
|
.setTitle('On change de morceau !!!')
|
||||||
|
.setDescription("**Ok, On est reparti avec "+ player.queue[0].title +" et c'est demandée par " + interaction.member.user.username + "**")
|
||||||
|
.setTimestamp();
|
||||||
|
|
||||||
|
|
||||||
|
interaction.reply({embeds: [embed]})
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
50
src/commands/state.js
Normal file
50
src/commands/state.js
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
const { SlashCommandBuilder, EmbedBuilder } = require("discord.js");
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
|
||||||
|
data: new SlashCommandBuilder()
|
||||||
|
.setName("state")
|
||||||
|
.setDescription("Affiche l'état du lecteur !"),
|
||||||
|
|
||||||
|
async execute(client, interaction) {
|
||||||
|
|
||||||
|
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 date = new Date(player.queue.current.duration)
|
||||||
|
|
||||||
|
var gMinute = date.getMinutes()
|
||||||
|
var gSecondes = date.getSeconds()
|
||||||
|
|
||||||
|
|
||||||
|
if(date.getMinutes() <= 9) {
|
||||||
|
gMinute = "0" + date.getMinutes()
|
||||||
|
}
|
||||||
|
|
||||||
|
if(date.getSeconds() <= 9) {
|
||||||
|
gSecondes = "0" + date.getSeconds()
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
let embed = new EmbedBuilder()
|
||||||
|
.setColor(0x32a875)
|
||||||
|
.setTitle('Information sur la musique !')
|
||||||
|
.addFields({name:"Titre", value: player.queue.current.title},
|
||||||
|
{name:"Auteur", value: player.queue.current.author},
|
||||||
|
{name:"URL", value: player.queue.current.uri},
|
||||||
|
{name:"Temps", value: gMinute + ":" + gSecondes})
|
||||||
|
.setTimestamp();
|
||||||
|
|
||||||
|
interaction.reply({embeds: [embed]})
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
interaction.reply("**Aucune musique n'est actuellement jouée !**")
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
27
src/commands/version.js
Normal file
27
src/commands/version.js
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
const { SlashCommandBuilder, EmbedBuilder } = require("discord.js");
|
||||||
|
const packageJson = require('../../package.json');
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
|
||||||
|
data: new SlashCommandBuilder()
|
||||||
|
.setName("version")
|
||||||
|
.setDescription("Affiche le ping du bot !"),
|
||||||
|
|
||||||
|
async execute(client, interaction) {
|
||||||
|
|
||||||
|
|
||||||
|
const uptime = process.uptime();
|
||||||
|
const minutes = Math.floor(uptime / 60);
|
||||||
|
const seconds = Math.floor(uptime % 60);
|
||||||
|
|
||||||
|
const embed = new EmbedBuilder()
|
||||||
|
.setColor(0xb0f542)
|
||||||
|
.setTitle('Les Subsonics')
|
||||||
|
.addFields({name: "Version ", value: packageJson.version},{name:"Uptime", value: minutes + " minutes et " + seconds + " secondes"})
|
||||||
|
.setTimestamp();
|
||||||
|
|
||||||
|
|
||||||
|
interaction.reply({embeds: [embed]})
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"token":"MTA5NDcyNzc4OTY4MjM4MDkyMg.G4LcLR.qMZsDn_iR0rrVyie7yXxfmltn3Z_CaQIXMxUiU",
|
"token":"MTA5NDcyNzc4OTY4MjM4MDkyMg.GaWsMy.zp3wY6mSOwVhHfV0k43fXdgspi24qgW7LyCD6U",
|
||||||
"clientID":"1094727789682380922",
|
"clientID":"1094727789682380922",
|
||||||
"guildID":"137291455336022018"
|
"guildID":"137291455336022018"
|
||||||
}
|
}
|
32
src/main.js
32
src/main.js
@ -1,4 +1,8 @@
|
|||||||
const { Client, GatewayIntentBits, Collection } = require("discord.js")
|
let tryTime = 0;
|
||||||
|
|
||||||
|
function startApp() {
|
||||||
|
|
||||||
|
const { Client, GatewayIntentBits, Collection } = require("discord.js")
|
||||||
const { REST, Routes } = require("discord.js")
|
const { REST, Routes } = require("discord.js")
|
||||||
const fs = require("node:fs")
|
const fs = require("node:fs")
|
||||||
const config = require("./config.json")
|
const config = require("./config.json")
|
||||||
@ -10,6 +14,7 @@ const client = new Client({
|
|||||||
})
|
})
|
||||||
|
|
||||||
client.commands = new Collection()
|
client.commands = new Collection()
|
||||||
|
client.dictator = false;
|
||||||
|
|
||||||
const commands = [];
|
const commands = [];
|
||||||
// Grab all the command files from the commands directory you created earlier
|
// Grab all the command files from the commands directory you created earlier
|
||||||
@ -90,8 +95,8 @@ client.on("interactionCreate", (interaction) => {
|
|||||||
|
|
||||||
const nodes = [
|
const nodes = [
|
||||||
{
|
{
|
||||||
host: "lavalink.lexnet.cc",
|
host: "lavalink.devamop.in",
|
||||||
password: "lexn3tl@val!nk",
|
password: "DevamOP",
|
||||||
port: 443,
|
port: 443,
|
||||||
secure: true
|
secure: true
|
||||||
}
|
}
|
||||||
@ -126,3 +131,24 @@ client.on("raw", d => client.manager.updateVoiceState(d));
|
|||||||
// Client Manager
|
// Client Manager
|
||||||
|
|
||||||
client.login(config.token)
|
client.login(config.token)
|
||||||
|
|
||||||
|
tryTime = 0
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function handleFatalError(error) {
|
||||||
|
console.error('Erreur fatale :', error);
|
||||||
|
console.log('Redémarrage en cours...');
|
||||||
|
|
||||||
|
if(tryTime == 10) {
|
||||||
|
|
||||||
|
process.exit(1)
|
||||||
|
}
|
||||||
|
|
||||||
|
tryTime += 1;
|
||||||
|
startApp();
|
||||||
|
}
|
||||||
|
|
||||||
|
process.on('uncaughtException', handleFatalError);
|
||||||
|
|
||||||
|
startApp();
|
||||||
|
Reference in New Issue
Block a user