Discord.js v14 canvas not full sended

16 Views Asked by At

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

0

There are 0 best solutions below