const { SlashCommandBuilder } = require('discord.js'); const { checkRAMUsage, getMonitoringStatus } = require('../../ramMonitor.js'); module.exports = { data: new SlashCommandBuilder() .setName('ram-status') .setDescription('Affiche l\'utilisation actuelle de la RAM du serveur Palworld'), async execute(interaction) { if (!interaction.member.roles.cache.has('1444684935632912394')) { await interaction.reply({ content: '❌ Il faut avoir le rôle Rygainland pour pouvoir utiliser cette commande.', flags: 64 }); return; } await interaction.deferReply(); try { // Récupérer les informations sur la RAM const ramInfo = await checkRAMUsage(); const monitorStatus = getMonitoringStatus(); if (!ramInfo) { await interaction.editReply('❌ Impossible de récupérer les informations de RAM du serveur.'); return; } const { ramUsedGB, currentState } = ramInfo; const thresholdGB = (monitorStatus.threshold / 1024).toFixed(2); const percentUsed = ((ramInfo.ramUsedMB / monitorStatus.threshold) * 100).toFixed(1); // Construire le message avec indicateur visuel let indicator; let color; if (percentUsed < 70) { indicator = '🟢'; color = 'Normale'; } else if (percentUsed < 90) { indicator = '🟡'; color = 'Élevée'; } else { indicator = '🔴'; color = 'Critique'; } const message = `${indicator} **État de la RAM du serveur Palworld**\n\n` + `📊 **Utilisation actuelle:** ${ramUsedGB} Go / ${thresholdGB} Go (${percentUsed}%)\n` + `⚠️ **Seuil de redémarrage:** ${thresholdGB} Go\n` + `🔄 **État du serveur:** ${currentState}\n` + `💡 **Niveau:** ${color}\n\n` + `${monitorStatus.isMonitoring ? '✅ Surveillance automatique active' : '⚠️ Surveillance automatique inactive'}\n` + `${monitorStatus.isRebooting ? '🔄 Redémarrage en cours...' : ''}`; await interaction.editReply(message); } catch (error) { console.error('Erreur lors de la récupération de l\'état RAM:', error); await interaction.editReply('❌ Erreur lors de la récupération des informations du serveur.'); } }, };