A Discord Bot connected to your Pterodactyl API.
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat: server power command

authored by

cosmeak and committed by
Cosmeak
ac65ceaa c45b5aff

+49
+49
src/commands/ClientServerPower.js
··· 1 + const { SlashCommandBuilder } = require("discord.js"); 2 + const fecthClientServerInfo = require("../functions/fetchClientServerInfo.js"); 3 + const axios = require("axios"); 4 + require("dotenv").config(); 5 + 6 + module.exports = { 7 + data: new SlashCommandBuilder() 8 + .setName("client-server-power") 9 + .setDescription("Provide a way to up or down a server") 10 + .addStringOption((option) => 11 + option.setName("server-id") 12 + .setDescription("Your server external_ID") 13 + .setRequired(true) 14 + ) 15 + .addStringOption((option) => 16 + option.setName("state") 17 + .setDescription("Choose a state for your server") 18 + .setChoices( 19 + { name: "start", value: "start" }, 20 + { name: "stop", value: "stop" }, 21 + { name: "restart", value: "restart" }, 22 + { name: "kill", value: "kill" }, 23 + ) 24 + .setRequired(true) 25 + ), 26 + async execute(interaction) { 27 + const state = interaction.options.get("state").value; 28 + const id = interaction.options.get("server-id").value; 29 + const server = await fecthClientServerInfo(id); 30 + 31 + try { 32 + await axios.post(`${process.env.PTERO_HOST}/api/client/servers/${id}/power`, { 33 + "headers": { 34 + "Accept": "application/json", 35 + "Content-Type": "application/json", 36 + "Authorization": `Bearer ${process.env.PTERO_TOKEN}`, 37 + }, 38 + "body": { 39 + "signal": state, 40 + } 41 + }); 42 + } catch (error) { 43 + console.error(error.response.data.errors); 44 + return interaction.reply('An error occurred with your request...'); 45 + } 46 + 47 + return interaction.reply(`The **${state}** state has been sent to the server **${server.name}**`); 48 + } 49 + };