couteau_suisse/commands/server/start-server.js
2025-07-05 14:23:41 +02:00

58 lines
2.0 KiB
JavaScript

const { SlashCommandBuilder } = require('discord.js');
const axios = require('axios');
module.exports = {
data: new SlashCommandBuilder()
.setName('start-server')
.setDescription('Démarre le serveur Palworld s\'il n\'est pas déjà en cours d\'exécution'),
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 Palworld est déjà en cours d\'exécution !');
return;
}
// Démarrer le serveur
await axios.post('https://panel.louismazin.ovh/api/client/servers/ae4a628f/power', {
signal: 'start'
}, {
headers: headers
});
await interaction.editReply('🚀 Commande de démarrage envoyée au serveur Palworld ! Le serveur va démarrer dans quelques instants...');
// Attendre quelques secondes puis vérifier si le serveur a démarré
setTimeout(async () => {
try {
const checkResponse = await axios.get('https://panel.louismazin.ovh/api/client/servers/ae4a628f/resources', {
headers: headers
});
const newState = checkResponse.data.attributes.current_state;
if (newState === 'running') {
await interaction.editReply('✅ Le serveur Palworld a été démarré avec succès !');
} else if (newState === 'starting') {
await interaction.editReply('⏳ Le serveur Palworld est en cours de démarrage...');
}
} catch (error) {
console.error('Erreur lors de la vérification de l\'état du serveur:', error);
}
}, 10000); // Vérifier après 10 secondes
} catch (error) {
console.error('Erreur lors du démarrage du serveur:', error);
await interaction.editReply('❌ Erreur lors du démarrage du serveur. Veuillez réessayer plus tard.');
}
},
};