Update Bot (j'ai plus le repo sur GitHub)
Qui c'est la conne qui a delete le repo sur GitHub? C'EST MOIIIII
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
const chalk = require('chalk');
|
||||
|
||||
module.exports = (client, db) => {
|
||||
setInterval(async () => {
|
||||
try {
|
||||
@@ -7,36 +9,33 @@ module.exports = (client, db) => {
|
||||
['Temporary', now]
|
||||
);
|
||||
|
||||
if (!expiredBans.length) return; // rien à faire
|
||||
if (!expiredBans.length) return;
|
||||
|
||||
for (const ban of expiredBans) {
|
||||
const guild = client.guilds.cache.get(ban.guildId);
|
||||
if (!guild) {
|
||||
console.warn(`Cannot unban ${ban.userId}: bot is not in guild ${ban.guildId}`);
|
||||
console.warn(chalk.yellow(`⚠️ Impossible de débannir ${ban.userId}: le bot n'est pas dans la guild ${ban.guildId}`));
|
||||
continue;
|
||||
}
|
||||
|
||||
try {
|
||||
await guild.members.unban(ban.userId, 'Temporary ban expired');
|
||||
console.log(`Auto-unbanned ${ban.userId} from guild ${guild.id}`);
|
||||
await guild.members.unban(ban.userId, 'Bannissement temporaire expiré');
|
||||
console.log(chalk.green(`✅ Auto-débanni ${ban.userId} de la guild ${guild.name} (${guild.id})`));
|
||||
} catch (err) {
|
||||
// Si l’utilisateur n’est pas ban ou autre erreur
|
||||
console.error(`Failed to unban ${ban.userId} from guild ${guild.id}:`, err.message);
|
||||
console.error(chalk.red(`❌ Échec du débannissement de ${ban.userId} de la guild ${guild.id}:`), err.message);
|
||||
}
|
||||
|
||||
// Supprime uniquement le ban correspondant à cette guild
|
||||
await db.query('DELETE FROM bans WHERE userId = ? AND guildId = ?', [ban.userId, ban.guildId]);
|
||||
|
||||
// Log automatique
|
||||
await db.query(
|
||||
`INSERT INTO logs (userId, userTag, modId, modTag, action, reason, type, timestamp, guildId)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`,
|
||||
[ban.userId, null, client.user.id, 'Mod-Bot', 'auto-unban', 'Temporary ban expired', 'Temporary', Date.now(), ban.guildId]
|
||||
[ban.userId, null, client.user.id, client.user.tag, 'Débannissement automatique', 'Bannissement temporaire expiré', 'Temporary', Date.now(), ban.guildId]
|
||||
);
|
||||
}
|
||||
|
||||
} catch (err) {
|
||||
console.error('Error during auto-unban:', err);
|
||||
console.error(chalk.red('❌ Erreur lors de l\'auto-débannissement:'), err);
|
||||
}
|
||||
}, 60_000);
|
||||
};
|
||||
};
|
||||
47
functions/moderation/autoUnmute.js
Normal file
47
functions/moderation/autoUnmute.js
Normal file
@@ -0,0 +1,47 @@
|
||||
const chalk = require('chalk');
|
||||
|
||||
module.exports = (client, db) => {
|
||||
setInterval(async () => {
|
||||
try {
|
||||
const now = Date.now();
|
||||
const [expiredMutes] = await db.query(
|
||||
'SELECT * FROM mutes WHERE type = ? AND unmuteDate <= ?',
|
||||
['Temporary', now]
|
||||
);
|
||||
|
||||
if (!expiredMutes.length) return;
|
||||
|
||||
for (const mute of expiredMutes) {
|
||||
const guild = client.guilds.cache.get(mute.guildId);
|
||||
if (!guild) {
|
||||
console.warn(chalk.yellow(`⚠️ Impossible de démuter ${mute.userId}: le bot n'est pas dans la guild ${mute.guildId}`));
|
||||
continue;
|
||||
}
|
||||
|
||||
const member = await guild.members.fetch(mute.userId).catch(() => null);
|
||||
if (!member) {
|
||||
await db.query('DELETE FROM mutes WHERE userId = ? AND guildId = ?', [mute.userId, mute.guildId]);
|
||||
continue;
|
||||
}
|
||||
|
||||
try {
|
||||
await member.timeout(null, 'Mute temporaire expiré');
|
||||
console.log(chalk.green(`✅ Auto-démuté ${mute.userId} de la guild ${guild.name} (${guild.id})`));
|
||||
} catch (err) {
|
||||
console.error(chalk.red(`❌ Échec du démute de ${mute.userId} de la guild ${guild.id}:`), err.message);
|
||||
}
|
||||
|
||||
await db.query('DELETE FROM mutes WHERE userId = ? AND guildId = ?', [mute.userId, mute.guildId]);
|
||||
|
||||
await db.query(
|
||||
`INSERT INTO logs (userId, userTag, modId, modTag, action, reason, type, timestamp, guildId)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`,
|
||||
[mute.userId, null, client.user.id, client.user.tag, 'Unmute automatique', 'Mute temporaire expiré', 'Temporary', Date.now(), mute.guildId]
|
||||
);
|
||||
}
|
||||
|
||||
} catch (err) {
|
||||
console.error(chalk.red('❌ Erreur lors de l\'auto-unmute:'), err);
|
||||
}
|
||||
}, 60_000);
|
||||
};
|
||||
Reference in New Issue
Block a user