Im using discord.js v14 and i am trying to send a message with a canvas. The message its sended but not the canvas. Why?
const welcomeCanvas = {};
welcomeCanvas.create = Canvas.createCanvas(1024, 500);
welcomeCanvas.context = welcomeCanvas.create.getContext('2d');
welcomeCanvas.context.font = '72px sans-serif';
welcomeCanvas.context.fillStyle = '#ffffff';
Canvas.loadImage("./img/bn2.jpg").then(async (img) => {
welcomeCanvas.context.drawImage(img, 0, 0, 1024, 500);
welcomeCanvas.context.fillText("welcome", 360, 360);
welcomeCanvas.context.beginPath();
welcomeCanvas.context.arc(512, 166, 128, 0, Math.PI * 2, true);
welcomeCanvas.context.stroke();
welcomeCanvas.context.fill();
console.log("Canvas cargado con éxito.");
}).catch(error => {
console.error("Error al cargar la imagen:", error);
});
Client.on('guildMemberAdd', async member => {
const welcomechannel = member.guild.channels.cache.get('1219469975249485945');
let canvas = welcomeCanvas;
canvas.context.font = '42px sans-serif';
canvas.context.textAlign = 'center';
canvas.context.fillText(member.user.tag.toUpperCase(), 512, 410);
canvas.context.font = '32px sans-serif';
canvas.context.fillText(`Eres el miembro número ${member.guild.memberCount}`, 512, 455);
canvas.context.beginPath();
canvas.context.arc(512, 166, 119, 0, Math.PI * 2, true);
canvas.context.closePath();
canvas.context.clip();
await Canvas.loadImage(member.user.displayAvatarURL({ format: 'png', size: 1024 }))
.then(img => {
canvas.context.drawImage(img, 393, 47, 238, 238);
console.log("Imagen de usuario cargada con éxito.");
}).catch(error => {
console.error("Error al cargar la imagen de usuario:", error);
});
let atta = new AttachmentBuilder(canvas.create.toBuffer(), { name: `welcome-${member.id}.png` });
try {
welcomechannel.send(`:wave: Bienvenido ${member} a ${member.guild.name}!`, atta);
console.log("Mensaje y archivo adjunto enviados con éxito.");
} catch (error) {
console.error(error);
}
});
enter image description here enter image description here
i tried a lot of things but any worked