const sharp = require('sharp');
const fetch = require('node-fetch');
const { GuildMember } = require('discord.js');
function formatMessage(member, welcomemessage) {
return new Promise((resolve, reject) => {
let text = `Welcome to ${member.guild.name} ${member.user.tag}!`;
if (welcomemessage != null) {
text = welcomemessage;
text = text.replace('{sn}', member.guild.name);
text = text.replace('{un}', member.user.username);
text = text.replace('{ut}', member.user.discriminator);
}
resolve(text);
});
}
/**
* @param {GuildMember} member
* @param {*} welcomeChannel
*/
async function welcome(member, welcomeChannel, welcomemessage, welcomebanner, welcomeTextCol) {
formatMessage(member, welcomemessage).then(async (wmsg) => {
const width = 1024;
const height = 500;
const usernameText = `${wmsg}`;
const memberCountText = `You are member ${member.guild.memberCount}`;
const username = `
`;
const memberCount = `
`;
const r = 100;
const circleShape = Buffer.from(``);
var response, arrayBuffer;
const usernameBuffer = Buffer.from(username);
const memberCountBuffer = Buffer.from(memberCount);
response = await fetch(member.displayAvatarURL());
arrayBuffer = await response.arrayBuffer();
const iconBuffer = Buffer.from(arrayBuffer);
var bkBuffer;
if (!welcomebanner) {
response = await fetch('https://wallpapercave.com/wp/wp3258574.png');
arrayBuffer = await response.arrayBuffer();
bkBuffer = Buffer.from(arrayBuffer);
} else {
// return console.log(welcomebanner);
bkBuffer = Buffer.from(welcomebanner, 'base64');
}
sharp(iconBuffer)
.resize(300, 300)
.composite([{
input: circleShape,
blend: 'dest-in'
}])
.toBuffer().then((iconBufferNew) => {
sharp(bkBuffer)
.resize(1024, 500)
.composite([
{
input: usernameBuffer,
top: 80,
left: -10,
},
{
input: memberCountBuffer,
top: 130,
left: -10,
},
{
input: iconBufferNew,
top: 10,
left: 1024/2 - 300/2,
},
]).toBuffer((err, buffer) => {
if (err) { return console.error(err); }
// return console.log(buffer.byteLength * 0.000001);
welcomeChannel.send({
files: [buffer],
});
});
});
});
}
module.exports = { welcome }