require("dotenv").config(); const fetch = require("node-fetch"); const Discord = require("discord.js"); module.exports = { name: "userUpdate", async execute (oldUser, newUser) { //get guild by id const guild = newUser.client.guilds.cache.get(process.env.GUILD_ID); if (oldUser.username !== newUser.username) { console.log(`${oldUser.username} changed their username to ${newUser.username}`); } if (oldUser.avatar !== newUser.avatar) { console.log(`${oldUser.username} changed their avatar to ${newUser.avatar}`); } //check if new user banner is different from old user banner if (newUser.banner !== oldUser.banner) { console.log(`${oldUser.username} changed their banner`); await newUser.fetch(); let newUserBanner = newUser.bannerURL(); //log user and new banner url console.log(`${newUser.username} has a new banner: ${newUserBanner}`); } //if new avatar is null, console log and return if (newUser.avatar === null) { console.log(`${newUser.username} has no avatar`); return; } //send the new avatar to a channel named "bot-testing" const channel = guild.channels.cache.find(channel => channel.name === "bot-testing"); if (!channel) return; let avatarUrl = newUser.avatarURL({dynamic : true, size: 1024}); //download avatarUrl into a buffer const buffer = await (await fetch(avatarUrl)).buffer(); //upload buffer to discord const attachment = new Discord.MessageAttachment(buffer, "avatar.png"); //send attachment to a channel called "bot-uploads" and save the attachment url to a variable const upload = await channel.send({ files: [attachment] }); console.log(newUser); const embed = new Discord.MessageEmbed() .setTitle("User Updated") .setDescription(`avatar debug asfkdljnsaedlikfnwe;ljkfn`) .setImage(upload.attachments.first().url) .setColor("#FFFFFF"); channel.send({embeds: [embed]}); } }