Here is the advanced discord welcomer , credit to : CTK WARRIOR for the welcomer image
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');
let guild_id = process.env.serverid
if (context.params.event.guild_id.match(guild_id)){
}else{
return;
}
/* Load the font */
Canvas.registerFont(require('@canvas-fonts/arial-bold'), {
family: 'Arial Bold',
});
const welcome_text = [
`we hope you brought pizza`,
`is here`,
`say hi!`,
`just slid into the server`,
`hopped into the server`,
`just landed`,
`joined the party`, // you can add it the welcome text
];
const rules = [
`don't send bad word`,
`don't spam`,
`don't be evil`, // you can add it the rules
];
let random_text = Math.floor(Math.random() * welcome_text.length);
let text = welcome_text[random_text];
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);
let servername = process.env.servername;
await lib.discord.channels['@0.2.0'].messages.create({
content: `Welcome <@${user.id}>,${text}`,
channel_id: process.env.channelid ,
file: await canvas.toBuffer(),
filename: 'welcome.png',
});
await lib.discord.users['@0.2.1'].dms.create({
recipient_id: `${context.params.event.user.id}`,
content:
`${text} to ` +
servername +
`
here the rules : ${rules}`,
});