const { Command } = require("cdcommands"); const { MessageEmbed } = require("discord.js"); const warnSchema = require("@schemas/warn-schema"); const mongo = require("@utils/mongo"); module.exports = new Command({ name: "list-warnings", aliases: ["lw", "listwarns"], description: "Lists all warnings of a user", details: "/", userPermissions: ["VIEW_AUDIT_LOG"], category: "Moderation", usage: "{prefix}list-warnings <@user / userID>", run: async ({message, args, client}) => { let member = message.mentions.members.first() || await message.guild.members.fetch(args[0]) if(!member) return message.reply('Please specify a member!') const guildID = message.guild.id const userID = member.user.id await mongo().then(async (mongoose) => { try { const results = await warnSchema.findOne({ guildID, userID, }).catch(e => { message.reply('The mentioned user has no warnings!') }) let reply; for (const warning of results.warnings) { const { author, timestamp, reason } = warning reply += `By **${author}** on **${new Date(timestamp).toLocaleDateString()}** for **${reason}**\n\n` } const embed = new MessageEmbed() .setTitle(`Warnings for **${member.user.tag}** (${member.user.id})`) .setDescription(reply) .setTimestamp() .setAuthor(client.user.tag, client.user.displayAvatarURL()) message.channel.send(embed) } finally { mongoose.connection.close() } }) } })