diff --git a/commands/server/reboot-server.js b/commands/server/reboot-server.js new file mode 100644 index 0000000..9c66c38 --- /dev/null +++ b/commands/server/reboot-server.js @@ -0,0 +1,36 @@ +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/b5fa2322/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; + } + + // Déclencher le schedule programmé + await axios.post('https://panel.louismazin.ovh/api/client/servers/b5fa2322/schedules/1/execute', {}, { + headers: headers + }); + + await interaction.editReply('🔄 Schedule de redémarrage déclenché ! Le serveur va redémarrer selon votre programmation...'); + + } catch (error) { + console.error('Erreur lors du déclenchement du schedule:', error); + await interaction.editReply('❌ Erreur lors du déclenchement du schedule. Veuillez réessayer plus tard.'); + } + }, +}; \ No newline at end of file diff --git a/commands/server/start-server.js b/commands/server/start-server.js new file mode 100644 index 0000000..7e233b5 --- /dev/null +++ b/commands/server/start-server.js @@ -0,0 +1,38 @@ +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.rygain.fr/api/client/servers/b5fa2322/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.rygain.fr/api/client/servers/b5fa2322/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...'); + + } 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.'); + } + }, +}; diff --git a/index.js b/index.js index 46532e5..6d5a62d 100644 --- a/index.js +++ b/index.js @@ -70,6 +70,8 @@ client.on(Events.InteractionCreate, async interaction => { await command.execute(interaction, palworldToken); } else if (interaction.commandName === 'trad') { await command.execute(interaction, translator); + } else if (interaction.commandName === 'start-server' || interaction.commandName === 'reboot-server') { + await command.execute(interaction, headers); } else { await command.execute(interaction); }