Ajout du Bot
This commit is contained in:
		
							
								
								
									
										36
									
								
								commands/Admin/chargement.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								commands/Admin/chargement.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,36 @@
 | 
			
		||||
const { MESSAGES } = require("../../util/constants");
 | 
			
		||||
const { MessageEmbed, MessageAttachment } = require("discord.js");
 | 
			
		||||
 | 
			
		||||
module.exports.run = async (client, message, args) => {
 | 
			
		||||
    
 | 
			
		||||
    const embed = new MessageEmbed()
 | 
			
		||||
    .setAuthor(`${client.user.username} Info`, client.user.avatarURL())
 | 
			
		||||
    .setColor("cb4e41")
 | 
			
		||||
    .addFields(
 | 
			
		||||
        { name:'Configurer le prefix', value:'Faire la commande \`?config prefix (le nouveau préfix)\`', inline: true},
 | 
			
		||||
        { name:'\u200b', value:'\u200b', inline: true},
 | 
			
		||||
        { name:'\u200b', value:'\u200b', inline: true},
 | 
			
		||||
    )
 | 
			
		||||
    .setTimestamp()
 | 
			
		||||
    .setImage("https://media.discordapp.net/attachments/789196713540976670/812047848047771658/lanziumbanniere.gif");
 | 
			
		||||
    
 | 
			
		||||
    
 | 
			
		||||
    const embed2 = new MessageEmbed()
 | 
			
		||||
        .setColor("dc143c")
 | 
			
		||||
        .setTitle("LanBot ")
 | 
			
		||||
        .setDescription("LanBot a été invité !")
 | 
			
		||||
        .setThumbnail(client.user.displayAvatarURL())
 | 
			
		||||
        .addFields(
 | 
			
		||||
        { name: "Serveur ", value: `Le bot a été invité sur le serveur ${message.member.guild.name}`, inline: true},
 | 
			
		||||
        { name: 'Créateur du serveur', value: `L'Owner du serveur est ${message.member.guild.owner}`, inline: true},
 | 
			
		||||
        { name: "Invitation", value: await message.channel.createInvite({maxAge: 0, reason: "Permet au développeur de venir si besoin"}), inline: true},
 | 
			
		||||
        )
 | 
			
		||||
        .setImage(client.user.displayAvatarURL())
 | 
			
		||||
        .setTimestamp()
 | 
			
		||||
    
 | 
			
		||||
    //client.channels.cache.get('818435612678946826').send(embed2);
 | 
			
		||||
    message.channel.send(embed)
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
module.exports.help = MESSAGES.COMMANDS.ADMIN.CHARGEMENT;
 | 
			
		||||
							
								
								
									
										20
									
								
								commands/Admin/config.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								commands/Admin/config.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
			
		||||
const { MESSAGES } = require("../../util/constants");
 | 
			
		||||
 
 | 
			
		||||
module.exports.run = async (client, message, args, settings) => {
 | 
			
		||||
    const getSetting = args[0];
 | 
			
		||||
    const newSetting = args.slice(1).join(" ");
 | 
			
		||||
    //const newLogSetting = args.slice(2, -1);
 | 
			
		||||
 | 
			
		||||
    switch(getSetting) {
 | 
			
		||||
        case "prefix": {
 | 
			
		||||
            if (newSetting) {
 | 
			
		||||
                await client.updateGuild(message.guild, { prefix: newSetting });
 | 
			
		||||
                return message.channel.send(`Prefix mis à jour: \`${settings.prefix}\`-> \`${newSetting}\``);
 | 
			
		||||
            }
 | 
			
		||||
            message.channel.send(`Prefix actuel: \`${settings.prefix}\``);
 | 
			
		||||
            break;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
module.exports.help = MESSAGES.COMMANDS.ADMIN.CONFIG;
 | 
			
		||||
							
								
								
									
										17
									
								
								commands/Developpeur/eval.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								commands/Developpeur/eval.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
			
		||||
const { MESSAGES } = require("../../util/constants");
 | 
			
		||||
 
 | 
			
		||||
module.exports.run = async (client, message, args) => {
 | 
			
		||||
  function clean(text) {
 | 
			
		||||
    if (typeof text === "string") 
 | 
			
		||||
      return text.replace(/`/g, "`" + String.fromCharCode(8203)).replace(/@/g, "@" + String.fromCharCode(8203));
 | 
			
		||||
    return text;
 | 
			
		||||
  }
 | 
			
		||||
 
 | 
			
		||||
  if (message.author.id !== "327193195085824001") return message.channel.send("Cette commande est réservé au développeur de LanBot");
 | 
			
		||||
  const code = args.join(" ");
 | 
			
		||||
  const evaled = eval(code);
 | 
			
		||||
  const cleanCode = await clean(evaled);
 | 
			
		||||
  message.channel.send(cleanCode, { code: "js" });
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
module.exports.help = MESSAGES.COMMANDS.DEVELOPPEUR.EVAL;
 | 
			
		||||
							
								
								
									
										10
									
								
								commands/Developpeur/reload.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								commands/Developpeur/reload.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
			
		||||
const { MESSAGES } = require("../../util/constants");
 | 
			
		||||
 | 
			
		||||
module.exports.run = async (client, message, args) => {
 | 
			
		||||
    if (message.author.id !== "327193195085824001") return message.channel.send("Cette commande est réservé au développeur de LanBot");
 | 
			
		||||
    client.channels.cache.get('844290195787743262').send("Je redémarre !");
 | 
			
		||||
    await message.delete();
 | 
			
		||||
    
 | 
			
		||||
    process.exit();
 | 
			
		||||
};
 | 
			
		||||
module.exports.help = MESSAGES.COMMANDS.DEVELOPPEUR.RELOAD;
 | 
			
		||||
							
								
								
									
										22
									
								
								commands/Informations/botinfo.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								commands/Informations/botinfo.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
			
		||||
const { MessageEmbed } = require ("discord.js");
 | 
			
		||||
const { MESSAGES } = require("../../util/constants");
 | 
			
		||||
 | 
			
		||||
module.exports.run = (client, message, args) => {
 | 
			
		||||
    const embed = new MessageEmbed()
 | 
			
		||||
        .setColor("#0c2461")
 | 
			
		||||
        .setAuthor(`${client.user.username} Info`, client.user.avatarURL())
 | 
			
		||||
        .addFields(
 | 
			
		||||
            { name: 'Mémoire', value: `${(process.memoryUsage().heapUsed / 1024 /1024).toFixed(2)}MB`, inline: true},
 | 
			
		||||
            { name: 'Uptime', value: `${Math.floor(client.uptime / 1000 / 60).toString()} minutes`, inline: true},
 | 
			
		||||
            { name: '\u200b', value: `\u200b`, inline: true},
 | 
			
		||||
            { name: 'Serveurs', value: `${client.guilds.cache.size.toString()}`, inline: true},
 | 
			
		||||
            { name: 'Salons', value: `${client.channels.cache.size.toString()}`, inline: true},
 | 
			
		||||
            { name: 'Utilisateurs', value: `${client.guilds.cache.map(g => g.memberCount).reduce((a,b) => a + b)}`, inline: true},
 | 
			
		||||
            { name: 'Version', value: `Version 2.2.1`, inline: true},
 | 
			
		||||
            { name: 'Source', value: `[SiteWeb](https://lan7ium.fr)`, inline: true},
 | 
			
		||||
            { name: 'Support', value: `[Serveur Invite](https://discord.gg/K6tGTtNVTE)`, inline: true},
 | 
			
		||||
        );
 | 
			
		||||
    message.channel.send(embed);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
module.exports.help = MESSAGES.COMMANDS.INFORMATIONS.BOTINFO;
 | 
			
		||||
							
								
								
									
										49
									
								
								commands/Informations/embed.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								commands/Informations/embed.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,49 @@
 | 
			
		||||
const { MessageEmbed } = require("discord.js");
 | 
			
		||||
const { MESSAGES } = require("../../util/constants");
 | 
			
		||||
 | 
			
		||||
module.exports.run = (client, message, args) => {
 | 
			
		||||
    const embed = new MessageEmbed()
 | 
			
		||||
    .setColor("dc143c")
 | 
			
		||||
    .setTitle("Titre de l'embed")
 | 
			
		||||
    .setURL("https://google.com")
 | 
			
		||||
    .setDescription("Description de l'embed")
 | 
			
		||||
    .setThumbnail(client.user.displayAvatarURL())
 | 
			
		||||
    .addField("Je suis un champ", "et je suis sa valeur")
 | 
			
		||||
    .addFields(
 | 
			
		||||
        { name: 'Je suis le champ 1', value: 'et je suis sa valeur', inline: true},
 | 
			
		||||
        { name: 'Je suis le champ 2', value: 'et en plus on est aligné', inline: true},
 | 
			
		||||
    )
 | 
			
		||||
    .setImage(client.user.displayAvatarURL())
 | 
			
		||||
    .setTimestamp()
 | 
			
		||||
    .setFooter("Je suis sur le pied du footer");      
 | 
			
		||||
 | 
			
		||||
    message.channel.send(embed);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
module.exports.help = MESSAGES.COMMANDS.INFORMATIONS.EMBED;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
const embed = new MessageEmbed()
 | 
			
		||||
    .setColor("#0c2461")
 | 
			
		||||
    .setDescription(`Plus d'informations à propos du serveur: **${guild.name}**`)
 | 
			
		||||
    .setThumbnail(guild.iconURL())
 | 
			
		||||
    .addField(
 | 
			
		||||
       `•  ID: ${guild.id}
 | 
			
		||||
        • Owner: ${guild.owner.user.tag} (${guild.ownerID})
 | 
			
		||||
        • Roles: ${guild.roles.cache.size}
 | 
			
		||||
        • Créé le: ${moment(guild.createdAt).format('DD/MM/YYYY')}
 | 
			
		||||
        `)
 | 
			
		||||
    .setTimestamp();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    const embed2 = new MessageEmbed()
 | 
			
		||||
        .setColor("#0c2461")
 | 
			
		||||
        .setDescription("Statistique du serveur : ")
 | 
			
		||||
        .addFields(
 | 
			
		||||
            { name: `Nombre de membres total : `, value: `${guild.memberCount -1 }`},
 | 
			
		||||
            { name: `Nombre de salons textuels : `, value: `${guild.channels.cache.filter(ch => ch.type === "text").size}`},
 | 
			
		||||
            { name: `Nombre de salons vocaux : `, value: `${guild.channels.cache.filter(ch => ch.type === "voice").size}`},
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
    message.channel.send(embed);
 | 
			
		||||
    message.channel.send(embed2);
 | 
			
		||||
							
								
								
									
										39
									
								
								commands/Informations/serverinfo.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								commands/Informations/serverinfo.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,39 @@
 | 
			
		||||
const { MessageEmbed } = require ("discord.js");
 | 
			
		||||
const { MESSAGES } = require("../../util/constants");
 | 
			
		||||
const moment = require("moment");
 | 
			
		||||
 | 
			
		||||
module.exports.run = (client, message, args) => {
 | 
			
		||||
    const guild = message.guild;
 | 
			
		||||
 | 
			
		||||
    message.guild.members.fetch().then(fetchAll => {
 | 
			
		||||
 | 
			
		||||
    const embed = new MessageEmbed()
 | 
			
		||||
    .setColor("#0c2461")
 | 
			
		||||
    .setThumbnail(guild.iconURL())
 | 
			
		||||
    .addField(`Plus d'informations à propos du serveur : **${guild.name}**`,
 | 
			
		||||
        `•  ID: ${guild.id}
 | 
			
		||||
        • Owner: ${guild.owner.user.tag} (${guild.ownerID})
 | 
			
		||||
        • Roles: ${guild.roles.cache.size}
 | 
			
		||||
        • Créé le: ${moment(guild.createdAt).format('DD/MM/YYYY')}
 | 
			
		||||
        `
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    const embed2 = new MessageEmbed()
 | 
			
		||||
    .setColor("#0c2461")
 | 
			
		||||
    .setDescription("Statistique du serveur : ")
 | 
			
		||||
    .addFields(
 | 
			
		||||
        { name: `Nombre de membres total : `, value: `${guild.memberCount -1 }`},
 | 
			
		||||
        { name: `Nombre de salons textuels : `, value: `${guild.channels.cache.filter(ch => ch.type === "text").size}`},
 | 
			
		||||
        { name: `Nombre de salons vocaux : `, value: `${guild.channels.cache.filter(ch => ch.type === "voice").size}`},
 | 
			
		||||
        { name: 'Membres Totaux', value: `${fetchAll.size}`, inline: true},
 | 
			
		||||
    )
 | 
			
		||||
    .setTimestamp();
 | 
			
		||||
 | 
			
		||||
    message.channel.send(embed);
 | 
			
		||||
    message.channel.send(embed2);
 | 
			
		||||
 | 
			
		||||
    });
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
module.exports.help = MESSAGES.COMMANDS.INFORMATIONS.SERVERINFO;
 | 
			
		||||
							
								
								
									
										30
									
								
								commands/Informations/stats.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								commands/Informations/stats.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,30 @@
 | 
			
		||||
const { MESSAGES } = require("../../util/constants");
 | 
			
		||||
const { MessageEmbed } = require ("discord.js");
 | 
			
		||||
 | 
			
		||||
module.exports.run = (client, message, args) => {
 | 
			
		||||
    const nameGuild = message.guild.name;
 | 
			
		||||
    message.guild.members.fetch().then(fetchAll => {
 | 
			
		||||
        const offline = fetchAll.filter(m => m.presence.status === 'offline');
 | 
			
		||||
        const dnd = fetchAll.filter(m => m.presence.status === 'dnd');
 | 
			
		||||
        const online = fetchAll.filter(m => m.presence.status === 'online');
 | 
			
		||||
        const bot = message.guild.members.cache.filter(member => member.user.bot).size; 
 | 
			
		||||
        
 | 
			
		||||
        const embed = new MessageEmbed()
 | 
			
		||||
        .setTitle("Informations sur les membres du serveur !")
 | 
			
		||||
        .setColor("#0c2461")
 | 
			
		||||
        .addFields(
 | 
			
		||||
            { name: 'Nom du serveur', value: `${nameGuild}`, inline: true},
 | 
			
		||||
            { name: 'Membres Totaux', value: `${fetchAll.size}`, inline: true},
 | 
			
		||||
            { name: 'Nombre de Bots', value: `${bot}`, inline: true},
 | 
			
		||||
            { name: 'Membres Connectés', value: `${online.size}`, inline: true},
 | 
			
		||||
            { name: 'Membres Hors-ligne', value: `${offline.size}`, inline: true},
 | 
			
		||||
            { name: 'Membres Occupés', value: `${dnd.size}`, inline: true},
 | 
			
		||||
        )
 | 
			
		||||
        .setTimestamp();
 | 
			
		||||
 | 
			
		||||
    message.channel.send(embed);
 | 
			
		||||
 | 
			
		||||
    });
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
module.exports.help = MESSAGES.COMMANDS.INFORMATIONS.STATS;
 | 
			
		||||
							
								
								
									
										31
									
								
								commands/Informations/userinfo.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								commands/Informations/userinfo.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,31 @@
 | 
			
		||||
const { MessageEmbed } = require ("discord.js");
 | 
			
		||||
const { MESSAGES } = require("../../util/constants");
 | 
			
		||||
const moment = require("moment");
 | 
			
		||||
 | 
			
		||||
module.exports.run = (client, message, args) => {
 | 
			
		||||
    let member = message.member;
 | 
			
		||||
    if (args[0]) member = message.guild.member(message.mentions.users.first());
 | 
			
		||||
    let user = member.user;
 | 
			
		||||
 | 
			
		||||
    const embed = new MessageEmbed()
 | 
			
		||||
        .setColor("#0c2461")
 | 
			
		||||
        .setThumbnail(user.displayAvatarURL())
 | 
			
		||||
        .addField(`Plus d'informations à propos de **${user.username}**`,
 | 
			
		||||
            `• Nom: ${user.tag}
 | 
			
		||||
            • Bot: ${user.bot ? 'true' : 'false'}
 | 
			
		||||
            • Crée le: ${moment(user.createdAt).format('DD/MM/YYYY | hh:mm')}
 | 
			
		||||
            • Statut: ${user.presence.status.toUpperCase()}`
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
    const embed2 = new MessageEmbed()
 | 
			
		||||
        .setColor("#0c2461")
 | 
			
		||||
        .addField(`L'utilisateur **${user.username}** ${member.username === undefined ? '' : `aka **${member.username}**`}`,
 | 
			
		||||
            `• A rejoint le serveur le: ${moment(member.joinedAt).format('DD/MM/YYYY | hh:mm')}
 | 
			
		||||
            • Ce membre possède les rôles suivants : ${member.roles.cache.map(roles => `\`${roles.name}\``).join(', ')}`
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
    message.channel.send(embed);
 | 
			
		||||
    message.channel.send(embed2);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
module.exports.help = MESSAGES.COMMANDS.INFORMATIONS.USERINFO;
 | 
			
		||||
							
								
								
									
										18
									
								
								commands/Musique/join.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								commands/Musique/join.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
			
		||||
const { MESSAGES } = require("../../util/constants");
 | 
			
		||||
 | 
			
		||||
module.exports.run = async (client, message, args, settings) => {
 | 
			
		||||
    const { channel } = message.member.voice;
 | 
			
		||||
    
 | 
			
		||||
    const queueConstruct = {
 | 
			
		||||
        textChannel: message.channel,
 | 
			
		||||
        channel,
 | 
			
		||||
        connection: null,
 | 
			
		||||
        songs: [],
 | 
			
		||||
        loop: false,
 | 
			
		||||
        playing: true
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
    queueConstruct.connection = await channel.join();
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
module.exports.help = MESSAGES.COMMANDS.MUSIQUE.JOIN;
 | 
			
		||||
							
								
								
									
										8
									
								
								commands/Musique/leave.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								commands/Musique/leave.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
			
		||||
const { MESSAGES } = require("../../util/constants");
 | 
			
		||||
 | 
			
		||||
module.exports.run = (client, message, args, settings) => {
 | 
			
		||||
    const queue = message.client.queue.get(message.guild.id);
 | 
			
		||||
    queue.connection.disconnect()
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
module.exports.help = MESSAGES.COMMANDS.MUSIQUE.LEAVE;
 | 
			
		||||
							
								
								
									
										26
									
								
								commands/Musique/loop.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								commands/Musique/loop.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,26 @@
 | 
			
		||||
const { MESSAGES } = require("../../util/constants");
 | 
			
		||||
const { canModifyQueue } = require("../../util/LanBot");
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
module.exports.run = (client, message, args, settings) => {
 | 
			
		||||
 | 
			
		||||
    if (!canModifyQueue(message.member)) return message.channel.send('Vous devez être dans un salon vocal pour utiliser cette commande !');
 | 
			
		||||
    const queue = message.client.queue.get(message.guild.id)
 | 
			
		||||
    if(!queue){ return message.channel.send({
 | 
			
		||||
        embed: {
 | 
			
		||||
            description: `Liste d'attente vide ! merci d'utiliser la commande \`${settings.prefix}play + URL / Nom de la musique\` !`,
 | 
			
		||||
            color: 'BLACK'
 | 
			
		||||
        }
 | 
			
		||||
    })
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // toggle from false to true and reverse
 | 
			
		||||
    queue.loop = !queue.loop;
 | 
			
		||||
    //queue.connection.dispatcher.loop()   
 | 
			
		||||
    return message.channel.send(`Le loop est maintenant ${queue.loop ? `**Actif**` : `**Inactif**`}`)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
module.exports.help = MESSAGES.COMMANDS.MUSIQUE.LOOP;
 | 
			
		||||
							
								
								
									
										30
									
								
								commands/Musique/lyrics.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								commands/Musique/lyrics.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,30 @@
 | 
			
		||||
const { MessageEmbed } = require("discord.js");
 | 
			
		||||
const lyricsFinder = require("lyrics-finder");
 | 
			
		||||
const { MESSAGES } = require("../../util/constants");
 | 
			
		||||
 | 
			
		||||
module.exports.run = async (client, message, args, settings) => {
 | 
			
		||||
    const queue = message.client.queue.get(message.guild.id);
 | 
			
		||||
    if (!queue) return message.channel.send("Aucune musique lancé !").catch(console.error);
 | 
			
		||||
 | 
			
		||||
    let lyrics = null;
 | 
			
		||||
    const title = queue.songs[0].title;
 | 
			
		||||
 | 
			
		||||
    try {
 | 
			
		||||
      lyrics = await lyricsFinder(queue.songs[0].title, "");
 | 
			
		||||
      if (!lyrics) lyrics = `Pas de paroles trouvé pour ${queue.songs[0].title} ! `;
 | 
			
		||||
    } catch (error) {
 | 
			
		||||
      lyrics = `Pas de paroles trouvé pour ${queue.songs[0].title} ! `;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    let lyricsEmbed = new MessageEmbed()
 | 
			
		||||
      .setTitle(`Paroles pour ${queue.songs[0].title}`)
 | 
			
		||||
      .setDescription(lyrics)
 | 
			
		||||
      .setColor("GREEN")
 | 
			
		||||
      .setTimestamp();
 | 
			
		||||
 | 
			
		||||
    if (lyricsEmbed.description.length >= 2048)
 | 
			
		||||
      lyricsEmbed.description = `${lyricsEmbed.description.substr(0, 2045)}...`;
 | 
			
		||||
    return message.channel.send(lyricsEmbed).catch(console.error);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
module.exports.help = MESSAGES.COMMANDS.MUSIQUE.LYRICS;
 | 
			
		||||
							
								
								
									
										22
									
								
								commands/Musique/move.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								commands/Musique/move.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
			
		||||
const { MESSAGES } = require("../../util/constants");
 | 
			
		||||
const move = require("array-move");
 | 
			
		||||
const { canModifyQueue } = require("../../util/LanBot");
 | 
			
		||||
 | 
			
		||||
module.exports.run = (client, message, args, settings) => {
 | 
			
		||||
    const queue = message.client.queue.get(message.guild.id);
 | 
			
		||||
    if (!queue) return message.channel.send("Il n'y a pas de musique dans la file d'attente.").catch(console.error);
 | 
			
		||||
    if (!canModifyQueue(message.member)) return;
 | 
			
		||||
 | 
			
		||||
    let song = queue.songs[args[0] - 1];
 | 
			
		||||
 | 
			
		||||
    queue.songs = move(queue.songs, args[0] - 1, args[1] == 1 ? 1 : args[1] - 1);
 | 
			
		||||
    queue.textChannel.send(
 | 
			
		||||
      ("Déplacement effectué !", {
 | 
			
		||||
        author: message.author,
 | 
			
		||||
        title: song.title,
 | 
			
		||||
        index: args[1] == 1 ? 1 : args[1]
 | 
			
		||||
      })
 | 
			
		||||
    );
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
module.exports.help = MESSAGES.COMMANDS.MUSIQUE.MOVE;
 | 
			
		||||
							
								
								
									
										52
									
								
								commands/Musique/nowplaying.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								commands/Musique/nowplaying.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,52 @@
 | 
			
		||||
const { MessageEmbed, MessageAttachment } = require("discord.js");
 | 
			
		||||
const musicGif = new MessageAttachment('./assets/img/Music.gif');
 | 
			
		||||
const { MESSAGES } = require("../../util/constants");
 | 
			
		||||
const createBar = require("string-progressbar");
 | 
			
		||||
 | 
			
		||||
module.exports.run = (client, message, args, settings) => {
 | 
			
		||||
    const channel = message.member.voice.channel;
 | 
			
		||||
    if (!channel) return message.channel.send('Tu dois te trouver dans un salon vocal pour utiliser cette commande');
 | 
			
		||||
    let queue = message.client.queue.get(message.guild.id)
 | 
			
		||||
    if(!queue) return message.channel.send({
 | 
			
		||||
        embed:{
 | 
			
		||||
            title: `Aucune musique n'est lancé actuellement donc merci d'utiliser la commande \`${settings.prefix}play + URL\`! `
 | 
			
		||||
        }
 | 
			
		||||
    })
 | 
			
		||||
 | 
			
		||||
    const song = queue.songs[0];
 | 
			
		||||
    const seek = (queue.connection.dispatcher.streamTime - queue.connection.dispatcher.pausedTime) / 1000;
 | 
			
		||||
    const left = song.duration - seek;
 | 
			
		||||
 | 
			
		||||
    let nowPlaying = new MessageEmbed()
 | 
			
		||||
      .setTitle("En lecture")
 | 
			
		||||
      .setDescription(`${song.title}\n${song.url}`)
 | 
			
		||||
      .setColor("#F8AA2A")
 | 
			
		||||
      .setAuthor(message.client.user.username)
 | 
			
		||||
      //.attachFiles(musicGif)
 | 
			
		||||
      //.setThumbnail('attachment://Music.gif')
 | 
			
		||||
      .setThumbnail('https://tenor.com/8P2l.gif');
 | 
			
		||||
      
 | 
			
		||||
 | 
			
		||||
      var time = new Date(left * 1000).toISOString().substr(11, 8);
 | 
			
		||||
 | 
			
		||||
    if (song.duration > 0) {
 | 
			
		||||
      nowPlaying.addField(
 | 
			
		||||
        "\u200b",
 | 
			
		||||
        new Date(seek * 1000).toISOString().substr(11, 8) +
 | 
			
		||||
          "[" +
 | 
			
		||||
          createBar(song.duration == 0 ? seek : song.duration, seek, 20)[0] +
 | 
			
		||||
          "]" +
 | 
			
		||||
          (song.duration == 0 ? " ◉ LIVE" : new Date(song.duration * 1000).toISOString().substr(11, 8)),
 | 
			
		||||
        false
 | 
			
		||||
      );
 | 
			
		||||
      nowPlaying.setFooter(
 | 
			
		||||
        (`Temps restant : ${time}`)
 | 
			
		||||
      );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return message.channel.send(nowPlaying);
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
module.exports.help = MESSAGES.COMMANDS.MUSIQUE.NOWPLAYING;
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										19
									
								
								commands/Musique/pause.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								commands/Musique/pause.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,19 @@
 | 
			
		||||
const { MESSAGES } = require("../../util/constants");
 | 
			
		||||
const { canModifyQueue } = require("../../util/LanBot");
 | 
			
		||||
 | 
			
		||||
module.exports.run = (client, message, args, settings) => {
 | 
			
		||||
 | 
			
		||||
    if (!canModifyQueue(message.member))return message.channel.send('Vous devez être dans un salon vocal pour utiliser cette commande !');
 | 
			
		||||
    let queue = message.client.queue.get(message.guild.id)
 | 
			
		||||
    if(!queue) return message.channel.send({
 | 
			
		||||
        embed: {
 | 
			
		||||
            description: "Impossible de mettre en pause, car aucune musique n'est lancé !"
 | 
			
		||||
        }
 | 
			
		||||
    })
 | 
			
		||||
    if(queue.playing !== false)
 | 
			
		||||
    queue.connection.dispatcher.pause()
 | 
			
		||||
    message.react('⏸')
 | 
			
		||||
    message.channel.send('Musique mis en pause !')
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
module.exports.help = MESSAGES.COMMANDS.MUSIQUE.PAUSE;
 | 
			
		||||
							
								
								
									
										116
									
								
								commands/Musique/play.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										116
									
								
								commands/Musique/play.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,116 @@
 | 
			
		||||
const { play } = require("../../Includes/play");
 | 
			
		||||
const ytdl = require("ytdl-core");
 | 
			
		||||
const YouTubeAPI = require("simple-youtube-api");
 | 
			
		||||
const { YOUTUBE_API_KEY, DEFAULT_VOLUME } = require("../../util/LanBot");
 | 
			
		||||
const youtube = new YouTubeAPI(YOUTUBE_API_KEY);
 | 
			
		||||
const { MessageEmbed } = require("discord.js");
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
const { MESSAGES } = require("../../util/constants");
 | 
			
		||||
 | 
			
		||||
module.exports.run = async (client, message, args, settings) => {
 | 
			
		||||
    const { channel } = message.member.voice;
 | 
			
		||||
 | 
			
		||||
    const serverQueue = message.client.queue.get(message.guild.id);
 | 
			
		||||
    if (!channel) return message.reply("Vous devez d'abord rejoindre un canal vocal!").catch(console.error);
 | 
			
		||||
    if (serverQueue && channel !== message.guild.me.voice.channel)
 | 
			
		||||
      return message
 | 
			
		||||
        .reply("Vous devez être dans le même canal que {user}", { user: message.client.user })
 | 
			
		||||
        .catch(console.error);
 | 
			
		||||
 | 
			
		||||
    if (!channel.permissionsFor(message.client.user).has("CONNECT")) return message.channel.send("Je n'ai pas la permission de rejoindre un salon vocal !")
 | 
			
		||||
    if (!channel.permissionsFor(message.client.user).has("SPEAK"))return message.channel.send("Je n'ai pas la permission Parler dans le salon vocal !")
 | 
			
		||||
  
 | 
			
		||||
    const search = args.join(" ");
 | 
			
		||||
    const videoPattern = /^(https?:\/\/)?(www\.)?(m\.)?(youtube\.com|youtu\.?be)\/.+$/gi;
 | 
			
		||||
    const playlistPattern = /^.*(list=)([^#\&\?]*).*/gi;
 | 
			
		||||
    const url = args[0];
 | 
			
		||||
    const urlValid = videoPattern.test(args[0]);
 | 
			
		||||
 | 
			
		||||
    // Start the playlist if playlist url was provided
 | 
			
		||||
    if (!videoPattern.test(args[0]) && playlistPattern.test(args[0])) {
 | 
			
		||||
      return message.client.commands.get("playlist").execute(message, args);
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    const queueConstruct = {
 | 
			
		||||
      textChannel: message.channel,
 | 
			
		||||
      channel,
 | 
			
		||||
      connection: null,
 | 
			
		||||
      songs: [],
 | 
			
		||||
      loop: false,
 | 
			
		||||
      volume: DEFAULT_VOLUME || 100,
 | 
			
		||||
      playing: true
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    let songInfo = null;
 | 
			
		||||
    let song = null;
 | 
			
		||||
 | 
			
		||||
    if (urlValid) {
 | 
			
		||||
      try {
 | 
			
		||||
        songInfo = await ytdl.getInfo(url);
 | 
			
		||||
        song = {
 | 
			
		||||
          title: songInfo.videoDetails.title,
 | 
			
		||||
          url: songInfo.videoDetails.video_url,
 | 
			
		||||
          duration: songInfo.videoDetails.lengthSeconds,
 | 
			
		||||
          views: songInfo.videoDetails.viewCount,
 | 
			
		||||
          thumbnail: songInfo.videoDetails.thumbnails[2]["url"]
 | 
			
		||||
        };
 | 
			
		||||
      } catch (error) {
 | 
			
		||||
        console.error(error);
 | 
			
		||||
        return message.reply(error.message).catch(console.error);
 | 
			
		||||
      }
 | 
			
		||||
    } else {
 | 
			
		||||
      try {
 | 
			
		||||
        const results = await youtube.searchVideos(search, 1, { part: "snippet" });
 | 
			
		||||
        songInfo = await ytdl.getInfo(results[0].url);
 | 
			
		||||
        song = {
 | 
			
		||||
          title: songInfo.videoDetails.title,
 | 
			
		||||
          url: songInfo.videoDetails.video_url,
 | 
			
		||||
          duration: songInfo.videoDetails.lengthSeconds,
 | 
			
		||||
          views: songInfo.videoDetails.viewCount,
 | 
			
		||||
          thumbnail: songInfo.videoDetails.thumbnails[2]["url"] 
 | 
			
		||||
        };
 | 
			
		||||
      } catch (error) {
 | 
			
		||||
        console.error(error);
 | 
			
		||||
        return message.reply(error.message).catch(console.error);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    var date = new Date(0);
 | 
			
		||||
    date.setSeconds(song.duration); // specify value for SECONDS here
 | 
			
		||||
    var timeString = date.toISOString().substr(11, 8);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    if (serverQueue) {
 | 
			
		||||
      serverQueue.songs.push(song);
 | 
			
		||||
      let embed = new MessageEmbed()
 | 
			
		||||
      .setTitle('Ajouté à la liste de lecture!')
 | 
			
		||||
      .setColor('#00fff1')
 | 
			
		||||
      .addField('Nom', song.title, true)
 | 
			
		||||
      .setThumbnail(song.thumbnail)
 | 
			
		||||
      .addField('Nombre de vues', song.views, true)
 | 
			
		||||
      .addField('Demandé par', message.author, true)
 | 
			
		||||
      .addField('Durée', timeString, true)
 | 
			
		||||
      return serverQueue.textChannel
 | 
			
		||||
        .send(embed)
 | 
			
		||||
        .catch(console.error);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    queueConstruct.songs.push(song);
 | 
			
		||||
    message.client.queue.set(message.guild.id, queueConstruct);
 | 
			
		||||
 | 
			
		||||
    try {
 | 
			
		||||
      queueConstruct.connection = await channel.join();
 | 
			
		||||
      await queueConstruct.connection.voice.setSelfDeaf(true);
 | 
			
		||||
      play(queueConstruct.songs[0], message);
 | 
			
		||||
    } catch (error) {
 | 
			
		||||
      console.error(error);
 | 
			
		||||
      message.client.queue.delete(message.guild.id);
 | 
			
		||||
      await channel.leave();
 | 
			
		||||
      return message.channel.send(`Impossible de rejoindre le channel: ${error}`).catch(console.error);
 | 
			
		||||
    }
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  module.exports.help = MESSAGES.COMMANDS.MUSIQUE.PLAY;
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										114
									
								
								commands/Musique/playlist.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										114
									
								
								commands/Musique/playlist.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,114 @@
 | 
			
		||||
const { MESSAGES } = require("../../util/constants");
 | 
			
		||||
const { MessageEmbed } = require("discord.js");
 | 
			
		||||
const { play } = require("../../Includes/play");
 | 
			
		||||
const YouTubeAPI = require("simple-youtube-api");
 | 
			
		||||
 | 
			
		||||
const {
 | 
			
		||||
  YOUTUBE_API_KEY,
 | 
			
		||||
  MAX_PLAYLIST_SIZE,
 | 
			
		||||
  DEFAULT_VOLUME,
 | 
			
		||||
} = require("../../util/LanBot");
 | 
			
		||||
const youtube = new YouTubeAPI(YOUTUBE_API_KEY);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
module.exports.run = async (client, message, args, settings) => {
 | 
			
		||||
  const { channel } = message.member.voice;
 | 
			
		||||
    const serverQueue = message.client.queue.get(message.guild.id);
 | 
			
		||||
 | 
			
		||||
    if (!channel.permissionsFor(message.client.user).has("CONNECT")) return message.channel.send("Je n'ai pas la permission de rejoindre un salon vocal !")
 | 
			
		||||
    if (!channel.permissionsFor(message.client.user).has("SPEAK"))return message.channel.send("Je n'ai pas la permission Parler dans le salon vocal !")
 | 
			
		||||
 | 
			
		||||
    if (serverQueue && channel !== message.guild.me.voice.channel)
 | 
			
		||||
      return message
 | 
			
		||||
        .reply(`Vous devez être dans le même canal que ${message.client.user}`)
 | 
			
		||||
        .catch(console.error);
 | 
			
		||||
 | 
			
		||||
    const search = args.join(" ");
 | 
			
		||||
    const pattern = /^.*(youtu.be\/|list=)([^#\&\?]*).*/gi;
 | 
			
		||||
    const url = args[0];
 | 
			
		||||
    const urlValid = pattern.test(args[0]);
 | 
			
		||||
 | 
			
		||||
    const queueConstruct = {
 | 
			
		||||
      textChannel: message.channel,
 | 
			
		||||
      channel,
 | 
			
		||||
      connection: null,
 | 
			
		||||
      songs: [],
 | 
			
		||||
      loop: false,
 | 
			
		||||
      volume: DEFAULT_VOLUME || 100,
 | 
			
		||||
      playing: true
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    let playlist = null;
 | 
			
		||||
    let videos = [];
 | 
			
		||||
 | 
			
		||||
    if (urlValid) {
 | 
			
		||||
      try {
 | 
			
		||||
        playlist = await youtube.getPlaylist(url, { part: "snippet" });
 | 
			
		||||
        videos = await playlist.getVideos(MAX_PLAYLIST_SIZE || 10, { part: "snippet" });
 | 
			
		||||
      } catch (error) {
 | 
			
		||||
        console.error(error);
 | 
			
		||||
        return message.reply("Playlist introuvable ! 🥺 ").catch(console.error);
 | 
			
		||||
      }
 | 
			
		||||
    } else {
 | 
			
		||||
      try {
 | 
			
		||||
        const results = await youtube.searchPlaylists(search, 1, { part: "snippet" });
 | 
			
		||||
        playlist = results[0];
 | 
			
		||||
        videos = await playlist.getVideos(MAX_PLAYLIST_SIZE || 10, { part: "snippet" });
 | 
			
		||||
      } catch (error) {
 | 
			
		||||
        console.error(error);
 | 
			
		||||
        return message.reply(error.message).catch(console.error);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    const newSongs = videos
 | 
			
		||||
      .filter((video) => video.title != "Private video" && video.title != "Deleted video")
 | 
			
		||||
      .map((video) => {
 | 
			
		||||
        return (song = {
 | 
			
		||||
          title: video.title,
 | 
			
		||||
          url: video.url,
 | 
			
		||||
          duration: video.durationSeconds
 | 
			
		||||
        });
 | 
			
		||||
      });
 | 
			
		||||
 | 
			
		||||
    serverQueue ? serverQueue.songs.push(...newSongs) : queueConstruct.songs.push(...newSongs);
 | 
			
		||||
 | 
			
		||||
    let playlistEmbed = new MessageEmbed()
 | 
			
		||||
      .setTitle(`${playlist.title}`)
 | 
			
		||||
      .setDescription(newSongs.map((song, index) => `${index + 1}. ${song.title}`))
 | 
			
		||||
      .setURL(playlist.url)
 | 
			
		||||
      .setColor("#F8AA2A")
 | 
			
		||||
      .setTimestamp();
 | 
			
		||||
 | 
			
		||||
    if (playlistEmbed.description.length >= 2048)
 | 
			
		||||
      playlistEmbed.description =
 | 
			
		||||
        playlistEmbed.description.substr(0, 2007) + ("\nListe de lecture supérieure à la limite de caractères...");
 | 
			
		||||
 | 
			
		||||
    message.channel.send((`${message.author} a commencé une playlist`), playlistEmbed);
 | 
			
		||||
 | 
			
		||||
    if (!serverQueue) {
 | 
			
		||||
      message.client.queue.set(message.guild.id, queueConstruct);
 | 
			
		||||
 | 
			
		||||
      try {
 | 
			
		||||
        queueConstruct.connection = await channel.join();
 | 
			
		||||
        await queueConstruct.connection.voice.setSelfDeaf(true);
 | 
			
		||||
        play(queueConstruct.songs[0], message);
 | 
			
		||||
      } catch (error) {
 | 
			
		||||
        console.error(error);
 | 
			
		||||
        message.client.queue.delete(message.guild.id);
 | 
			
		||||
        await channel.leave();
 | 
			
		||||
        return message.channel.send(`Impossible de rejoindre le channel: ${error}`).catch(console.error);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
module.exports.help = MESSAGES.COMMANDS.MUSIQUE.PLAYLIST;
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
Play Pause      ⏯️
 | 
			
		||||
Stop            ⏹️
 | 
			
		||||
Shuffle         🔀
 | 
			
		||||
Loop All        🔁
 | 
			
		||||
Loop One        🔂
 | 
			
		||||
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										28
									
								
								commands/Musique/pruning.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								commands/Musique/pruning.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,28 @@
 | 
			
		||||
const fs = require("fs");
 | 
			
		||||
const { MESSAGES } = require("../../util/constants");
 | 
			
		||||
 | 
			
		||||
let config;
 | 
			
		||||
 | 
			
		||||
try {
 | 
			
		||||
  config = require("../../config");
 | 
			
		||||
} catch (error) {
 | 
			
		||||
  config = null;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
module.exports.run = (client, message, args, settings) => {
 | 
			
		||||
    if (!config) return;
 | 
			
		||||
    config.PRUNING = !config.PRUNING;
 | 
			
		||||
 | 
			
		||||
    fs.writeFile("../../config", JSON.stringify(config, null, 2), (err) => {
 | 
			
		||||
      if (err) {
 | 
			
		||||
        console.log(err);
 | 
			
		||||
        return message.channel.send("Une erreur s'est produite lors de l'écriture dans le fichier.").catch(console.error);
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      return message.channel
 | 
			
		||||
        .send(`Pruning est ${config.PRUNING ? "**ON**" : "**OFF**"}`)
 | 
			
		||||
        .catch(console.error);
 | 
			
		||||
    });
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
module.exports.help = MESSAGES.COMMANDS.MUSIQUE.PRUNING;
 | 
			
		||||
							
								
								
									
										88
									
								
								commands/Musique/queue.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										88
									
								
								commands/Musique/queue.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,88 @@
 | 
			
		||||
const { MessageEmbed } = require('discord.js')
 | 
			
		||||
const { MESSAGES } = require("../../util/constants");
 | 
			
		||||
 | 
			
		||||
module.exports.run = async (client, message, args, settings) => {
 | 
			
		||||
    const permissions = message.channel.permissionsFor(message.client.user);
 | 
			
		||||
    if (!permissions.has(["MANAGE_MESSAGES", "ADD_REACTIONS"]))
 | 
			
		||||
      return message.reply("Il me manque l'autorisation de gérer les messages ou d'ajouter des réactions");
 | 
			
		||||
 | 
			
		||||
    const queue = message.client.queue.get(message.guild.id);
 | 
			
		||||
    if (!queue) return message.channel.send("❌ **Rien ne joue sur ce serveur**");
 | 
			
		||||
 | 
			
		||||
    let currentPage = 0;
 | 
			
		||||
    const embeds = generateQueueEmbed(message, queue.songs);
 | 
			
		||||
 | 
			
		||||
    const queueEmbed = await message.channel.send(
 | 
			
		||||
      `**${("Page actuelle - ")} ${currentPage + 1}/${embeds.length}**`,
 | 
			
		||||
      embeds[currentPage]
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
    try {
 | 
			
		||||
      await queueEmbed.react("⬅️");
 | 
			
		||||
      await queueEmbed.react("⏹");
 | 
			
		||||
      await queueEmbed.react("➡️");
 | 
			
		||||
    } catch (error) {
 | 
			
		||||
      console.error(error);
 | 
			
		||||
      message.channel.send(error.message).catch(console.error);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    const filter = (reaction, user) =>
 | 
			
		||||
      ["⬅️", "⏹", "➡️"].includes(reaction.emoji.name) && message.author.id === user.id;
 | 
			
		||||
    const collector = queueEmbed.createReactionCollector(filter, { time: 60000 });
 | 
			
		||||
 | 
			
		||||
    collector.on("collect", async (reaction, user) => {
 | 
			
		||||
      try {
 | 
			
		||||
        if (reaction.emoji.name === "➡️") {
 | 
			
		||||
          if (currentPage < embeds.length - 1) {
 | 
			
		||||
            currentPage++;
 | 
			
		||||
            queueEmbed.edit(
 | 
			
		||||
              ("Page actuelle - ", { page: currentPage + 1, length: embeds.length }),
 | 
			
		||||
              embeds[currentPage]
 | 
			
		||||
            );
 | 
			
		||||
          }
 | 
			
		||||
        } else if (reaction.emoji.name === "⬅️") {
 | 
			
		||||
          if (currentPage !== 0) {
 | 
			
		||||
            --currentPage;
 | 
			
		||||
            queueEmbed.edit(
 | 
			
		||||
              ("Page actuelle - ", { page: currentPage + 1, length: embeds.length }),
 | 
			
		||||
              embeds[currentPage]
 | 
			
		||||
            );
 | 
			
		||||
          }
 | 
			
		||||
        } else {
 | 
			
		||||
          collector.stop();
 | 
			
		||||
          reaction.message.reactions.removeAll();
 | 
			
		||||
        }
 | 
			
		||||
        await reaction.users.remove(message.author.id);
 | 
			
		||||
      } catch (error) {
 | 
			
		||||
        console.error(error);
 | 
			
		||||
        return message.channel.send(error.message).catch(console.error);
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function generateQueueEmbed(message, queue) {
 | 
			
		||||
    let embeds = [];
 | 
			
		||||
    let k = 10;
 | 
			
		||||
  
 | 
			
		||||
    for (let i = 0; i < queue.length; i += 10) {
 | 
			
		||||
      const current = queue.slice(i, k);
 | 
			
		||||
      let j = i;
 | 
			
		||||
      k += 10;
 | 
			
		||||
  
 | 
			
		||||
      const info = current.map((track) => `${++j} - [${track.title}](${track.url})`).join("\n");
 | 
			
		||||
  
 | 
			
		||||
      const embed = new MessageEmbed()
 | 
			
		||||
        .setTitle("Song Queue\n")
 | 
			
		||||
        .setThumbnail(message.guild.iconURL())
 | 
			
		||||
        .setColor("#F8AA2A")
 | 
			
		||||
        .setDescription(
 | 
			
		||||
         (`**Morceau en cours - [${queue[0].title}](${queue[0].url})**\n\n${info}`)
 | 
			
		||||
        )
 | 
			
		||||
        .setTimestamp();
 | 
			
		||||
      embeds.push(embed);
 | 
			
		||||
    }
 | 
			
		||||
  
 | 
			
		||||
    return embeds;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
module.exports.help = MESSAGES.COMMANDS.MUSIQUE.QUEUE;
 | 
			
		||||
							
								
								
									
										104
									
								
								commands/Musique/radiozebre.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										104
									
								
								commands/Musique/radiozebre.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,104 @@
 | 
			
		||||
const { MESSAGES } = require("../../util/constants");
 | 
			
		||||
const { MessageEmbed } = require("discord.js");
 | 
			
		||||
const { play } = require("../../Includes/play");
 | 
			
		||||
const YouTubeAPI = require("simple-youtube-api");
 | 
			
		||||
 | 
			
		||||
const {
 | 
			
		||||
  YOUTUBE_API_KEY,
 | 
			
		||||
  MAX_PLAYLIST_SIZE,
 | 
			
		||||
  DEFAULT_VOLUME,
 | 
			
		||||
} = require("../../util/LanBot");
 | 
			
		||||
const youtube = new YouTubeAPI(YOUTUBE_API_KEY);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
module.exports.run = async (client, message, args, settings) => {
 | 
			
		||||
  const { channel } = message.member.voice;
 | 
			
		||||
    const serverQueue = message.client.queue.get(message.guild.id);
 | 
			
		||||
 | 
			
		||||
    if (!channel.permissionsFor(message.client.user).has("CONNECT")) return message.channel.send("Je n'ai pas la permission de rejoindre un salon vocal !")
 | 
			
		||||
    if (!channel.permissionsFor(message.client.user).has("SPEAK"))return message.channel.send("Je n'ai pas la permission Parler dans le salon vocal !")
 | 
			
		||||
 | 
			
		||||
    if (serverQueue && channel !== message.guild.me.voice.channel)
 | 
			
		||||
      return message
 | 
			
		||||
        .reply(`Vous devez être dans le même canal que ${message.client.user}`)
 | 
			
		||||
        .catch(console.error);
 | 
			
		||||
 | 
			
		||||
    const search = ("https://youtube.com/playlist?list=PLEQIc8j7Pa4SX6ixC2D6wplqzXI9Jv6el");
 | 
			
		||||
    const pattern = /^.*(youtu.be\/|list=)([^#\&\?]*).*/gi;
 | 
			
		||||
    const url = ("https://youtube.com/playlist?list=PLEQIc8j7Pa4SX6ixC2D6wplqzXI9Jv6el");
 | 
			
		||||
    const urlValid = pattern.test("https://youtube.com/playlist?list=PLEQIc8j7Pa4SX6ixC2D6wplqzXI9Jv6el");
 | 
			
		||||
 | 
			
		||||
    const queueConstruct = {
 | 
			
		||||
      textChannel: message.channel,
 | 
			
		||||
      channel,
 | 
			
		||||
      connection: null,
 | 
			
		||||
      songs: [],
 | 
			
		||||
      loop: false,
 | 
			
		||||
      volume: DEFAULT_VOLUME || 100,
 | 
			
		||||
      playing: true
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    let playlist = null;
 | 
			
		||||
    let videos = [];
 | 
			
		||||
 | 
			
		||||
    if (urlValid) {
 | 
			
		||||
      try {
 | 
			
		||||
        playlist = await youtube.getPlaylist(url, { part: "snippet" });
 | 
			
		||||
        videos = await playlist.getVideos(MAX_PLAYLIST_SIZE || 10, { part: "snippet" });
 | 
			
		||||
      } catch (error) {
 | 
			
		||||
        console.error(error);
 | 
			
		||||
        return message.reply("Playlist introuvable ! 🥺 ").catch(console.error);
 | 
			
		||||
      }
 | 
			
		||||
    } else {
 | 
			
		||||
      try {
 | 
			
		||||
        const results = await youtube.searchPlaylists(search, 1, { part: "snippet" });
 | 
			
		||||
        playlist = results[0];
 | 
			
		||||
        videos = await playlist.getVideos(MAX_PLAYLIST_SIZE || 10, { part: "snippet" });
 | 
			
		||||
      } catch (error) {
 | 
			
		||||
        console.error(error);
 | 
			
		||||
        return message.reply(error.message).catch(console.error);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    const newSongs = videos
 | 
			
		||||
      .filter((video) => video.title != "Private video" && video.title != "Deleted video")
 | 
			
		||||
      .map((video) => {
 | 
			
		||||
        return (song = {
 | 
			
		||||
          title: video.title,
 | 
			
		||||
          url: video.url,
 | 
			
		||||
          duration: video.durationSeconds
 | 
			
		||||
        });
 | 
			
		||||
      });
 | 
			
		||||
 | 
			
		||||
    serverQueue ? serverQueue.songs.push(...newSongs) : queueConstruct.songs.push(...newSongs);
 | 
			
		||||
 | 
			
		||||
    let playlistEmbed = new MessageEmbed()
 | 
			
		||||
      .setTitle(`${playlist.title}`)
 | 
			
		||||
      .setDescription(newSongs.map((song, index) => `${index + 1}. ${song.title}`))
 | 
			
		||||
      .setURL(playlist.url)
 | 
			
		||||
      .setColor("#F8AA2A")
 | 
			
		||||
      .setTimestamp();
 | 
			
		||||
 | 
			
		||||
    if (playlistEmbed.description.length >= 2048)
 | 
			
		||||
      playlistEmbed.description =
 | 
			
		||||
        playlistEmbed.description.substr(0, 2007) + ("\nListe de lecture supérieure à la limite de caractères...");
 | 
			
		||||
 | 
			
		||||
    message.channel.send((`${message.author} a commencé une playlist`), playlistEmbed);
 | 
			
		||||
 | 
			
		||||
    if (!serverQueue) {
 | 
			
		||||
      message.client.queue.set(message.guild.id, queueConstruct);
 | 
			
		||||
 | 
			
		||||
      try {
 | 
			
		||||
        queueConstruct.connection = await channel.join();
 | 
			
		||||
        await queueConstruct.connection.voice.setSelfDeaf(true);
 | 
			
		||||
        play(queueConstruct.songs[0], message);
 | 
			
		||||
      } catch (error) {
 | 
			
		||||
        console.error(error);
 | 
			
		||||
        message.client.queue.delete(message.guild.id);
 | 
			
		||||
        await channel.leave();
 | 
			
		||||
        return message.channel.send(`Impossible de rejoindre le channel: ${error}`).catch(console.error);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
module.exports.help = MESSAGES.COMMANDS.MUSIQUE.RADIOZEBRE;
 | 
			
		||||
							
								
								
									
										33
									
								
								commands/Musique/remove.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								commands/Musique/remove.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,33 @@
 | 
			
		||||
const pattern = /^[0-9]{1,2}(\s*,\s*[0-9]{1,2})*$/;
 | 
			
		||||
const { MESSAGES } = require("../../util/constants");
 | 
			
		||||
const { canModifyQueue } = require("../../util/LanBot");
 | 
			
		||||
 | 
			
		||||
module.exports.run = (client, message, args, settings) => {
 | 
			
		||||
    const queue = message.client.queue.get(message.guild.id);
 | 
			
		||||
 | 
			
		||||
    if (!queue) return message.channel.send("Il n'y a pas de file d'attente.").catch(console.error);
 | 
			
		||||
    if (!canModifyQueue(message.member))return message.channel.send('Vous devez être dans un salon vocal pour utiliser cette commande !');
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    const arguments = args.join("");
 | 
			
		||||
    const songs = arguments.split(",").map((arg) => parseInt(arg));
 | 
			
		||||
    let removed = [];
 | 
			
		||||
 | 
			
		||||
    if (pattern.test(arguments)) {
 | 
			
		||||
      queue.songs = queue.songs.filter((item, index) => {
 | 
			
		||||
        if (songs.find((songIndex) => songIndex - 1 === index)) removed.push(item);
 | 
			
		||||
        else return true;
 | 
			
		||||
      });
 | 
			
		||||
 | 
			
		||||
      queue.textChannel.send(
 | 
			
		||||
        `${message.author} ❌ suppression de **${removed.map((song) => song.title).join("\n")}** de la file d'attente.`
 | 
			
		||||
      );
 | 
			
		||||
    } else if (!isNaN(args[0]) && args[0] >= 1 && args[0] <= queue.songs.length) {
 | 
			
		||||
      console.log("On a eu de la chance !");
 | 
			
		||||
      return queue.textChannel.send(
 | 
			
		||||
        `${message.author} ❌ suppression de **${queue.songs.splice(args[0] - 1, 1)[0].title}** de la file d'attente.`
 | 
			
		||||
      );
 | 
			
		||||
    }
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  module.exports.help = MESSAGES.COMMANDS.MUSIQUE.REMOVE;
 | 
			
		||||
							
								
								
									
										18
									
								
								commands/Musique/resume.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								commands/Musique/resume.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
			
		||||
const { MESSAGES } = require("../../util/constants");
 | 
			
		||||
const { canModifyQueue } = require("../../util/LanBot");
 | 
			
		||||
 | 
			
		||||
module.exports.run = (client, message, args, settings) => {
 | 
			
		||||
    if (!canModifyQueue(message.member))return message.channel.send('Vous devez être dans un salon vocal pour utiliser cette commande !');
 | 
			
		||||
    let queue = message.client.queue.get(message.guild.id)
 | 
			
		||||
    if(!queue) return message.channel.send({
 | 
			
		||||
        embed: {
 | 
			
		||||
            description: "Aucune musique actuellement en pause !"
 | 
			
		||||
        }
 | 
			
		||||
    })
 | 
			
		||||
    if(queue.playing !== false)
 | 
			
		||||
    queue.connection.dispatcher.resume()
 | 
			
		||||
    message.react('▶')
 | 
			
		||||
    message.channel.send('Musique relancée !')
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
module.exports.help = MESSAGES.COMMANDS.MUSIQUE.RESUME;
 | 
			
		||||
							
								
								
									
										60
									
								
								commands/Musique/search.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								commands/Musique/search.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,60 @@
 | 
			
		||||
const { MessageEmbed } = require("discord.js");
 | 
			
		||||
const YouTubeAPI = require("simple-youtube-api");
 | 
			
		||||
const { YOUTUBE_API_KEY } = require("../../util/LanBot");
 | 
			
		||||
const youtube = new YouTubeAPI(YOUTUBE_API_KEY);
 | 
			
		||||
const { MESSAGES } = require("../../util/constants");
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
module.exports.run = async (client, message, args, settings) => {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    if (message.channel.activeCollector) return message.reply("Un collecteur de messages est déjà actif dans ce canal.");
 | 
			
		||||
    if (!message.member.voice.channel)
 | 
			
		||||
      return message.reply("Vous devez d'abord rejoindre un canal vocal!").catch(console.error);
 | 
			
		||||
 | 
			
		||||
    const search = args.join(" ");
 | 
			
		||||
 | 
			
		||||
    let resultsEmbed = new MessageEmbed()
 | 
			
		||||
      .setTitle("**Répondez avec le numéro de la chanson que vous souhaitez écouter**")
 | 
			
		||||
      .setDescription(`Résultat pour: ${search}`)
 | 
			
		||||
      .setColor("#F8AA2A");
 | 
			
		||||
 | 
			
		||||
    try {
 | 
			
		||||
      const results = await youtube.searchVideos(search, 10);
 | 
			
		||||
      results.map((video, index) => resultsEmbed.addField(video.shortURL, `${index + 1}. ${video.title}`));
 | 
			
		||||
 | 
			
		||||
      let resultsMessage = await message.channel.send(resultsEmbed);
 | 
			
		||||
 | 
			
		||||
      function filter(msg) {
 | 
			
		||||
        const pattern = /^[0-9]{1,2}(\s*,\s*[0-9]{1,2})*$/;
 | 
			
		||||
        return pattern.test(msg.content);
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      message.channel.activeCollector = true;
 | 
			
		||||
      const response = await message.channel.awaitMessages(filter, { max: 1, time: 30000, errors: ["time"] });
 | 
			
		||||
      const reply = response.first().content;
 | 
			
		||||
 | 
			
		||||
      if (reply.includes(",")) {
 | 
			
		||||
        let songs = reply.split(",").map((str) => str.trim());
 | 
			
		||||
 | 
			
		||||
        for (let song of songs) {
 | 
			
		||||
          await message.client.commands
 | 
			
		||||
            .get("play")
 | 
			
		||||
            .execute(message, [resultsEmbed.fields[parseInt(song) - 1].name]);
 | 
			
		||||
        }
 | 
			
		||||
      } else {
 | 
			
		||||
        const choice = resultsEmbed.fields[parseInt(response.first()) - 1].name;
 | 
			
		||||
        message.client.commands.get("play").execute(message, [choice]);
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      message.channel.activeCollector = false;
 | 
			
		||||
      resultsMessage.delete().catch(console.error);
 | 
			
		||||
      response.first().delete().catch(console.error);
 | 
			
		||||
    } catch (error) {
 | 
			
		||||
      console.error(error);
 | 
			
		||||
      message.channel.activeCollector = false;
 | 
			
		||||
      message.reply("lantium a encore chié sur le code ! ").catch(console.error);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  module.exports.help = MESSAGES.COMMANDS.MUSIQUE.SEARCH;
 | 
			
		||||
							
								
								
									
										23
									
								
								commands/Musique/shuffle.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								commands/Musique/shuffle.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
			
		||||
const { MESSAGES } = require("../../util/constants");
 | 
			
		||||
const { canModifyQueue } = require("../../util/LanBot");
 | 
			
		||||
 | 
			
		||||
module.exports.run = (client, message, args, settings) => {
 | 
			
		||||
 | 
			
		||||
  if (!canModifyQueue(message.member))return message.channel.send('Vous devez être dans un salon vocal pour utiliser cette commande !');
 | 
			
		||||
  
 | 
			
		||||
  const queue = message.client.queue.get(message.guild.id)
 | 
			
		||||
    if(!queue) return message.channel.send("Aucune musique dans la liste d'attente !")
 | 
			
		||||
   
 | 
			
		||||
    let songs = queue.songs;
 | 
			
		||||
    for (let i = songs.length - 1; i > 1; i--) {
 | 
			
		||||
      let j = 1 + Math.floor(Math.random() * i);
 | 
			
		||||
      [songs[i], songs[j]] = [songs[j], songs[i]];
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    queue.songs = songs;
 | 
			
		||||
    
 | 
			
		||||
    message.client.queue.set(message.guild.id, queue);
 | 
			
		||||
    message.channel.send(`Lecture aléatoire de la liste de lecture 🔀`).catch(console.error);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
module.exports.help = MESSAGES.COMMANDS.MUSIQUE.SHUFFLE;
 | 
			
		||||
							
								
								
									
										23
									
								
								commands/Musique/skip.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								commands/Musique/skip.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
			
		||||
const { MESSAGES } = require("../../util/constants");
 | 
			
		||||
const { canModifyQueue } = require("../../util/LanBot");
 | 
			
		||||
 | 
			
		||||
module.exports.run = (client, message, args, settings) => {
 | 
			
		||||
    
 | 
			
		||||
    if (!canModifyQueue(message.member))return message.channel.send('Vous devez être dans un salon vocal pour utiliser cette commande !');
 | 
			
		||||
 | 
			
		||||
    let queue = message.client.queue.get(message.guild.id)
 | 
			
		||||
    if(!queue){ return message.channel.send({
 | 
			
		||||
        embed: {
 | 
			
		||||
            description: `Liste d'attente vide ! merci d'utiliser la commande \`${settings.prefix}play + URL / Nom de la musique\` !`,
 | 
			
		||||
            color: 'BLACK'
 | 
			
		||||
        }
 | 
			
		||||
    })
 | 
			
		||||
}
 | 
			
		||||
    if(queue.songs.length !== 0) {
 | 
			
		||||
        message.react('✅')
 | 
			
		||||
        queue.connection.dispatcher.end('Dacodac Je passe à la suivante')
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
module.exports.help = MESSAGES.COMMANDS.MUSIQUE.SKIP;
 | 
			
		||||
							
								
								
									
										33
									
								
								commands/Musique/skipto.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								commands/Musique/skipto.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,33 @@
 | 
			
		||||
 | 
			
		||||
const { MESSAGES } = require("../../util/constants");
 | 
			
		||||
const { canModifyQueue } = require("../../util/LanBot");
 | 
			
		||||
 | 
			
		||||
module.exports.run = (client, message, args, settings) => {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    const queue = message.client.queue.get(message.guild.id);
 | 
			
		||||
    if (!queue) return message.channel.send("Il n'y a pas de file d'attente.").catch(console.error);
 | 
			
		||||
    if (!canModifyQueue(message.member))return message.channel.send('Vous devez être dans un salon vocal pour utiliser cette commande !');
 | 
			
		||||
 | 
			
		||||
    if (args[0] > queue.songs.length)
 | 
			
		||||
      return message
 | 
			
		||||
        .reply(`La file d'attente contient seulement ${queue.songs.length} chansons!`)
 | 
			
		||||
        .catch(console.error);
 | 
			
		||||
 | 
			
		||||
    queue.playing = true;
 | 
			
		||||
 | 
			
		||||
    if (queue.loop) {
 | 
			
		||||
      for (let i = 0; i < args[0] - 2; i++) {
 | 
			
		||||
        queue.songs.push(queue.songs.shift());
 | 
			
		||||
      }
 | 
			
		||||
    } else {
 | 
			
		||||
      queue.songs = queue.songs.slice(args[0] - 2);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    queue.connection.dispatcher.end();
 | 
			
		||||
    queue.textChannel
 | 
			
		||||
      .send(`${message.author} ⏭ skip ${args[0] - 1} musiques`)
 | 
			
		||||
      .catch(console.error);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  module.exports.help = MESSAGES.COMMANDS.MUSIQUE.SKIPTO;
 | 
			
		||||
							
								
								
									
										19
									
								
								commands/Musique/stop.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								commands/Musique/stop.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,19 @@
 | 
			
		||||
const { MESSAGES } = require("../../util/constants");
 | 
			
		||||
const { canModifyQueue } = require("../../util/LanBot");
 | 
			
		||||
 | 
			
		||||
module.exports.run = (client, message, args, settings) => {
 | 
			
		||||
    if (!canModifyQueue(message.member))return message.channel.send('Vous devez être dans un salon vocal pour utiliser cette commande !');
 | 
			
		||||
 | 
			
		||||
    let queue = message.client.queue.get(message.guild.id)
 | 
			
		||||
    if(!queue) return message.channel.send({
 | 
			
		||||
        embed: {
 | 
			
		||||
            description: "Aucune musique de jouer, donc impossible d'utiliser la commande !",
 | 
			
		||||
            color: 'BLACK'
 | 
			
		||||
        }
 | 
			
		||||
    })
 | 
			
		||||
    message.react('✅')
 | 
			
		||||
    queue.songs = []
 | 
			
		||||
    queue.connection.dispatcher.end('Fin!')
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
module.exports.help = MESSAGES.COMMANDS.MUSIQUE.STOP;
 | 
			
		||||
							
								
								
									
										22
									
								
								commands/Musique/volume.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								commands/Musique/volume.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
			
		||||
const { MESSAGES } = require("../../util/constants");
 | 
			
		||||
const { canModifyQueue } = require("../../util/LanBot");
 | 
			
		||||
 | 
			
		||||
module.exports.run = (client, message, args, settings) => {
 | 
			
		||||
    const queue = message.client.queue.get(message.guild.id);
 | 
			
		||||
 | 
			
		||||
    if (!queue) return message.reply(i18n.__("volume.errorNotQueue")).catch(console.error);
 | 
			
		||||
    if (!canModifyQueue(message.member))return message.channel.send('Vous devez être dans un salon vocal pour utiliser cette commande !');
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    if (!args[0]) return message.reply(`🔊 Le volume actuelle est de: **${queue.volume}%**`).catch(console.error);
 | 
			
		||||
    if (isNaN(args[0])) return message.reply("Veuillez utiliser un nombre pour régler le volume.").catch(console.error);
 | 
			
		||||
    if (Number(args[0]) > 100 || Number(args[0]) < 0)
 | 
			
		||||
      return message.reply("Veuillez utiliser un nombre compris entre 0 et 100.").catch(console.error);
 | 
			
		||||
 | 
			
		||||
    queue.volume = args[0];
 | 
			
		||||
    queue.connection.dispatcher.setVolumeLogarithmic(args[0] / 100);
 | 
			
		||||
    return queue.textChannel.send(`Volume réglé sur: **${args[0]}%**`).catch(console.error);
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
module.exports.help = MESSAGES.COMMANDS.MUSIQUE.VOLUME;
 | 
			
		||||
							
								
								
									
										68
									
								
								commands/Utilitaire/help.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										68
									
								
								commands/Utilitaire/help.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,68 @@
 | 
			
		||||
const { MESSAGES } = require("../../util/constants");
 | 
			
		||||
const { MessageEmbed } = require("discord.js");
 | 
			
		||||
const { readdirSync } = require("fs");
 | 
			
		||||
const categoryList = readdirSync('./commands');
 | 
			
		||||
 | 
			
		||||
module.exports.run = (client, message, args, settings) => {
 | 
			
		||||
 | 
			
		||||
    //let user = message.guild.member(message.mentions.users.first());
 | 
			
		||||
    message.delete();
 | 
			
		||||
 | 
			
		||||
    if(!args.length) {
 | 
			
		||||
        const embedIntro = new MessageEmbed()
 | 
			
		||||
            .setAuthor('Liste des categories', message.guild.iconURL())
 | 
			
		||||
            .setColor('#0c76e7')
 | 
			
		||||
            .setDescription(`Voici la liste des catégories.\nPour plus d'information, merci de faire la commande \`${settings.prefix}help <Commande>\` ou \`${settings.prefix}help <Catégorie>\``)
 | 
			
		||||
            .setTimestamp(new Date())
 | 
			
		||||
        message.channel.send(embedIntro)
 | 
			
		||||
        // message.member.send("**Les commandes sont à taper dans le serveur et pas en MP désolé** :innocent: ")
 | 
			
		||||
        // message.channel.send(embedIntro);
 | 
			
		||||
        // message.channel.send("Regarde tes MP :wink:").then(msg => {
 | 
			
		||||
        //     msg.delete({ timeout: 5000 /*time unitl delete in milliseconds*/});
 | 
			
		||||
        // })
 | 
			
		||||
 | 
			
		||||
        const embedCat = new MessageEmbed()
 | 
			
		||||
            .setColor('#0c76e7')
 | 
			
		||||
            .setAuthor('Help', client.user.displayAvatarURL())
 | 
			
		||||
            .setFooter('Help', client.user.displayAvatarURL())
 | 
			
		||||
            .setTimestamp(new Date())
 | 
			
		||||
            .addField('Voici les différentes catégories de LanBot', `**${categoryList.join('\n')}**`)
 | 
			
		||||
            message.channel.send(embedCat);
 | 
			
		||||
    } else if(categoryList.includes(args[0])) {
 | 
			
		||||
        const embed = new MessageEmbed()
 | 
			
		||||
            .setColor('#0c76e7')
 | 
			
		||||
            .setDescription(`Voici la liste des commandes de cette catégorie.\nPour plus d'informations, \`${settings.prefix}help <Commande>\``)
 | 
			
		||||
            .setAuthor(args[0], client.user.displayAvatarURL())
 | 
			
		||||
            .setFooter(args[0], client.user.displayAvatarURL())
 | 
			
		||||
            .setTimestamp(new Date())
 | 
			
		||||
            .addField(`Pas assez de commande ? Envie d'en avoir plus ?`, `Fait la commande \`${settings.prefix}sugg\` pour faire ta suggestion au développeur :blush:`)
 | 
			
		||||
 | 
			
		||||
        const cmds = client.commands.filter(cmd => cmd.help.category=== args[0].toLowerCase()).array();
 | 
			
		||||
        cmds.forEach(cmd => {
 | 
			
		||||
            
 | 
			
		||||
            const aliases = (!cmd.help.aliases)? 'aucun':cmd.help.aliases.join(', ');
 | 
			
		||||
            embed.addField(`${settings.prefix}${cmd.help.name}`, `Description: ${cmd.help.description}\nAliase(s): ${aliases}\nUtilisation(s): ${settings.prefix}${cmd.help.usage.join('\n')}`);
 | 
			
		||||
            
 | 
			
		||||
        });
 | 
			
		||||
        
 | 
			
		||||
        message.channel.send(embed);
 | 
			
		||||
        
 | 
			
		||||
    } else {
 | 
			
		||||
        const command = client.commands.find(cmd => cmd.help.name === args[0]);
 | 
			
		||||
        if(!command) return message.channel.send('Commande ou Catégorie invalide !')
 | 
			
		||||
        const aliases = (!command.help.aliases)? 'aucun':command.help.aliases.join('\n');
 | 
			
		||||
 | 
			
		||||
        const embed = new MessageEmbed()
 | 
			
		||||
            .setColor('#0c76e7')
 | 
			
		||||
            .setAuthor(args[0], client.user.displayAvatarURL())
 | 
			
		||||
            .setFooter(args[0], client.user.displayAvatarURL())
 | 
			
		||||
            .setTimestamp(new Date())
 | 
			
		||||
            .addField(`${settings.prefix}${command.help.name}`, `Description: ${command.help.description}\nAliase(s): ${aliases}\nUtilisation(s): ${settings.prefix}${command.help.usage.join('\n')}`);
 | 
			
		||||
            
 | 
			
		||||
            message.channel.send(embed);
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
module.exports.help = MESSAGES.COMMANDS.UTILITAIRE.HELP;
 | 
			
		||||
							
								
								
									
										12
									
								
								commands/Utilitaire/ping.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								commands/Utilitaire/ping.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
const { MESSAGES } = require("../../util/constants");
 | 
			
		||||
 | 
			
		||||
module.exports.run = async (client, message, args) => {
 | 
			
		||||
    const msg = await message.channel.send("Pong ! ");
 | 
			
		||||
    msg.edit(
 | 
			
		||||
        `Pong !
 | 
			
		||||
        Latence du bot: ${msg.createdTimestamp - message.createdTimestamp}ms
 | 
			
		||||
        Latence de l'API: ${Math.round(client.ws.ping)}ms`
 | 
			
		||||
    )
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
module.exports.help = MESSAGES.COMMANDS.UTILITAIRE.PING;
 | 
			
		||||
							
								
								
									
										15
									
								
								commands/Utilitaire/yt.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								commands/Utilitaire/yt.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
			
		||||
const { MESSAGES } = require("../../util/constants");
 | 
			
		||||
const { DiscordTogether } = require('discord-together');
 | 
			
		||||
 | 
			
		||||
module.exports.run = (client, message, args, settings) => {
 | 
			
		||||
 | 
			
		||||
  client.discordTogether = new DiscordTogether(client);
 | 
			
		||||
 | 
			
		||||
      if(message.member.voice.channel) {
 | 
			
		||||
        client.discordTogether.createTogetherCode(message.member.voice.channel.id, 'youtube').then(async invite => {
 | 
			
		||||
          return message.channel.send(`${invite.code} \nRemarque : vous devez cliquer sur le LIEN BLEU, et non sur le bouton 'Play', afin de démarrer l'activité !`);
 | 
			
		||||
          });
 | 
			
		||||
      };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
module.exports.help = MESSAGES.COMMANDS.UTILITAIRE.YT;
 | 
			
		||||
		Reference in New Issue
	
	Block a user