This commit is contained in:
Arthur Puechberty
2026-01-18 15:08:55 +01:00
parent 6de9768e3f
commit 3f1f3ba40d
25 changed files with 1994 additions and 3 deletions
+57 -1
View File
@@ -1,9 +1,65 @@
const { Events, EmbedBuilder } = require("discord.js");
const { Events, EmbedBuilder, AuditLogEvent } = require("discord.js");
const db = require("../db");
const { sendLog } = require("../fonctions/sendLog");
module.exports = {
name: Events.GuildMemberRemove,
async execute(client, member) {
// ===== VÉRIFIER SI C'EST UN KICK =====
let wasKicked = false;
let kickExecutor = null;
let kickReason = null;
try {
const auditLogs = await member.guild.fetchAuditLogs({
type: AuditLogEvent.MemberKick,
limit: 1
});
const kickLog = auditLogs.entries.first();
if (kickLog && kickLog.target.id === member.id && (Date.now() - kickLog.createdTimestamp) < 5000) {
wasKicked = true;
kickExecutor = kickLog.executor;
kickReason = kickLog.reason || 'Aucune raison spécifiée';
}
} catch (err) {
// Pas de permission audit logs
}
if (wasKicked) {
// ===== LOG KICK =====
await sendLog(client, member.guild.id, 'moderation', {
action: 'kick',
title: '👢 Membre expulsé',
description: `**${member.user.tag}** a été expulsé du serveur.`,
fields: [
{ name: '👤 Membre', value: `${member.user} (${member.user.tag})`, inline: true },
{ name: '📝 Raison', value: kickReason, inline: false }
],
thumbnail: member.user.displayAvatarURL({ size: 128 }),
user: member.user,
executor: kickExecutor
});
} else {
// ===== LOG MEMBRE PARTI =====
const joinedAt = member.joinedTimestamp ?
`<t:${Math.floor(member.joinedTimestamp / 1000)}:R>` : 'Inconnu';
await sendLog(client, member.guild.id, 'members', {
action: 'leave',
title: '📤 Membre parti',
description: `**${member.user.tag}** a quitté le serveur.`,
fields: [
{ name: '👤 Membre', value: `${member.user} (${member.user.tag})`, inline: true },
{ name: '📊 Membres', value: `${member.guild.memberCount}`, inline: true },
{ name: '📅 Avait rejoint', value: joinedAt, inline: true }
],
thumbnail: member.user.displayAvatarURL({ size: 128 }),
user: member.user
});
}
// ===== MESSAGE D'AU REVOIR =====
db.get(
"SELECT enabled, channel_id, message FROM goodbye_config WHERE guild_id = ?",
[member.guild.id],