couteau_suisse/commands/server/reboot-server.js
2025-07-05 14:35:21 +02:00

62 lines
2.1 KiB
JavaScript

const { SlashCommandBuilder } = require('discord.js');
const axios = require('axios');
module.exports = {
data: new SlashCommandBuilder()
.setName('reboot-server')
.setDescription('Redémarre le serveur Palworld'),
async execute(interaction, headers) {
await interaction.deferReply();
try {
// Vérifier l'état actuel du serveur
const statusResponse = await axios.get('https://panel.louismazin.ovh/api/client/servers/ae4a628f/resources', {
headers: headers
});
const currentState = statusResponse.data.attributes.current_state;
if (currentState !== 'running') {
await interaction.editReply('⚠️ Le serveur n\'est pas en cours d\'exécution. Utilisez `/start-server` pour le démarrer.');
return;
}
// Étape 1: Sauvegarder le serveur
await interaction.editReply('💾 Sauvegarde du serveur en cours...');
await axios.post('https://panel.louismazin.ovh/api/client/servers/ae4a628f/command', {
command: 'save'
}, {
headers: headers
});
// Attendre un peu pour la sauvegarde
await new Promise(resolve => setTimeout(resolve, 3000));
// Étape 2: Arrêter le serveur
await interaction.editReply('⏹️ Arrêt du serveur...');
await axios.post('https://panel.louismazin.ovh/api/client/servers/ae4a628f/command', {
command: 'shutdown 0'
}, {
headers: headers
});
// Étape 3: Attendre 5 secondes
await interaction.editReply('⏳ Attente de 5 secondes...');
await new Promise(resolve => setTimeout(resolve, 5000));
// Étape 4: Redémarrer le serveur
await interaction.editReply('🚀 Redémarrage du serveur...');
await axios.post('https://panel.louismazin.ovh/api/client/servers/ae4a628f/power', {
signal: 'start'
}, {
headers: headers
});
await interaction.editReply('✅ Redémarrage du serveur terminé ! Le serveur devrait être disponible dans quelques instants...');
} catch (error) {
console.error('Erreur lors du redémarrage du serveur:', error);
await interaction.editReply('❌ Erreur lors du redémarrage du serveur. Veuillez réessayer plus tard.');
}
},
};