const Discord = require("discord.js") const db = require("quick.db") module.exports.run = async(bot, message, args) =>{ let channelid = await bot.rolemenu.fetch(`Rolemenu : ${message.guild.id}`, {target: '.channel'}) let channelmention = message.guild.channels.cache.get(channelid) // let channeloui = `<#${channelmention.id}>` const embedbase = new Discord.MessageEmbed() embedbase.setTitle(`Rolemenu`) embedbase.addFields( {name: '**Salon**', value: channelmention? channelmention:'None', inline: true}, {name: '**Message**', value: 'None', inline: true}, {name: '**Rôle**', value: 'None', inline: true}, {name: '**Reaction**', value: 'None', inline: true}) let embedchargement = new Discord.MessageEmbed() .setTitle(`${bot.emoji.loading} Chargement...`); let msgg = await message.channel.send(embedbase) let msg = await message.channel.send(embedchargement) const embed = new Discord.MessageEmbed() embed.setTitle("Menu création d'autorole !") embed.setTimestamp() embed.setColor("BLACK") embed.setFooter(bot.footer1) embed.addFields( { name: '`🏷️`', value: '・Changer le salon', inline: true }, { name: '`⤴️`', value: '・Utiliser le dernier message du salon', inline: true }, //message.channel.lastMessageID { name: '`🆔`', value: '・Choisir l\'ID d\'un message', inline: true }, { name: '`🎭`', value: '・Choisir le role', inline: true }, { name: '`❌`', value: '・Permet d\'annuler l\'embed', inline: true }, { name: '`✅`', value: '・Permet d\'envoyer l\'embed avec le bot', inline: true }, ) await msg.react('🏷️') await msg.react('⤴️') await msg.react('🆔') await msg.react('🎭') await msg.react('❌') await msg.react('✅').then(async (m) => { msg.edit(" ", embed) let collector = msg.createReactionCollector((reaction, user) => user.id === message.author.id); collector.on("collect", async (reaction, user) => { if (reaction._emoji.name === "🏷️") { let question = await message.channel.send("Veuillez envoyé le salon du message") const filter = m => message.author.id === m.author.id; message.channel.awaitMessages(filter, { max: 1, time: 60000, errors: ['time'] }).then(async (collected) => { collected.first().delete() question.delete() let channelrole = message.guild.channels.cache.find((r) => r.name == collected.first().content) || message.guild.channels.cache.find((r) => r.id == collected.first().content) || collected.first().mentions.channels.first() if(!channelrole) return message.reply(`${bot.emoji.error} Channel Invalid`) await bot.rolemenu.set(`Rolemenu : ${message.guild.id}`, {channel: channelrole.id}) embedbase.fields.find(m => m.name === "**Salon**").value = '<#'+channelrole.id+'>' msgg.edit(embedbase) }).catch(async (err) => { console.log(err) collected.first().delete() message.channel.send("Je n'ai pas pu modifier le salon").then((mm) => mm.delete({ timeout: 5000 })); }) } if (reaction._emoji.name === "⤴️") { let question = await message.channel.send("Veuillez entrer `oui` pour activer le dernier message du salon") const filter = m => message.author.id === m.author.id; message.channel.awaitMessages(filter, { max: 1, time: 60000, errors: ['time'] }).then(async (collected) => { if(collected.first().content !== "oui") return; collected.first().delete() question.delete() let messageoui = await bot.rolemenu.fetch(`Rolemenu : ${message.guild.id}`, {target: '.channel'}) let channeloui1 = message.guild.channels.cache.get(messageoui) await bot.rolemenu.set(`Rolemenu : ${message.guild.id}`, {message: channeloui1.lastMessageID}) embedbase.fields.find(m => m.name === "**Message**").value = 'Dernier message du Salon' msgg.edit(embedbase) }).catch(async (err) => { console.log(err) collected.first().delete() message.channel.send("Je n'ai pas pu activé le dernier message du salon ").then((mm) => mm.delete({ timeout: 5000 })); }) } if (reaction._emoji.name === "🆔") { let question = await message.channel.send("Veuillez entrer l'ID du message") const filter = m => message.author.id === m.author.id; message.channel.awaitMessages(filter, { max: 1, time: 60000, errors: ['time'] }).then(async (collected) => { collected.first().delete() question.delete() let messageoui = await bot.rolemenu.fetch(`Rolemenu : ${message.guild.id}`, {target: '.channel'}) let channeloui = message.guild.channels.cache.get(messageoui) let messagerole = await channeloui.fetch(message.id === collected.first().content) if(!messagerole){ let mes = await message.channel.send("Invalid ID") mes.delete({timeout: 2000}) } await bot.rolemenu.set(`Rolemenu : ${message.guild.id}`, {message: messagerole.id}) embedbase.fields.find(m => m.name === "**Message**").value = `${collected.first().content}` msgg.edit(embedbase) }).catch(async (err) => { console.log(err) collected.first().delete() message.channel.send("Je n'ai pas pu modifier le message").then((mm) => mm.delete({ timeout: 5000 })); }) } if (reaction._emoji.name === "🎭") { let question = await message.channel.send("Veuillez envoyé le role donné") const filter = m => message.author.id === m.author.id; message.channel.awaitMessages(filter, { max: 1, time: 60000, errors: ['time'] }).then(async (collected) => { collected.first().delete() question.delete() let rolerole = message.guild.roles.cache.find((r) => r.name == collected.first().content) || message.guild.roles.cache.find((r) => r.id == collected.first().content) || collected.first().mentions.roles.first() if(!rolerole) return message.reply(`${bot.emoji.error} Role Invalid`) await bot.rolemenu.set(`Rolemenu : ${message.guild.id}`, {role: rolerole.id}) embedbase.fields.find(m => m.name === "**Rôle**").value = '<@&'+rolerole.id+'>' msgg.edit(embedbase) let question1 = await message.channel.send("Veuillez envoyé l'id de la reaction du role") const filter = m => message.author.id === m.author.id; message.channel.awaitMessages(filter, { max: 1, time: 60000, errors: ['time'] }).then(async (collected) => { collected.first().delete() question1.delete() let emojiid = collected.first().content let emojirole = message.guild.emojis.cache.get(emojiid) if(!emojirole) return message.channel.send("Emoji incorect, l'émoji doit être dans le serveur ") await bot.rolemenu.set(`Rolemenu : ${message.guild.id}`, {reaction: emojirole.id}) embedbase.fields.find(m => m.name === "**Reaction**").value = emojirole msgg.edit(embedbase) }) }).catch(async (err) => { console.log(err) collected.first().delete() message.channel.send("Je n'ai pas pu modifier le role ou la reaction").then((mm) => mm.delete({ timeout: 5000 })); }) } if (reaction._emoji.name === "✅") { let question = await message.channel.send("Envoyé `oui` pour appliqué l'autorole") const filter = m => message.author.id === m.author.id; message.channel.awaitMessages(filter, { max: 1, time: 60000, errors: ['time'] }).then(async (collected) => { collected.first().delete() question.delete() if(collected.first().content !== "oui") return; let emojiid = await bot.rolemenu.fetch(`Rolemenu : ${message.guild.id}`, {target: '.reaction'}) let emojirole = message.guild.emojis.cache.get(emojiid) let channelid = await bot.rolemenu.fetch(`Rolemenu : ${message.guild.id}`, {target: '.channel'}) let messageid = await bot.rolemenu.fetch(`Rolemenu : ${message.guild.id}`, {target: '.message'}) let channeloui = message.guild.channels.cache.get(channelid) let messagerole = await channeloui.fetch(message.id === messageid).then( messagerole.react(emojirole) ) }).catch(async (err) => { console.log(err) message.channel.send("Je n'ai pas pu appliqué l'autorole").then((mm) => mm.delete({ timeout: 5000 })); }) } if (reaction._emoji.name === "❌") { bot.rolemenu.delete(`Rolemenu : ${message.guild.id}`) msg.delete() msgg.delete() } await reaction.users.remove(message.author.id); }) }); } module.exports.admin = { name: "rolemenu" }