A Discord Bot connected to your Pterodactyl API.
at main 46 lines 1.3 kB view raw
1import { EmbedBuilder, SlashCommandBuilder } from "discord.js"; 2import axios from "axios"; 3import fetchClientServerInfo from "../functions/fetchClientServerInfo.js"; 4 5export default { 6 data: new SlashCommandBuilder() 7 .setName("backups") 8 .setDescription("Show all your backups") 9 .addStringOption((option) => 10 option.setName("identifier") 11 .setDescription("Your server identifier") 12 .setRequired(true), 13 ), 14 async execute(interaction) { 15 const id = interaction.options.get("identifier").value; 16 let response; 17 let server; 18 try { 19 response = await axios.get(`/servers/${id}/backups`); 20 server = await fetchClientServerInfo(id); 21 } 22 catch (error) { 23 console.log(error.response); 24 return interaction.reply({ content: error.response.data.errors[0].detail, ephemeral: true }); 25 } 26 27 console.log(server); 28 29 const backups = response.data.data; 30 let message = "```Total backups: " + backups.length + "```\n"; 31 if (backups.length) { 32 message += "```"; 33 backups.forEach((backup) => { 34 message += "💾 " + backup.name + " - " + backup.created_at + "\n"; 35 }); 36 message += "```"; 37 } 38 39 const embed = new EmbedBuilder() 40 .setTitle(`${server.name}${server.identifier}`) 41 .setDescription(message) 42 .setTimestamp(); 43 44 return interaction.reply({ embeds: [embed] }); 45 }, 46};