Advertisement
toowake

memberUpdate.js

May 8th, 2024
783
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const { EmbedBuilder, Events } = require('discord.js');
  2. const theme = require('../../../embedConfig.json');
  3. const Audit_Log = require('../../Schemas.js/auditlog');
  4. const { perm } = require('../../../functions');
  5.  
  6. module.exports = async (client) => {
  7.     client.on(Events.GuildMemberUpdate, async (oldMember, newMember) => {
  8.         if (!perm(oldMember)) return;
  9.  
  10.         const auditEmbed = new EmbedBuilder()
  11.             .setColor(theme.theme)
  12.             .setTimestamp()
  13.             .setFooter({ text: 'Nexus Audit Log System' });
  14.  
  15.         const data = await Audit_Log.findOne({ Guild: oldMember.guild.id }).catch(console.error);
  16.         if (!data || !data.Channel) return; // Ensure there is a channel ID
  17.  
  18.         const auditChannel = client.channels.cache.get(data.Channel);
  19.         if (!auditChannel) return; // Ensure the channel exists
  20.  
  21.         const changes = [];
  22.  
  23.         if (oldMember.nickname !== newMember.nickname) {
  24.             changes.push(`Nickname: \`${oldMember.nickname || 'None'}\` → \`${newMember.nickname || 'None'}\``);
  25.         }
  26.  
  27.         if (!oldMember.roles.cache.equals(newMember.roles.cache)) {
  28.             const oldRoles = oldMember.roles.cache.map(role => role.name).join(', ');
  29.             const newRoles = newMember.roles.cache.map(role => role.name).join(', ');
  30.             changes.push(`Roles: \`${oldRoles}\` → \`${newRoles}\``);
  31.         }
  32.  
  33.         if (changes.length === 0) return; // If no changes, exit
  34.  
  35.         auditEmbed
  36.             .setTitle('Member Updated')
  37.             .addFields({ name: 'Changes:', value: changes.join('\n') });
  38.  
  39.         await auditChannel.send({ embeds: [auditEmbed] }).catch(err => {
  40.             console.error('Failed to send audit log message:', err);
  41.         });
  42.     });
  43. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement