const Command = require("../../base/Command.js"), Discord = require("discord.js"); class Report extends Command { constructor(client) { super(client, { name: "report", dirname: __dirname, enabled: true, guildOnly: true, aliases: [], memberPermissions: [], botPermissions: ["SEND_MESSAGES", "EMBED_LINKS"], nsfw: false, ownerOnly: false, cooldown: 2000 }); } async run(message, args, data) { const repChannel = message.guild.channels.cache.get(data.guild.plugins.reports); if (!repChannel) return message.error("general/report:MISSING_CHANNEL"); const member = await this.client.resolveMember(args[0], message.guild); if (!member) return message.error("general/report:MISSING_USER"); if (member.id === message.author.id) return message.error("general/report:INVALID_USER"); const rep = args.slice(1).join(" "); if (!rep) return message.error("general/report:MISSING_REASON"); const embed = new Discord.MessageEmbed() .setAuthor({ name: message.translate("general/report:TITLE", { user: member.user.tag }), iconURL: message.author.displayAvatarURL({ size: 512, dynamic: true, format: "png" })}) .addField(message.translate("common:AUTHOR"), message.author.tag, true) .addField(message.translate("common:DATE"), message.printDate(new Date(Date.now())), true) .addField(message.translate("common:REASON"), rep, true) .addField(message.translate("common:USER"), `\`${member.user.tag}\` (${member.user.toString()})`, true) .setColor(data.config.embed.color) .setFooter({ text: data.config.embed.footer }); const success = Discord.Util.parseEmoji(this.client.customEmojis.success).id; const error = Discord.Util.parseEmoji(this.client.customEmojis.error).id; repChannel.send({ embeds: [embed] }).then(async (m) => { await m.react(success); await m.react(error); }); message.success("general/report:SUCCESS", { channel: repChannel.toString() }); } }; module.exports = Report;