const Discord = require("discord.js") const db = require('quick.db') module.exports = { name: "suggestion", aliases: ['suggest'], description: "Suggestion System", run: async (client, message, args) => { let command = args[0]; let first = args[1]; const prefix = 'f!' let egembed = new Discord.MessageEmbed() .setTitle('Suggestion System') .setURL('https://flamebot.gq') .setColor("RED") .setThumbnail('https://media.discordapp.net/attachments/821972674380038166/860134590274469908/suggestion-box-improve-business.png') .addField("Admin Commands", `${prefix}suggestion reply ${prefix}suggestion setchannel `) .addField("Member Commands", `${prefix}suggestion suggest `) .setFooter('Flame Bot') .setTimestamp() if (!command) return message.channel.send(egembed) if (command.toLowerCase() === 'suggest') { let suggest = args.slice(1).join(" "); if (!suggest) return message.channel.send(`${prefix}suggestion suggest `) if (suggest.length < 5) return message.channel.send(`Suggestion's Length must be more then 5`) let suggestionroom = db.get(`1suggest_${message.guild.id}_c`) if (!suggestionroom) return message.channel.send(`Suggestion room isn't available\nDm an admin to fix this.`) if (suggestionroom) { let check = message.guild.channels.cache.get(suggestionroom) if (!check) { db.delete(`1suggestion_${message.guild.id}_c`) return message.channel.send(`I can't local the [Suggestion room] please dm an admin to fix this..`) } if (check) { function generatePassword() { var length = 12, charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789", retVal = ""; for (var i = 0, n = charset.length; i < length; ++i) { retVal += charset.charAt(Math.floor(Math.random() * n)); } return retVal; } let suggestontoken = generatePassword(); let embed = new Discord.MessageEmbed() .setTitle('Suggestion!') .setAuthor(message.author.username, message.author.displayAvatarURL()) .setDescription('**Suggestion:** ' + suggest) .addField('STATUS:', 'Pending..') .setColor('YELLOW') .setFooter(`Suggestion Token: ${suggestontoken}`, message.guild.iconURL()) .setTimestamp() check.send(embed).then(m => { m.react('') m.react('') db.set(`1suggest_${suggestontoken}`, m.id) db.set(`1suggest_${suggestontoken}_msg`, suggest) db.set(`1suggest_${suggestontoken}_user`, message.author.id) message.channel.send(`Suggestion Added!`) }) } } } if (command.toLowerCase() === 'reply') { if (!message.member.hasPermission('MANAGE_MESSAGES')) return message.channel.send(`**You missing required permisison __ADMINISTRATOR__**`) let reply = args.slice(2).join(" "); if (!first) return message.channel.send(`${prefix}suggestion reply `) let messageid = db.get(`1suggest_${first}`) if (!messageid) return message.channel.send(`That's not vaild token.`) if (!reply) return message.channel.send(`${prefix}suggestion reply ${first} `) let channel = db.get(`1suggest_${message.guild.id}_c`) let msg = db.get(`1suggest_${first}_msg`) if (!channel) return message.channel.send(`${prefix}suggestion reply ${first} `) if (!msg) return message.channel.send(`${prefix}suggestion reply ${first} `) let checking = message.guild.channels.cache.get(channel) if (!checking) return message.channel.send(`I can't find suggestion room please set a new one...`) if (checking) { let user = db.get(`1suggest_${first}_user`) let ededembed = new Discord.MessageEmbed() .setAuthor(client.users.cache.get(user).username, client.users.cache.get(user).displayAvatarURL()) .setDescription('**Suggestion:** ' + msg) .addField('STATUS:', 'Replied!') .addField(`Reply By ${message.author.username} | ${message.author.id} `, reply) .setColor('GREEN') .setFooter(`Suggestion Token: ${first}`, message.guild.iconURL()) .setTimestamp() checking.messages.fetch(messageid).then(editm => { editm.edit(ededembed) let replyembed = new Discord.MessageEmbed() .setAuthor(client.users.cache.get(user).username, client.users.cache.get(user).displayAvatarURL()) .setDescription('**Suggestion:** ' + msg) .setColor("GREEN") .addField("**Status:** Replied", reply) .setFooter('Flame Bot') .setTimestamp() client.users.cache.get(user).send(replyembed) message.channel.send(`Replied!`) }) } } if (command.toLowerCase() === 'setchannel') { if (!message.member.hasPermission('ADMINISTRATOR')) return message.channel.send(`**You missing required permisison __ADMINISTRATOR__**`) let channel = message.mentions.channels.first() if (!channel) return message.channel.send(`You must mention an vaild channel to set it as suggestion channel`) if (channel) { channel.send(`Suggestion Room ${message.guild.name}\nTo sumbit suggestion ${prefix}suggestion suggest `) db.set(`1suggest_${message.guild.id}_c`, channel.id) } } } }