Sends a beautiful canvas image with the author's name and avatar.
const channel_id = '892816917419667468'; /*THE ID OF WELCOME CHANNEL*/
const lib = require('lib')({token: process.env.STDLIB_SECRET_TOKEN});
const Canvas = require('canvas');
const jimp = require('jimp');
/* Load the font */
Canvas.registerFont(require('@canvas-fonts/arial-bold'), {
family: 'Arial Bold',
});
const user = context.params.event.user;
const canvas = Canvas.createCanvas(700, 250);
const ctx = canvas.getContext('2d');
let background = await jimp.read(
'https://t4.ftcdn.net/jpg/04/04/73/39/360_F_404733910_2mIXr6RbC5G3WZJFjopVsBaR3EOM6Bqy.jpg' // BACKGROUND IMAGE
);
let layer = await Canvas.loadImage(
'https://media.discordapp.net/attachments/735118044145123348/735477847526998077/20200722_181613.png' // OVERLAY IMAGE
);
background.blur(5);
background = await background.getBufferAsync('image/png');
const fixedbkg = await Canvas.loadImage(background);
ctx.drawImage(fixedbkg, 0, 0, canvas.width, canvas.height);
ctx.strokeRect(0, 0, canvas.width, canvas.height);
ctx.drawImage(layer, 0, 0, canvas.width, canvas.height);
let name = user.username;
name = name.length > 12 ? name.substring(0, 12).trim() + '...' : name;
ctx.font = `bold 36px Arial Bold`;
ctx.fillStyle = '#FFFFFF';
ctx.textAlign = 'start';
ctx.strokeStyle = '#f5f5f5';
ctx.fillText(`${name}`, 278, 113);
ctx.strokeText(`${name}`, 278, 113);
ctx.font = `bold 25px Arial Bold`;
ctx.fillStyle = '#FFFFFF';
ctx.fillText(`#${user.discriminator}`, 278, 162.5);
let avatar = await jimp.read(
`https://cdn.discordapp.com/avatars/${user.id}/${user.avatar}.jpg`
);
avatar.resize(1024, 1024);
avatar.circle();
avatar = await avatar.getBufferAsync('image/png');
avatar = await Canvas.loadImage(avatar);
ctx.drawImage(avatar, 72, 48, 150, 150);
await lib.discord.channels['@0.2.0'].messages.create({
content: `Welcome <@${user.id}>, Hope you will enjoy being here.`,
channel_id,
file: await canvas.toBuffer(),
filename: 'welcome.png',
});