62 lines
2.1 KiB
JavaScript
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/power', {
|
|
signal: 'stop'
|
|
}, {
|
|
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.');
|
|
}
|
|
},
|
|
}; |