Shasha/resources/eventsLogger/guildMemberAdd.js
2021-08-09 17:42:02 +07:00

38 lines
No EOL
1.9 KiB
JavaScript

'use strict';
const { GuildMember } = require("discord.js"),
{ DateTime, Interval } = require("luxon"),
{ getChannel, defaultEventLogEmbed, trySend, defaultDateFormat } = require("../functions"),
getColor = require("../getColor"),
{ intervalToDuration } = require("../../cmds/moderation/src/duration");
/**
* Log newly joined Guild Member
* @param {GuildMember} member
* @returns
*/
module.exports = async (member) => {
if (!member.guild.DB) await member.guild.dbLoad();
member.guild.updateCached("systemChannelID", member.guild.systemChannelID);
member.guild.updateCached("iconURL", member.guild.iconURL({ size: 4096, format: "png", dynamic: true }));
if (!member.DB) await member.dbLoad();
if (member.DB.leaveRoles?.length && member.guild.me.hasPermission("MANAGE_ROLES")) {
await member.roles.add(member.DB.leaveRoles, "Automatic roles recovery").then(() => console.log("AUTO ROLES RECOVERY:",
member.user.tag, member.guild.name)).catch(() => { });
await member.setDb("leaveRoles", []);
}
if (member.guild.DB.eventChannels?.join) {
const log = getChannel(member, member.guild.DB.eventChannels.join);
if (!log) return;
const emb = defaultEventLogEmbed(member.guild),
INT2 = Interval.fromDateTimes(DateTime.fromJSDate(member.user.createdAt), DateTime.now());
emb
.setTitle((member.user.bot ? "`[BOT]` " : "") + "`" + member.user.tag + "` joined")
.setThumbnail(member.user.displayAvatarURL({ format: "png", size: 4096, dynamic: true }))
.setColor(getColor("cyan"))
.addField("Registered", defaultDateFormat(member.user.createdAt) +
`\n(${intervalToDuration(INT2).strings.join(" ")} ago)`)
.setDescription(`<@!${member.id}> (${member.id}) just joined.\nWe have ${member.guild.memberCount} total members now.`);
return trySend(member.client, log, emb);
}
}