mirror of https://github.com/clickscodes/nucleus
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
2.6 KiB
61 lines
2.6 KiB
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"
|
|
);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|