49 lines
1.4 KiB
JavaScript
49 lines
1.4 KiB
JavaScript
const { Events, GuildMember } = require("discord.js");
|
|
const db = require("../../db");
|
|
|
|
/**
|
|
* @param {Client} client
|
|
* @param {GuildMember} member
|
|
*/
|
|
|
|
module.exports = {
|
|
name: Events.GuildBanAdd,
|
|
async execute(member) {
|
|
const auditLogs = await member.guild.fetchAuditLogs({ type: 22 });
|
|
const banEntry = auditLogs.entries.first();
|
|
|
|
try {
|
|
if (banEntry) {
|
|
const { reason, executor, target, createdAt } = banEntry;
|
|
|
|
const guildID = member.guild.id;
|
|
const guildName = member.guild.name;
|
|
const userID = target.id;
|
|
const userName = target.username;
|
|
const userTag = target.tag;
|
|
const avatarURL = target.displayAvatarURL({ dynamic: true });
|
|
const banDate = createdAt.toISOString();
|
|
const banReason = reason || "No reason provided";
|
|
const banExecutor = executor.tag;
|
|
|
|
await db.query(
|
|
"INSERT INTO bans (guild_ID, guild_Name, user_ID, username, user_Tag, avatar_URL, ban_Date, ban_Reason, ban_Executor) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9)",
|
|
[
|
|
guildID,
|
|
guildName,
|
|
userID,
|
|
userName,
|
|
userTag,
|
|
avatarURL,
|
|
banDate,
|
|
banReason,
|
|
banExecutor,
|
|
]
|
|
);
|
|
}
|
|
} catch (error) {
|
|
console.error("There was an error", error);
|
|
}
|
|
},
|
|
};
|