42 lines
1.5 KiB
JavaScript
42 lines
1.5 KiB
JavaScript
import {data} from "../wwwroot/core/appData.js";
|
|
import {launchWorker} from "../wwwroot/core/namecards/workerLauncher.js";
|
|
import {AttachmentBuilder} from "discord.js";
|
|
import {Logger} from "../wwwroot/core/logging/logger.js";
|
|
|
|
data.client.on('clientReady', async () => {
|
|
console.log("Ready!");
|
|
|
|
const guild = await data.client.guilds.fetch(data.testGuildID);
|
|
const member = await guild.members.fetch(data.testUserID);
|
|
|
|
console.log("Emitting fake guildMemberAdd...");
|
|
data.client.emit("guildMemberAdd", member);
|
|
});
|
|
|
|
data.client.on('guildMemberAdd', async (member) => {
|
|
try {
|
|
const avatarUrl = member.user.displayAvatarURL({ extension: 'png', size: 512 });
|
|
const username = member.displayName || member.user.username;
|
|
|
|
const result = await launchWorker({
|
|
templatePath: data.nameCardTemplate,
|
|
avatarURL: avatarUrl,
|
|
username: username,
|
|
});
|
|
|
|
const attachment = new AttachmentBuilder(Buffer.from(result.result), { name: 'namecard.png' });
|
|
/*const attachment = new AttachmentBuilder(
|
|
Buffer.isBuffer(result.result) ? result.result : Buffer.from(result.result),
|
|
{ name: 'namecard.png' }
|
|
);*/
|
|
|
|
const channel = await member.guild.channels.fetch(data.welcomeChannelID);
|
|
await channel.send({ files: [attachment] });
|
|
|
|
} catch (err) {
|
|
await Logger.error('Failed to generate/send name card:', err);
|
|
}
|
|
});
|
|
|
|
await data.client.login(process.env.DISCORD_TOKEN);
|