diff --git a/consoleMonitor.js b/consoleMonitor.js index 4f9f86e..3123ef8 100644 --- a/consoleMonitor.js +++ b/consoleMonitor.js @@ -10,6 +10,7 @@ let checkInterval = null; let isMonitoring = false; let isConnecting = false; let connectionTimestamp = null; +let monitoringStartTimestamp = null; // Timestamp du démarrage du monitoring (ne change pas lors des reconnexions) // Backoff de reconnexion let reconnectDelayMs = 5000; @@ -308,12 +309,16 @@ const connectWebSocket = async (pterodactylToken, serverId) => { const logTimestamp = new Date(timestampMatch[1]).getTime(); const now = Date.now(); - // Ignorer uniquement les messages très anciens (>15 min) pour éviter de traiter l'historique complet - // mais garder les messages récents même s'ils sont antérieurs à la connexion WebSocket - // (cas où le serveur redémarre et le WebSocket reçoit des logs juste avant le redémarrage) + // Protection 1: Ignorer les messages très anciens (>15 min) pour éviter l'historique complet if (now - logTimestamp > 15 * 60 * 1000) { return; } + + // Protection 2: Ignorer les messages antérieurs au démarrage du monitoring + // (évite de traiter les vieux codes lors du redémarrage du bot) + if (monitoringStartTimestamp && logTimestamp < monitoringStartTimestamp) { + return; + } } const linkData = parseLogMessage(log); @@ -409,6 +414,8 @@ const startConsoleMonitoring = (discordClient, pterodactylToken) => { client = discordClient; isMonitoring = true; + monitoringStartTimestamp = Date.now(); + console.log(`📅 Démarrage du monitoring: ${new Date(monitoringStartTimestamp).toISOString()}`); resetReconnectBackoff(); const serverId = process.env.PTERODACTYL_SERVER_ID; @@ -441,6 +448,7 @@ const stopConsoleMonitoring = () => { } isMonitoring = false; + monitoringStartTimestamp = null; console.log('🔌 Surveillance de la console arrêtée'); };