const Discord = require("discord.js") const Canvas = require('canvas'); module.exports = { name: "profile", category: "Information", run: async (bot, message, args) => { function textFuckOff(text,n){ return text.slice(0,n)+'...'} let member = message.mentions.members.first() || message.guild.members.cache.find(m => m.user.username === args.join(' ')) || message.member; let user = member.user; let name = member.nickname || user.username; let icon = user.displayAvatarURL({ format: 'png', size: 512}) let userStatus = user.presence.status.charAt(0).toUpperCase() + user.presence.status.slice(1) let customStatus = user.presence.activities.find(a => a.type === "CUSTOM_STATUS"); customStatus ? customStatus = customStatus.state : customStatus = "None"; // let Bubblegum = new Font('Bubblegum', fontFile('Bubblegum.ttf')); const canvas = Canvas.createCanvas(750, 200); const ctx = canvas.getContext('2d'); //ctx.registerFont(Bubblegum) ctx.fillStyle = '#232829' ctx.fillRect(0, 0, 750, 200) ctx.textAlign = 'left' ctx.font = "50px Helvetica" ctx.fillStyle = "white" ctx.fillText(name, 10, 65) ctx.font = "25px Helvetica" ctx.fillText(`Custom Status:`, 10, 120) ctx.strokeStyle = 'White' ctx.lineWidth = 3 ctx.beginPath(); ctx.arc(640, 100, 85, 0, Math.PI * 2); ctx.stroke() ctx.closePath(); ctx.clip(); let Image = await Canvas.loadImage(icon) ctx.drawImage(Image, 555, 15, 175, 175) const status = { online: "https://cdn.discordapp.com/emojis/709285149929635961.png?v=1", dnd: "https://cdn.discordapp.com/emojis/709286381347667978.png?v=1", idle: "https://cdn.discordapp.com/emojis/709287172745724015.png?v=1", offline: "https://cdn.discordapp.com/emojis/709287117984890980.png?v=1" } function getStatusImage(status1){ return status[status1] } let statusimage = await Canvas.loadImage(getStatusImage(user.presence.status)) ctx.drawImage(statusimage, 10, 70, 25, 25) let statusReplace = userStatus.toString(); statusReplace = userStatus.replace("Dnd", "Do Not Disturb"); ctx.font = "25px Helvetica" ctx.fillText(statusReplace, 40, 93) let fuckOff = textFuckOff(customStatus, 20) ctx.fillText(fuckOff, 210, 120) const attachment = canvas.toBuffer() let embed = new Discord.MessageEmbed() .setColor("#2f3136") .attachFiles([new Discord.MessageAttachment(attachment, `profile_card_${name}.gif`)]) .setImage(`attachment://profile_card_${name}.gif`); message.channel.send(embed) } }