diff --git a/commands/filter.js b/commands/filter.js new file mode 100644 index 0000000..d37e53a --- /dev/null +++ b/commands/filter.js @@ -0,0 +1,41 @@ +const emotes = require ("../config/emojis.json"); +const filters = require("../config/filters.json"); +const Discord = require("discord.js") + +module.exports.run = async (client, message, args) => { + + if(!message.member.voice.channel) return message.channel.send(`**You're not in a voice channel ${emotes.error}**`); + + if(!client.player.isPlaying(message.guild.id)) return message.channel.send(`**No music playing on this server ${emotes.error}**`); + + const filter = args[0]; + if(!filter) return message.channel.send(`**Please specify a valid filter to enable or disable ${emotes.error}**`); + + const filterToUpdate = Object.values(filters).find((f) => f.toLowerCase() === filter.toLowerCase()); + if(!filterToUpdate) return message.channel.send(`**This filter doesn't exist ${emotes.error}**`); + + const filterRealName = Object.keys(filters).find((f) => filters[f] === filterToUpdate); + + const queueFilters = client.player.getQueue(message.guild.id).filters + const filtersUpdated = {}; + filtersUpdated[filterRealName] = queueFilters[filterRealName] ? false : true; + client.player.setFilters(message.guild.id, filtersUpdated); + + if(filtersUpdated[filterRealName]){ + const pleaseWait = new Discord.MessageEmbed() + .setDescription("I'm adding the filter to the music, please wait... Note : the longer the music is, the longer the wait will be :musical_note:") + .setColor("BLUE"); + message.channel.send(pleaseWait); + } else { + const pleaseWait = new Discord.MessageEmbed() + .setDescription(`I'm disabling the filter on the music, please wait... Note : the longer the music is playing, the longer the wait will be... :musical_note:`) + .setColor("BLUE"); + message.channel.send(pleaseWait); + } + +} + +module.exports.config = { + name: "filter", + aliases: [] +}; \ No newline at end of file diff --git a/commands/w-filters.js b/commands/w-filters.js new file mode 100644 index 0000000..75e585d --- /dev/null +++ b/commands/w-filters.js @@ -0,0 +1,35 @@ +const emotes = require("../config/emojis.json"); +const filters = require("../config/filters.json"); +const Discord = require("discord.js"); + +module.exports.run = async (client, message) => { + + if (!message.member.voice.channel) return message.channel.send(`**You're not in a voice channel ${emotes.error}**`); + + if (!client.player.isPlaying(message.guild.id)) return message.channel.send(`**No music playing on this server ${emotes.error}**`); + + const enabledEmoji = emotes.success; + const disabledEmoji = emotes.error; + + const filtersStatuses = [ [], [] ]; + + Object.keys(filters).forEach((filterName) => { + const array = filtersStatuses[0].length > filtersStatuses[1].length ? filtersStatuses[1] : filtersStatuses[0]; + array.push(filters[filterName] + " : " + (client.player.getQueue(message.guild.id).filters[filterName] ? enabledEmoji : disabledEmoji)); + }); + + const list = new Discord.MessageEmbed() + .setDescription("Liste de tous les filtres activés ou non.\nPour ajouter un filtre sur une musique `^filter`.") + .addField("**Filtres**", filtersStatuses[0].join('\n'), true) + .addField("** **", filtersStatuses[1].join('\n'), true) + .addField("** **", `Attention, sur la commande \`^filter\`.\nLe nom du filtre doit être en minuscule.`) + .setColor("ORANGE"); + + message.channel.send(list); + +}; + +module.exports.config = { + name: "w-filters", + aliases: [] +}; \ No newline at end of file