genius-troll/index.js
2025-11-25 20:56:32 +01:00

66 lines
No EOL
2 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import 'dotenv/config';
import fs from 'fs';
import { Client, GatewayIntentBits, Options, Events, Collection } from 'discord.js';
import firstDetector from './detectors/allDetector.js';
// --- Configuration Client et Intents ---
const client = new Client({
makeCache: Options.cacheWithLimits({
MessageManager: 5, // opti de RAM mais 0 est trop agressif
ThreadManager: 0, // peut rester a 0 car peu utilisé
// UserManager: 0,
//ThreadManager: 0,
// commentées pour laisser par défaut, pas d'impact vu la RAM dispo
}),
intents: [
GatewayIntentBits.Guilds,
GatewayIntentBits.GuildMessages,
GatewayIntentBits.MessageContent, // required pour les détecteurs
]
});
// --- Gestion des Événements ---
// 1. login réussi
client.on(Events.ClientReady, () => {
console.log(`[SUCCESS] Logged in as ${client.user?.tag}`);
});
// 2. gestion des commandes slash
client.on(Events.InteractionCreate, async interaction => {
// check que ça soit bien commande slash
if (!interaction.isChatInputCommand()) return;
const command = client.commands.get(interaction.commandName);
if (!command) return;
try {
await command.execute(interaction);
} catch (error) {
console.error('Erreur exécution commande slash:', error);
// message d'erreur (si besoin), montré qu'à l'auteur
if (interaction.replied || interaction.deferred) {
await interaction.followUp({ content: 'Erreur lors de lexécution de la commande !', ephemeral: true });
} else {
await interaction.reply({ content: 'Erreur lors de lexécution de la commande !', ephemeral: true });
}
}
});
// 3. Gestion des Messages (Détecteurs Passifs)
client.on('messageCreate', async (message) => {
if (message.author.bot) return;
try {
const reply = await firstDetector.createReply(message);
if (reply) await message.reply(reply);
} catch (e) {
console.error('Erreur détecteur:', e);
}
});
// --- connexion ---
client.login(process.env.DISCORD_TOKEN);