61 lines
2.1 KiB
JavaScript
61 lines
2.1 KiB
JavaScript
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.');
|
|
}
|
|
},
|
|
};
|