A Discord Bot connected to your Pterodactyl API.
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};