1

私は Discord ボットを作成していますが、特定のイベントで写真を送信したいと考えています (それは無関係です)。私は奇妙な問題に直面しています: Canvas.createCanvas(x,y) を使用しようとすると、Node プロジェクトはログにエラーなしで終了します (バッチで使用しているため、再起動して「準備完了」行を出力するだけです)。createCanvas の実行に失敗するだけなので、ここではコードは関係ないと思います。

テキストを含む各行に console.log('line N') を追加しようとしましたが、私のテストでは 2 行目にしか表示されません。そのため、3 行目 (createCanvas) は処理されません。

client.on('guildMemberAdd', async member => { //canvas IS defined earlier 
const channel = 'channel id';
if (!channel) return;

const canvas = createCanvas(600, 600); 
const ctx = canvas.getContext('2d');

const background = await loadImage('./images/welcome.png');
ctx.drawImage(background, 0, 0, canvas.width, canvas.height);

ctx.strokeStyle = '#676767';
ctx.strokeRect(0, 0, canvas.width, canvas.height);

ctx.beginPath();
ctx.arc(125, 125, 100, 0, Math.PI * 2, true);
ctx.closePath();
ctx.clip();

const { body: buffer } = await snekfetch.get(member.user.displayAvatarURL);
const avatar = await loadImage(buffer);
ctx.drawImage(avatar, 25, 25, 200, 200);

const attachment = new Discord.Attachment(canvas.toBuffer(), 'welcome-image.png');

channel.send(attachment);
});

実際にキャンバスを作成して操作を行うことを期待していますが、代わりにボットを再起動するだけです。ここで何か助けはありますか?

4

0 に答える 0