import { getCommandMentionByName } from "./../utils/getCommandDataByName.js"; import convertCurlyBracketString from "../utils/convertCurlyBracketString.js"; import client from "../utils/client.js"; import EmojiEmbed from "../utils/generateEmojiEmbed.js"; import { GuildChannel, GuildMember, BaseGuildTextChannel } from "discord.js"; import singleNotify from "../utils/singleNotify.js"; export async function callback(member: GuildMember) { if (member.user.bot) return; const config = await client.database.guilds.read(member.guild.id); if (!config.welcome.enabled) return; if (config.welcome.channel) { let string = config.welcome.message; if (string) { string = await convertCurlyBracketString( string, member.id, member.displayName, member.guild.name, member.guild.members ); if (config.welcome.channel === "dm") { await member.send({ embeds: [new EmojiEmbed().setDescription(string).setStatus("Success")] }); } else { const channel: GuildChannel | null = (await member.guild.channels.fetch( config.welcome.channel )) as GuildChannel | null; if (!channel) return await singleNotify( "welcomeChannelDeleted", member.guild.id, `The welcome channel has been deleted or is no longer accessible. Use ${getCommandMentionByName( "settings/welcome" )} to set a new one`, "Warning" ); if (!(channel instanceof BaseGuildTextChannel)) return; if (channel.guild.id !== member.guild.id) return; try { await channel.send({ embeds: [new EmojiEmbed().setDescription(string).setStatus("Success")], content: (config.welcome.ping ? `<@&${config.welcome.ping}>` : "") + `<@${member.id}>` }); } catch (err) { singleNotify( "welcomeChannelDeleted", member.guild.id, `The welcome channel has been deleted or is no longer accessible. Use ${getCommandMentionByName( "settings/welcome" )} to set a new one`, "Warning" ); } } } } }