const Discord = require("discord.js"); const Users = require("../../schema/users"); module.exports = { name: "delwarn", description: "delete a user warning", category: "moderation", run: async (client, message, args) => { const member = message.mentions.members.first(); if(!member) return message.reply({ embeds: [ new Discord.MessageEmbed() .setTitle("Invalid Usage!") .setDescription("You are required to mention the user you wanna delete their warning!") .setColor("RED") ] }) const user = await Users.findOne({ id: member.user.id }); args.shift(); const warnId = String(args[0]); let warnIndex = 0; user.warnings.forEach((warning, index) => { if(warning.warnID === warnId) { warnIndex += index; } }) console.log(warnIndex) if(!warnIndex) return message.reply({ embeds: [ new Discord.MessageEmbed() .setTitle("Invalid warnID") .setDescription("The warn Id you provided cannot be found in the DataBase!") .setColor("RED") ] }) const warningObject = user.warnings[warnIndex]; user.warnings.slice(warnIndex, 1); await Users.updateOne({ id: member.user.id }, { warnings: user.warnings }); const oldMod = client.users.cache.get(warningObject.mod); const oldReason = warningObject.reason; const newReason = args.join(" ") || "No reason provided."; message.reply({ embeds: [ new Discord.MessageEmbed() .setTitle(`${member.user.tag} warning has been deleted!`) .setColor("RED") ] }) member.send({ embeds: [ new Discord.MessageEmbed() .setAuthor({ name: message.author.tag, iconURL: message.author.displayAvatarURL() }) .setDescription(`Your warning from ${message.guild.name} has been deleted!`) .addFields( { name: `Case`, value: warningObject.warnId }, { name: `Moderator`, value: message.author.tag }, { name: `Reason`, value: newReason }, { name: `Old reason`, value: oldReason } ) .setTimestamp() .setColor("RED") ]}).catch(e => { console.log(e); }) } }