genius-troll/indexOld.js
2025-11-20 22:33:51 +01:00

66 lines
No EOL
1.8 KiB
JavaScript

import { Client, GatewayIntentBits, WebhookClient, AuditLogEvent, OAuth2Scopes, Options, Events } from 'discord.js';
import firstDetector from './detectors/allDetector.js';
import 'dotenv/config';
console.log("--- DEBUG ---");
console.log("Test Token:", process.env.DISCORD_TOKEN ? "Présent (Longueur: " + process.env.DISCORD_TOKEN.length + ")" : "ABSENT !");
console.log("Tentative de connexion à Discord.");
const client = new Client({
makeCache: Options.cacheWithLimits({
MessageManager: 0, // le bot ne se souviendra pas des anciens messages (pas de cache)
}),
intents: [
GatewayIntentBits.Guilds,
GatewayIntentBits.GuildMessages,
GatewayIntentBits.MessageContent,
]
});
// Gestion des Messages (Listeners)
// Fonction locale pour traiter un message (remplace newMessageListener)
async function handleMessage(message) {
try {
const reply = await firstDetector.createReply(message);
if (reply) {
await message.reply(reply);
}
} catch (e) {
console.error('Erreur dans le détecteur:', e);
}
}
client.on('messageCreate', async (message) => {
if (message.author.bot) return;
await handleMessage(message);
});
client.on('messageUpdate', async (oldMessage, newMessage) => {
let message = newMessage;
if (message.partial) {
try {
message = await message.fetch();
} catch (e) {
console.error('Error while fetching message', e);
return;
}
}
if (!message.author || message.author.bot) return;
if (oldMessage.content === message.content) return; // Pas de changement de texte
if (!message.content) return;
// on évite de spammer
if (oldMessage.content && oldMessage.content.match(/(\b|^)quoi(\b|$)/i)) {
return;
}
await handleMessage(message);
});
client.on(Events.ClientReady, () => {
console.log(`Hello World !`);
});
client.login(process.env.DISCORD_TOKEN);